wokring on persistence scan api

This commit is contained in:
Gert Wohlgemuth 2018-05-19 15:59:36 -07:00
parent 12a758afc4
commit 2da14fc554
2 changed files with 38 additions and 8 deletions

View File

@ -1,5 +1,15 @@
import boto3 import boto3
import simplejson as json import simplejson as json
import decimal
class DecimalEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, decimal.Decimal):
if o % 1 > 0:
return float(o)
else:
return int(o)
return super(DecimalEncoder, self).default(o)
class Persistence: class Persistence:
@ -16,6 +26,22 @@ class Persistence:
self.table = table self.table = table
self.db = boto3.resource('dynamodb') self.db = boto3.resource('dynamodb')
def list(self):
table = self.db.Table(self.table)
response = table.scan()
result = []
while 'LastEvaluatedKey' in response:
response = table.scan(
ExclusiveStartKey=response['LastEvaluatedKey']
)
for i in response['Items']:
result.append(i)
return result
def load(self, sample): def load(self, sample):
""" """
loads a given object from the database storage loads a given object from the database storage

View File

@ -1,5 +1,5 @@
from freqtrade.strategy.resolver import StrategyResolver from freqtrade.strategy.resolver import StrategyResolver
import boto3
import os import os
import simplejson as json import simplejson as json
import uuid import uuid
@ -17,8 +17,12 @@ def names(event, context):
:param context: :param context:
:return: :return:
""" """
pass table = Persistence(os.environ['strategyTable'])
return {
"statusCode": 200,
"body": json.dumps(table.list())
}
def performance(event, context): def performance(event, context):
""" """
@ -51,19 +55,19 @@ def submit(event, context):
# get data # get data
data = json.loads(event['body']) data = json.loads(event['body'])
print("received data") # print("received data")
print(data) # print(data)
# validate against schema # validate against schema
result = validate(data, __SUBMIT_STRATEGY_SCHEMA__) result = validate(data, __SUBMIT_STRATEGY_SCHEMA__)
print("data are validated"); # print("data are validated");
print(result) # print(result)
strategy = urlsafe_b64decode(data['content']).decode('utf-8') strategy = urlsafe_b64decode(data['content']).decode('utf-8')
print("loaded strategy") # print("loaded strategy")
print(strategy) # print(strategy)
# try to load the strategy # try to load the strategy
StrategyResolver().compile(data['name'], strategy) StrategyResolver().compile(data['name'], strategy)