Skip to content

Commit 8e4077c

Browse files
Restyled by black
1 parent b8a2a97 commit 8e4077c

File tree

7 files changed

+151
-106
lines changed

7 files changed

+151
-106
lines changed

metering/handlers/freecall_handler.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,27 @@
77

88
logger = get_logger(__name__)
99

10-
required_keys = ['organization_id', 'service_id']
10+
required_keys = ["organization_id", "service_id"]
1111

1212

1313
def main(event, context):
1414
logger.info("Free call request received")
1515
try:
16-
if validate_request(required_keys, event['queryStringParameters']):
17-
org_id = event['queryStringParameters']['organization_id']
18-
service_id = event['queryStringParameters']['service_id']
19-
username = event['queryStringParameters']['username']
20-
21-
logger.info(f"Fetched values from request \n"
22-
f"username: {username} \n"
23-
f"org_id: {org_id} \n"
24-
f"service_id: {service_id} \n")
16+
if validate_request(required_keys, event["queryStringParameters"]):
17+
org_id = event["queryStringParameters"]["organization_id"]
18+
service_id = event["queryStringParameters"]["service_id"]
19+
username = event["queryStringParameters"]["username"]
20+
21+
logger.info(
22+
f"Fetched values from request \n"
23+
f"username: {username} \n"
24+
f"org_id: {org_id} \n"
25+
f"service_id: {service_id} \n"
26+
)
2527

2628
free_call_details = usage_service.get_free_call_details(
27-
username, org_id, service_id)
29+
username, org_id, service_id
30+
)
2831
response = free_call_details
2932
status_code = StatusCode.SUCCESS_GET_CODE
3033
else:
@@ -35,7 +38,7 @@ def main(event, context):
3538
except Exception as e:
3639
logger.error("Failed to get free call details")
3740
logger.info(event)
38-
status_code = StatusCode.SERVER_ERROR_CODE,
41+
status_code = (StatusCode.SERVER_ERROR_CODE,)
3942
response = StatusMessage.SERVER_ERROR_MSG
4043

4144
return generate_lambda_response(status_code, response)

metering/handlers/usage_handler.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,37 @@
44
from constants import StatusCode, StatusMessage
55
from logger import get_logger
66
from services import UsageService
7-
from utils import validate_request, usage_record_add_verify_fields, generate_lambda_response
7+
from utils import (
8+
validate_request,
9+
usage_record_add_verify_fields,
10+
generate_lambda_response,
11+
)
812

913
usage_service = UsageService()
1014

1115
logger = get_logger(__name__)
1216

13-
required_keys = ["organization_id", "service_id", "username", 'usage_value', 'usage_type',
14-
'service_method', 'group_id', 'status', 'start_time', 'end_time']
17+
required_keys = [
18+
"organization_id",
19+
"service_id",
20+
"username",
21+
"usage_value",
22+
"usage_type",
23+
"service_method",
24+
"group_id",
25+
"status",
26+
"start_time",
27+
"end_time",
28+
]
1529

1630

1731
def main(event, context):
1832
logger.info("Usage record request received")
1933
try:
20-
request_dict = json.loads(event['body'])
34+
request_dict = json.loads(event["body"])
2135
if validate_request(required_keys, request_dict):
2236
usage_detail_dict = usage_record_add_verify_fields(request_dict)
23-
logging.info(
24-
f"usage record after modification: {usage_detail_dict}")
37+
logging.info(f"usage record after modification: {usage_detail_dict}")
2538
usage_service.save_usage_details(usage_detail_dict)
2639
response = "success"
2740
status_code = StatusCode.SUCCESS_GET_CODE
@@ -33,7 +46,7 @@ def main(event, context):
3346
except Exception as e:
3447
logger.error("Failed to get free call details")
3548
logger.info(event)
36-
status_code = StatusCode.SERVER_ERROR_CODE,
49+
status_code = (StatusCode.SERVER_ERROR_CODE,)
3750
response = StatusMessage.SERVER_ERROR_MSG
3851

3952
return generate_lambda_response(status_code, response)

metering/logger.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import sys
3+
34
FORMATTER = logging.Formatter("%(asctime)s %(levelname)s %(name)s %(message)s")
45

56

metering/repository/base_repository.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212

1313
class BaseRepository(object):
14-
1514
def get_default_session(self, session=None):
1615
if not session:
1716
return default_session

metering/services.py

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,24 @@ class UsageService(object):
1515

1616
def get_free_call_details(self, username, org_id, service_id, group_id=None):
1717
total_calls, free_calls = self.storage_service.get_usage_details(
18-
username, org_id, service_id, group_id)
18+
username, org_id, service_id, group_id
19+
)
1920

2021
logger.info(
21-
f"Free calls allowed: {free_calls}, Total calls made: {total_calls}")
22+
f"Free calls allowed: {free_calls}, Total calls made: {total_calls}"
23+
)
2224
if not free_calls:
2325
free_calls = 0
2426
if not total_calls:
2527
total_calls = 0
2628

