'use strict' const _ = require('lodash') const awsRequest = require('@serverless/test/aws-request') const APIGatewayService = require('aws-sdk').APIGateway async function createRestApi(name) { const params = { name, } return awsRequest(APIGatewayService, 'createRestApi', params) } async function deleteRestApi(restApiId) { const params = { restApiId, } return awsRequest(APIGatewayService, 'deleteRestApi', params) } async function getResources(restApiId) { const params = { restApiId, } return awsRequest(APIGatewayService, 'getResources', params).then( (data) => data.items, ) } async function findRestApis(name) { const params = { limit: 500, } async function recursiveFind(found, position) { if (position) params.position = position return awsRequest(APIGatewayService, 'getRestApis', params).then( (result) => { const matches = result.items.filter((restApi) => restApi.name.match(name), ) if (matches.length) { _.merge(found, matches) } if (result.position) return recursiveFind(found, result.position) return found }, ) } return recursiveFind([]) } module.exports = { createRestApi, deleteRestApi, getResources, findRestApis, }