mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
49 lines
1.0 KiB
JavaScript
49 lines
1.0 KiB
JavaScript
'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,
|
|
}
|