27-
response = {"username": username, "org_id": org_id, "service_id": service_id, "total_calls_made": total_calls,
28-
"free_calls_allowed": free_calls}
29+
response = {
30+
"username": username,
31+
"org_id": org_id,
32+
"service_id": service_id,
33+
"total_calls_made": total_calls,
34+
"free_calls_allowed": free_calls,
35+
}
2936

3037
logger.info(response)
3138
return response
@@ -34,40 +41,36 @@ def save_usage_details(self, usage_details_dict):
3441
# nedd to introduce entities when we enhance feature to this service right now directly using dicts
3542
if not is_free_call(usage_details_dict):
3643
logger.info("Received usage record request for paid call")
37-
channel_id = usage_details_dict['channel_id']
38-
group_id = usage_details_dict['group_id']
44+
channel_id = usage_details_dict["channel_id"]
45+
group_id = usage_details_dict["group_id"]
3946

4047
user_address = APIUtilityService().get_user_address(group_id, channel_id)
41-
usage_details_dict['user_address'] = user_address
42-
logger.info(
43-
f"fetched user address from contract api: {user_address}")
48+
usage_details_dict["user_address"] = user_address
49+
logger.info(f"fetched user address from contract api: {user_address}")
4450

4551
self.storage_service.add_usage_data(usage_details_dict)
4652
return
4753

4854

4955
class APIUtilityService:
50-
5156
def __init__(self):
52-
self.lambda_client = boto3.client('lambda')
57+
self.lambda_client = boto3.client("lambda")
5358

5459
def get_user_address(self, group_id, channel_id):
5560
lambda_payload = {
5661
"httpMethod": "GET",
5762
"requestContext": {"stage": CONTRACT_API_STAGE},
58-
"path": f"/contract-api/group/{group_id}/channel/{channel_id}"
63+
"path": f"/contract-api/group/{group_id}/channel/{channel_id}",
5964
}
6065

6166
try:
6267
logger.info(f"Calling contract api for user_address")
6368
response = self.lambda_client.invoke(
64-
FunctionName=CONTRACT_API_ARN,
65-
Payload=json.dumps(lambda_payload)
69+
FunctionName=CONTRACT_API_ARN, Payload=json.dumps(lambda_payload)
6670
)
67-
response_body_raw = json.loads(
68-
response.get('Payload').read())['body']
71+
response_body_raw = json.loads(response.get("Payload").read())["body"]
6972
response_body = json.loads(response_body_raw)
70-
user_address = response_body['data'][0]['sender']
73+
user_address = response_body["data"][0]["sender"]
7174
except Exception as e:
7275
print(e)
7376
raise Exception("Failed to get user address from marketplace")

metering/storage.py

Lines changed: 54 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,27 @@ def get_usage_details(self, username, org_id, service_id, group_id=None):
2222

2323

2424
class DatabaseStorage(Storage):
25-
2625
def __init__(self):
2726
self.usage_repo = UsageRepository()
2827
self.org_service_config_repo = OrgServiceRepo()
2928
self.user_org_group_repo = UserOrgGroupRepository()
3029

3130
def get_user_org_group_id(self, usage_details):
3231

33-
if usage_details['payment_mode'] == PAYMENT_MODE_FREECALL_VALUE:
32+
if usage_details["payment_mode"] == PAYMENT_MODE_FREECALL_VALUE:
3433
user_org_group_id = self.user_org_group_repo.get_user_org_group_id_by_username(
35-
usage_details['username'],
36-
usage_details['organization_id'],
37-
usage_details['service_id'],
38-
usage_details['service_method']
34+
usage_details["username"],
35+
usage_details["organization_id"],
36+
usage_details["service_id"],
37+
usage_details["service_method"],
3938
)
40-
elif usage_details['payment_mode'] == PAYMENT_MODE_ESCROW_VALUE:
39+
elif usage_details["payment_mode"] == PAYMENT_MODE_ESCROW_VALUE:
4140
user_org_group_id = self.user_org_group_repo.get_user_org_group_id_by_user_address(
42-
usage_details['user_address'],
43-
usage_details['organization_id'],
44-
usage_details['service_id'],
45-
usage_details['service_method'],
46-
usage_details['group_id']
41+
usage_details["user_address"],
42+
usage_details["organization_id"],
43+
usage_details["service_id"],
44+
usage_details["service_method"],
45+
usage_details["group_id"],
4746
)
4847
else:
4948
raise Exception("Invalid payment mode")
@@ -56,69 +55,74 @@ def add_usage_data(self, usage_details):
5655
user_org_group_id = self.get_user_org_group_id(usage_details)
5756

