Skip to content

Commit a67e0fe

Browse files
authored
do not fetch user_Address if it is freecall (#40)
do not fetch user_Address if it is freecall
2 parents 145e059 + d064f28 commit a67e0fe

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
lines changed

metering/handlers/usage_handler.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from constants import StatusCode, StatusMessage
55
from logger import setup_logger
66
from services import UsageService
7+
from settings import PAYMENT_MODE_FREECALL_VALUE
78
from utils import validate_request, make_response
89

910
usage_service = UsageService()
@@ -16,19 +17,19 @@
1617

1718

1819
def add_verify_fields(usage_detail_dict):
19-
new_requred_keys = {
20+
new_required_keys = {
2021
'usage_type', 'status', 'usage_value', 'start_time', 'end_time',
2122
'created_at', 'payment_mode', 'group_id', 'registry_address_key',
2223
'ethereum_json_rpc_endpoint', 'response_time', 'response_code', 'error_message',
2324
'version', 'client_type', 'user_details', 'channel_id', 'operation', 'user_address',
2425
'username', 'org_id', 'service_id', 'resource', 'request_id'
2526
}
26-
for key in new_requred_keys:
27-
if key not in usage_detail_dict:
27+
for key in new_required_keys:
28+
if (key not in usage_detail_dict) or (usage_detail_dict[key] == ""):
2829
usage_detail_dict[key] = None
2930

3031
if usage_detail_dict['username'] is not None and usage_detail_dict['user_address'] is None:
31-
usage_detail_dict['payment_mode'] = 'freecall'
32+
usage_detail_dict['payment_mode'] = PAYMENT_MODE_FREECALL_VALUE
3233
else:
3334
usage_detail_dict['payment_mode'] = 'paid'
3435
return usage_detail_dict

metering/services.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,15 @@ def get_user_address(self, group_id, channel_id):
4848
"requestContext": {"stage": CONTRACT_API_STAGE},
4949
"path": f"/contract-api/group/{group_id}/channel/{channel_id}"
5050
}
51-
response = self.lambda_client.invoke(
52-
FunctionName=CONTRACT_API_ARN,
53-
Payload=json.dumps(lambda_payload)
54-
)
55-
response_body_raw = json.loads(
56-
response.get('Payload').read())['body']
57-
response_body = json.loads(response_body_raw)
51+
5852
try:
53+
response = self.lambda_client.invoke(
54+
FunctionName=CONTRACT_API_ARN,
55+
Payload=json.dumps(lambda_payload)
56+
)
57+
response_body_raw = json.loads(
58+
response.get('Payload').read())['body']
59+
response_body = json.loads(response_body_raw)
5960
user_address = response_body['data'][0]['sender']
6061
except Exception as e:
6162
print(e)

metering/tests/test_total_calls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def test_success_usage_record(self):
5151
"error_message": "",
5252
"version": "v1.0.0",
5353
'username': 'user@snet',
54-
'payment_mode': 'freecall',
54+
'payment_mode': "",
5555
"operation": "read",
5656
"usage_type": "apicall",
5757
"status": "success",

metering/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import logging
22

3+
from settings import PAYMENT_MODE_FREECALL_VALUE
4+
35

46
def make_response(status_code, body, header=None):
57
return {
@@ -35,6 +37,6 @@ def validator_usage():
3537

3638

3739
def is_free_call(usage_details_dict):
38-
if not usage_details_dict['payment_mode'] == 'free_call':
40+
if usage_details_dict['payment_mode'] == PAYMENT_MODE_FREECALL_VALUE:
3941
return True
4042
return False

0 commit comments

Comments
 (0)