added support for headers

This commit is contained in:
Gert Wohlgemuth 2018-06-08 21:08:20 -07:00
parent f3e8d823b2
commit df33de3914
3 changed files with 24 additions and 10 deletions

6
freqtrade/aws/headers.py Normal file
View File

@ -0,0 +1,6 @@
# Defined the default HTTP headers for function responses
__HTTP_HEADERS__ = {
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Credentials' : True
}

View File

@ -14,6 +14,8 @@ import requests
db = boto3.resource('dynamodb')
from freqtrade.aws.headers import __HTTP_HEADERS__
def names(event, context):
"""
@ -42,21 +44,12 @@ def names(event, context):
"result": data
}
return {
"headers": __HTTP_HEADERS__,
"statusCode": 200,
"body": json.dumps(data)
}
def performance(event, context):
"""
returns the performance of the specified strategy
:param event:
:param context:
:return:
"""
pass
def get(event, context):
"""
returns the code of the requested strategy, if it's public
@ -83,12 +76,14 @@ def get(event, context):
item.pop('content')
return {
"headers": __HTTP_HEADERS__,
"statusCode": response['ResponseMetadata']['HTTPStatusCode'],
"body": json.dumps(item)
}
else:
return {
"headers": __HTTP_HEADERS__,
"statusCode": 404,
"body": json.dumps(response)
}
@ -129,15 +124,18 @@ def code(event, context):
if "Items" in response and len(response['Items']) > 0:
if response['Items'][0]["public"]:
content = urlsafe_b64decode(response['Items'][0]['content']).decode('utf-8')
content["headers"]: __HTTP_HEADERS__
return content
else:
return {
"headers": __HTTP_HEADERS__,
"statusCode": 403,
"body": json.dumps({"success": False, "reason": "Denied"})
}
else:
return {
"headers": __HTTP_HEADERS__,
"statusCode": response['ResponseMetadata']['HTTPStatusCode'],
"body": json.dumps(response)
}
@ -168,6 +166,7 @@ def submit(event, context):
result = __evaluate(data)
return {
"headers": __HTTP_HEADERS__,
"statusCode": result['ResponseMetadata']['HTTPStatusCode'],
"body": json.dumps(result)
}
@ -271,11 +270,13 @@ def submit_github(event, context):
print("error: {}".format(e))
print("imported/updated: {} strategies".format(strategies))
return {
"headers": __HTTP_HEADERS__,
"statusCode": 200,
"body": json.dumps({"imported": strategies})
}
else:
return {
"headers": __HTTP_HEADERS__,
"statusCode": 404,
"body": json.dumps({"error": result})
}

View File

@ -6,6 +6,7 @@ import simplejson as json
import os
from freqtrade.aws.tables import get_trade_table, get_strategy_table
from boto3.dynamodb.conditions import Key, Attr
from freqtrade.aws.headers import __HTTP_HEADERS__
def store(event, context):
@ -49,6 +50,7 @@ def submit(event, context):
)
return {
"headers": __HTTP_HEADERS__,
"statusCode": 200,
"body": json.dumps(result)
}
@ -85,17 +87,20 @@ def get_aggregated_trades(event, context):
# start key ExclusiveStartKey=response['LastEvaluatedKey']
data = {
"headers": __HTTP_HEADERS__,
"result": response['Items'],
"paginationKey": response.get('LastEvaluatedKey')
}
return {
"headers": __HTTP_HEADERS__,
"statusCode": response['ResponseMetadata']['HTTPStatusCode'],
"body": json.dumps(data)
}
else:
return {
"headers": __HTTP_HEADERS__,
"statusCode": 404,
"body": json.dumps({
"error": "sorry this query did not produce any results",
@ -143,12 +148,14 @@ def get_trades(event, context):
}
return {
"headers": __HTTP_HEADERS__,
"statusCode": response['ResponseMetadata']['HTTPStatusCode'],
"body": json.dumps(data)
}
else:
return {
"headers": __HTTP_HEADERS__,
"statusCode": 404,
"body": json.dumps({
"error": "sorry this query did not produce any results",