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