|
1 | 1 | import json
|
| 2 | +import logging |
2 | 3 |
|
| 4 | +from constants import StatusCode, StatusMessage, HEADER_POST_RESPONSE |
3 | 5 | from services import UsageService
|
4 |
| -from utils import make_response |
| 6 | +from logger import setup_logger |
| 7 | +from utils import validate_request, make_response |
5 | 8 |
|
6 | 9 | usage_service = UsageService()
|
7 | 10 |
|
| 11 | +setup_logger() |
| 12 | +logger = logging.getLogger(__name__) |
8 | 13 |
|
9 |
| -def get_and_validate_requried_params(event): |
10 |
| - try: |
11 |
| - org_id = event['queryStringParameters']['organization_id'] |
12 |
| - service_id = event['queryStringParameters']['service_id'] |
13 |
| - user_id = event['queryStringParameters']['user_id'] |
14 |
| - except Exception as e: |
15 |
| - raise e |
16 |
| - |
17 |
| - return org_id, service_id, user_id |
| 14 | +required_keys = ['username', 'organization_id', 'service_id'] |
18 | 15 |
|
19 | 16 |
|
20 | 17 | def main(event, context):
|
21 |
| - org_id, service_id, user_id = get_and_validate_requried_params(event) |
22 |
| - free_call_details = usage_service.get_free_call_details( |
23 |
| - user_id, org_id, service_id) |
24 |
| - |
25 |
| - return_value = { |
26 |
| - "statusCode": 200, |
27 |
| - "headers": { |
28 |
| - "Content-Type": "application/json", |
29 |
| - "Access-Control-Allow-Origin": "*", |
30 |
| - "Access-Control-Allow-Methods": "OPTIONS,POST,GET" |
31 |
| - }, |
32 |
| - "body": json.dumps(free_call_details) |
33 |
| - } |
| 18 | + if validate_request(required_keys, event['queryStringParameters']): |
| 19 | + try: |
| 20 | + org_id = event['queryStringParameters']['organization_id'] |
| 21 | + service_id = event['queryStringParameters']['service_id'] |
| 22 | + username = event['queryStringParameters']['username'] |
| 23 | + free_call_details = usage_service.get_free_call_details( |
| 24 | + username, org_id, service_id) |
| 25 | + return_value = make_response( |
| 26 | + status_code=StatusCode.SUCCESS_GET_CODE, |
| 27 | + header=HEADER_POST_RESPONSE, |
| 28 | + body=json.dumps(free_call_details) |
| 29 | + ) |
| 30 | + |
| 31 | + except Exception as e: |
| 32 | + logger.error(e) |
| 33 | + return_value = make_response( |
| 34 | + status_code=StatusCode.SERVER_ERROR_CODE, |
| 35 | + header=HEADER_POST_RESPONSE, |
| 36 | + body=json.dumps({"error": StatusMessage.SERVER_ERROR_MSG}) |
| 37 | + ) |
| 38 | + |
| 39 | + else: |
| 40 | + logger.error('Request validation failed') |
| 41 | + return_value = make_response( |
| 42 | + status_code=StatusCode.BAD_PARAMETERS_CODE, |
| 43 | + header=HEADER_POST_RESPONSE, |
| 44 | + body=json.dumps({"error": StatusMessage.BAD_PARAMETER}) |
| 45 | + ) |
34 | 46 |
|
35 | 47 | return return_value
|
0 commit comments