From a70f7aac4c3b4745a1894d9c7a261830ea982fa3 Mon Sep 17 00:00:00 2001 From: xss Date: Wed, 18 May 2022 08:41:52 +1000 Subject: [PATCH] add type check for lat,lon,alt --- lambda/ham_put_api/__init__.py | 10 ++++++++++ lambda/ham_put_api/__main__.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lambda/ham_put_api/__init__.py b/lambda/ham_put_api/__init__.py index 2bad26c..4077cdd 100644 --- a/lambda/ham_put_api/__init__.py +++ b/lambda/ham_put_api/__init__.py @@ -13,7 +13,17 @@ def set_connection_header(request, operation_name, **kwargs): sns = boto3.client("sns",region_name="us-east-1") sns.meta.events.register('request-created.sns', set_connection_header) +def check_fields_are_number(field, telemetry): + if type(telemetry[field]) != float and type(telemetry[field]) != int: + return (False, f"{field} should not be a float") + return (True, "") + def telemetry_filter(telemetry): + fields_to_check = ["alt", "lat", "lon"] + for field in fields_to_check: + field_check = check_fields_are_number(field, telemetry) + if field_check[0] == False: + return field_check if "dev" in telemetry: return (False, "All checks passed however payload contained dev flag so will not be uploaded to the database") diff --git a/lambda/ham_put_api/__main__.py b/lambda/ham_put_api/__main__.py index c44daf6..c11c039 100644 --- a/lambda/ham_put_api/__main__.py +++ b/lambda/ham_put_api/__main__.py @@ -36,7 +36,7 @@ payload = { "time": "31/Jan/2021:00:10:25 +0000", "timeEpoch": 1612051825409, }, - "body": "H4sIAOItzWEAA42STVPCMBCG7/wKhjPEpGlty1nx4HhR9CDDdJZ2gc6kSU3TIuP4300qqQxczCGHd5/9eDdZjcb2fPX3pFFbcwCNmYQKJ/PxRENRqkbJAjNojcr052R6gXaom1JJRzMSkcgDbS0UFKizHIRoyl1PvD3yxevzbHn/srziQBqUEvpCN+H4AB2OKyVVrQR62JQVZhpzLDssHBnQgM1YMON0Sfk8iubUjsDobZK8+5wCDLq8f+IVyHYLuWk1apfyoOEwtD/WfZm7xdOwh3ZzptJ00FGXIJxMT8dHtvp3uYwzzlPbPDwFBBgrhzFJOEu91m+WUZKkYexBEA5kMYtJyv1oWNVWjImHOhRZZ5XAGjyT9lZKCEtO0h7tC8udE9kf2IBprOSH2IBxDSPCg8EDfrQo86MbmNoW1LON1L034gerVVOa0wfx3ryf6z/QO4vC6DJwVmUlWyGmw7W25Pdo/QMTMaTbyAIAAA==", + "body": "H4sIAI8ihGIAA42Sz0/CMBTH7/wVhDPUdt3cxlnxYLwoepCQ5cEesKRrZ9cNifF/t53rJHCxhyb7vs/78X3rajS256u7J7XamSNozCSUOJmPJxryQtVK5phBY1SmPyfTC7RFXRdKOpqRiEQeaCqhIEedbUGIuth3xNsjX7w+z5b3L8srDqRBKaErdBOOj9DiuFRSVUqgh01RYqZxi0WLuSMDGrAZC2acLimfR9Gc2hEYvU2Sd5+Tg0GX90+8BNnsYGsajdqlPGg4Du1PVVfmbvE07KHZnKk0HXTUBQgn0/74yE7/Lpdxxnlqm4d9QIBxfBiThLOhkOh2yyhJ0jD2KAiHspjFJOV+OCwrK8bEQy2KrLVKYC2eSQcrJYQlvXRA+4/l3onsD6zB1FZK+88NGNcwIjwYXOBHg3J7snJIbQvq2Vrqzh3xg1WqLkz/RHpzU+/n+hV0zqIwugycVVnJRojpcK0t+T1a/wDKy8FaygIAAA==", "isBase64Encoded": True, } print(lambda_handler(payload, {}))