5857
if user_org_group_id is None:
59-
logger.info(f"No user org group data found for "
60-
f"group_id: {usage_details['group_id']}, "
61-
f"org_id: {usage_details['organization_id']}, "
62-
f"user_name: {usage_details['username']}, "
63-
f"user_address: {usage_details['user_address']}, "
64-
f"service_id: {usage_details['service_id']}, "
65-
f"resource {usage_details['service_method']}")
58+
logger.info(
59+
f"No user org group data found for "
60+
f"group_id: {usage_details['group_id']}, "
61+
f"org_id: {usage_details['organization_id']}, "
62+
f"user_name: {usage_details['username']}, "
63+
f"user_address: {usage_details['user_address']}, "
64+
f"service_id: {usage_details['service_id']}, "
65+
f"resource {usage_details['service_method']}"
66+
)
6667
new_user_org_record = UserOrgGroupModel(
6768
payment_group_id=usage_details["group_id"],
6869
org_id=usage_details["organization_id"],
6970
user_name=usage_details["username"],
7071
user_address=usage_details["user_address"],
7172
service_id=usage_details["service_id"],
72-
resource=usage_details["service_method"]
73+
resource=usage_details["service_method"],
7374
)
7475
self.user_org_group_repo.create_item(new_user_org_record)
75-
logger.info(f"Added user org group data\ngroup_id: {usage_details['group_id']}, "
76-
f"org_id: {usage_details['organization_id']}, "
77-
f"user_name: {usage_details['username']}, "
78-
f"user_address: {usage_details['user_address']}, "
79-
f"service_id: {usage_details['service_id']}, "
80-
f"resource {usage_details['service_method']}")
76+
logger.info(
77+
f"Added user org group data\ngroup_id: {usage_details['group_id']}, "
78+
f"org_id: {usage_details['organization_id']}, "
79+
f"user_name: {usage_details['username']}, "
80+
f"user_address: {usage_details['user_address']}, "
81+
f"service_id: {usage_details['service_id']}, "
82+
f"resource {usage_details['service_method']}"
83+
)
8184
user_org_group_id = self.get_user_org_group_id(usage_details)
8285

8386
usage_record = UsageModel(
84-
client_type=usage_details['client_type'],
85-
ethereum_json_rpc_endpoint=usage_details['ethereum_json_rpc_endpoint'],
86-
registry_address_key=usage_details['registry_address_key'],
87+
client_type=usage_details["client_type"],
88+
ethereum_json_rpc_endpoint=usage_details["ethereum_json_rpc_endpoint"],
89+
registry_address_key=usage_details["registry_address_key"],
8790
user_org_group_id=user_org_group_id,
88-
status=usage_details['status'],
89-
start_time=usage_details['start_time'],
90-
end_time=usage_details['end_time'],
91-
response_time=usage_details['response_time'],
92-
response_code=usage_details['response_code'],
93-
error_message=usage_details['error_message'],
94-
version=usage_details['version'],
95-
channel_id=usage_details['channel_id'],
96-
operation=usage_details['operation'],
91+
status=usage_details["status"],
92+
start_time=usage_details["start_time"],
93+
end_time=usage_details["end_time"],
94+
response_time=usage_details["response_time"],
95+
response_code=usage_details["response_code"],
96+
error_message=usage_details["error_message"],
97+
version=usage_details["version"],
98+
channel_id=usage_details["channel_id"],
99+
operation=usage_details["operation"],
97100
group_id=usage_details["group_id"],
98101
org_id=usage_details["organization_id"],
99-
usage_type=usage_details['usage_type'],
100-
usage_value=usage_details['usage_value'],
101-
user_details=usage_details['user_details'],
102+
usage_type=usage_details["usage_type"],
103+
usage_value=usage_details["usage_value"],
104+
user_details=usage_details["user_details"],
102105
user_name=usage_details["username"],
103106
service_id=usage_details["service_id"],
104107
resource=usage_details["service_method"],
105108
request_id=usage_details["request_id"],
106-
payment_mode=usage_details["payment_mode"]
109+
payment_mode=usage_details["payment_mode"],
107110
)
108111
self.usage_repo.create_item(usage_record)
109112
logger.info(f"added usage data for {usage_details}")
110113

111114
def get_usage_details(self, user_name, org_id, service_id, group_id=None):
112-
optin_time = self.usage_repo.get_optin_time(
113-
user_name, org_id, service_id)
114-
logger.info(f"opt in for the user{user_name}, \n"
115-
f"org_id: {org_id}, service_id: {service_id} \n"
116-
f"{optin_time.strftime('%Y-%m-%d %H:%M:%S')}")
115+
optin_time = self.usage_repo.get_optin_time(user_name, org_id, service_id)
116+
logger.info(
117+
f"opt in for the user{user_name}, \n"
118+
f"org_id: {org_id}, service_id: {service_id} \n"
119+
f"{optin_time.strftime('%Y-%m-%d %H:%M:%S')}"
120+
)
117121

118122
free_calls = self.org_service_config_repo.get_service_config(
119-
org_id, service_id, optin_time)
123+
org_id, service_id, optin_time
124+
)
120125

121-
total_calls = self.usage_repo.get_total_calls(
122-
user_name, org_id, service_id)
126+
total_calls = self.usage_repo.get_total_calls(user_name, org_id, service_id)
123127

124128
return total_calls, free_calls

0 commit comments

Comments
 (0)