Mercurial > public > finance-parser
changeset 7:7c5fb7573dd8
first working version
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Mon, 05 Jun 2023 19:06:34 +0100 |
parents | d15ccf5f1373 |
children | f2442b8f43de |
files | events/get_tickers_event.json get_report/app.py get_tickers/__init__.py get_tickers/app.py get_tickers/requirements.txt template.yaml |
diffstat | 5 files changed, 64 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- /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
--- 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'],
--- /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']) + } + }), + }
--- /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
--- 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