# HG changeset patch # User Dennis C. M. # Date 1685988394 -3600 # Node ID 7c5fb7573dd89eef570299904bc64fc3a3f5050f # Parent d15ccf5f137314f9ab4acbb1c6cc464ec5e69d99 first working version diff -r d15ccf5f1373 -r 7c5fb7573dd8 events/get_tickers_event.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/events/get_tickers_event.json Mon Jun 05 19:06:34 2023 +0100 @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff -r d15ccf5f1373 -r 7c5fb7573dd8 get_report/app.py --- a/get_report/app.py Mon Jun 05 17:12:18 2023 +0100 +++ b/get_report/app.py Mon Jun 05 19:06:34 2023 +0100 @@ -19,6 +19,11 @@ return { "statusCode": 200, + "headers": { + "Access-Control-Allow-Headers": "Content-Type", + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET" + }, "body": json.dumps({ "message": { "items": response['Items'], diff -r d15ccf5f1373 -r 7c5fb7573dd8 get_tickers/__init__.py diff -r d15ccf5f1373 -r 7c5fb7573dd8 get_tickers/app.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/get_tickers/app.py Mon Jun 05 19:06:34 2023 +0100 @@ -0,0 +1,27 @@ +import json +import boto3 +from boto3.dynamodb.conditions import Key + +resource = boto3.resource('dynamodb') +table = resource.Table('FinanceParser') + + +def lambda_handler(event, context): + response = table.scan( + FilterExpression=Key('pk').begins_with('file') + ) + + return { + "statusCode": 200, + "headers": { + "Access-Control-Allow-Headers": "Content-Type", + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET" + }, + "body": json.dumps({ + "message": { + "items": response['Items'], + "count": len(response['Items']) + } + }), + } diff -r d15ccf5f1373 -r 7c5fb7573dd8 get_tickers/requirements.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/get_tickers/requirements.txt Mon Jun 05 19:06:34 2023 +0100 @@ -0,0 +1,1 @@ +boto3 \ No newline at end of file diff -r d15ccf5f1373 -r 7c5fb7573dd8 template.yaml --- a/template.yaml Mon Jun 05 17:12:18 2023 +0100 +++ b/template.yaml Mon Jun 05 19:06:34 2023 +0100 @@ -120,6 +120,10 @@ Type: AWS::Serverless::Api Properties: StageName: Prod + Cors: + AllowMethods: "'GET, POST, OPTIONS'" + AllowHeaders: "'content-type, x-api-key'" + AllowOrigin: "'*'" Models: Empty: type: object @@ -150,6 +154,25 @@ Permissions: - Read + GetTickersFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: get_tickers/ + Events: + GetProductEvent: + Type: Api + Properties: + RestApiId: !Ref Api + Path: /tickers + Method: get + Connectors: + DynamoConnector: + Properties: + Destination: + Id: DynamoTable + Permissions: + - Read + DynamoTable: Type: AWS::DynamoDB::Table Properties: @@ -173,4 +196,8 @@ Outputs: GetReportEndpoint: Description: "Endpoint to get a report" - Value: !Sub "https://${Api}.execute-api.${AWS::Region}.amazonaws.com/Prod/report" \ No newline at end of file + Value: !Sub "https://${Api}.execute-api.${AWS::Region}.amazonaws.com/Prod/report" + + GetTickersEndpoint: + Description: "Endpoint to get tickers" + Value: !Sub "https://${Api}.execute-api.${AWS::Region}.amazonaws.com/Prod/ticker" \ No newline at end of file