in provisioning/lib/api-stack.ts [11:36]
constructor(scope: cdk.Construct, id: string, apiProps: ApiStackProps, props?: cdk.StackProps) {
super(scope, id, props);
const userFunction = new lambda.Function(this, 'UserFunction', {
runtime: lambda.Runtime.PYTHON_3_8,
code: lambda.Code.asset('../app'),
environment: {
DYNAMODB_TABLE_NAME: apiProps.database.table.tableName,
},
functionName: 'UserFunction',
handler: 'app.dispatch_request',
});
apiProps.database.table.grantReadWriteData(userFunction);
const userFunctionIntegration = new apigateway.LambdaIntegration(userFunction, {});
const api = new apigateway.RestApi(this, 'UserRestApi', { restApiName: 'userRestApi' });
const apiUser = api.root.addResource('user');
const apiUserId = apiUser.addResource('{user_id}');
apiUser.addMethod('PUT', userFunctionIntegration);
apiUserId.addMethod('GET', userFunctionIntegration);
apiUserId.addMethod('DELETE', userFunctionIntegration);
apiUserId.addMethod('PATCH', userFunctionIntegration);
}