'use strict'; const awsRequest = require('@serverless/test/aws-request'); const ApiGatewayV2Service = require('aws-sdk').ApiGatewayV2; async function createApi(name) { return awsRequest(ApiGatewayV2Service, 'createApi', { Name: name, ProtocolType: 'WEBSOCKET', RouteSelectionExpression: '$request.body.action', }); } async function createStage(apiId, stageName) { const params = { ApiId: apiId, StageName: stageName, }; return awsRequest(ApiGatewayV2Service, 'createStage', params); } async function deleteApi(id) { return awsRequest(ApiGatewayV2Service, 'deleteApi', { ApiId: id, }); } async function deleteStage(apiId, stageName) { const params = { ApiId: apiId, StageName: stageName, }; return awsRequest(ApiGatewayV2Service, 'deleteStage', params); } async function getRoutes(apiId) { return awsRequest(ApiGatewayV2Service, 'getRoutes', { ApiId: apiId }).then((data) => data.Items); } module.exports = { createApi, deleteApi, getRoutes, createStage, deleteStage, };