|
11 | 11 |
|
12 | 12 | from contracts_service.contract_status import ContractStatus |
13 | 13 | from contracts_service.exceptions import EventValidationException |
14 | | -from contracts_service.helper import get_current_date, get_event_body, publish_event |
| 14 | +from contracts_service.helper import get_current_date, get_event_body, validate_event, publish_event, get_env |
15 | 15 |
|
16 | 16 | # Initialise Environment variables |
17 | | -if (SERVICE_NAMESPACE := os.environ.get("SERVICE_NAMESPACE")) is None: |
18 | | - raise EnvironmentError("SERVICE_NAMESPACE environment variable is undefined") |
19 | | -if (DYNAMODB_TABLE := os.environ.get("DYNAMODB_TABLE")) is None: |
20 | | - raise EnvironmentError("DYNAMODB_TABLE environment variable is undefined") |
| 17 | +SERVICE_NAMESPACE = get_env("SERVICE_NAMESPACE") |
| 18 | +DYNAMODB_TABLE = get_env("DYNAMODB_TABLE") |
21 | 19 |
|
22 | 20 | # Initialise PowerTools |
23 | 21 | logger: Logger = Logger() |
@@ -50,7 +48,7 @@ def lambda_handler(event, context): |
50 | 48 | """ |
51 | 49 | # Get contract and property details from the event |
52 | 50 | try: |
53 | | - event_json = validate_event(event) |
| 51 | + event_json = validate_event(event, {"property_id", "address", "seller_name"}) |
54 | 52 | except EventValidationException as ex: |
55 | 53 | return ex.apigw_return |
56 | 54 |
|
@@ -98,37 +96,3 @@ def create_contract(contract) -> dict: |
98 | 96 | """ |
99 | 97 | # TODO: create entry in DDB for new contract |
100 | 98 | return table.put_item(Item=contract,) |
101 | | - |
102 | | - |
103 | | -@tracer.capture_method |
104 | | -def validate_event(event): |
105 | | - """Validates the body of the API Gateway event |
106 | | -
|
107 | | - Parameters |
108 | | - ---------- |
109 | | - event : dict |
110 | | - API Gateway event |
111 | | -
|
112 | | - Returns |
113 | | - ------- |
114 | | - dict |
115 | | - The body of the API |
116 | | -
|
117 | | - Raises |
118 | | - ------ |
119 | | - EventValidationException |
120 | | - The ``Raises`` section is a list of all exceptions |
121 | | - that are relevant to the interface. |
122 | | - """ |
123 | | - |
124 | | - try: |
125 | | - event_json = get_event_body(event) |
126 | | - except Exception as ex: |
127 | | - logger.exception(ex) |
128 | | - raise EventValidationException() from ex |
129 | | - |
130 | | - for i in ["property_id", "address", "seller_name"]: |
131 | | - if i not in event_json.keys(): |
132 | | - raise EventValidationException() |
133 | | - |
134 | | - return event_json |
0 commit comments