4
4
from repository .user_org_group_repository import UserOrgGroupRepository
5
5
6
6
7
- def add_usage_data (usage_details ):
8
- user_org_group_repo = UserOrgGroupRepository ()
9
- user_org_group_repo_data = user_org_group_repo .get_user_org_group_data (
10
- payment_group_id = usage_details .payment_group_id ,
11
- org_id = usage_details .org_id ,
12
- user_name = usage_details .user_name ,
13
- user_id = usage_details .user_id ,
14
- service_id = usage_details .service_id ,
15
- resource = add_usage_data .resource
16
- )
17
-
18
- if user_org_group_repo_data is None :
19
- new_user_org_record = UserOrgGroupModel (
20
- payment_group_id = usage_details .payment_group_id ,
21
- org_id = usage_details .org_id ,
22
- user_name = usage_details .user_name ,
23
- user_id = usage_details .user_id ,
24
- service_id = usage_details .service_id ,
25
- resource = add_usage_data .resource
26
- )
27
- user_org_group_repo .add_item (new_user_org_record )
28
- user_org_group_repo_data = user_org_group_repo .get_user_org_group_data (
29
- payment_group_id = usage_details .payment_group_id ,
30
- org_id = usage_details .org_id ,
31
- user_name = usage_details .user_name ,
32
- user_id = usage_details .user_id ,
33
- service_id = usage_details .service_id ,
34
- resource = add_usage_data .resource
35
- )
7
+ class Storage (object ):
36
8
37
- user_org_group_id = user_org_group_repo_data .id
38
- usage_record = UsageModel (
39
- user_org_group_id = user_org_group_id ,
40
- usage_type = usage_details .usage_type ,
41
- usage_value = usage_details .usage_type ,
42
- start_time = usage_details .start_time ,
43
- end_time = usage_details .start_time
44
- )
45
- usage_repo = UsageRepository ()
46
- usage_repo .add_item (usage_record )
9
+ # Interface to raad write data fom cache or database
47
10
11
+ def add_usage_data (self , usage_detail ):
12
+ pass
48
13
49
- def get_usage_details (user_name , org_id , service_id ):
14
+ def get_usage_details (self , username , org_id , service_id , group_id = None ):
15
+ pass
16
+
17
+
18
+ class DatabaseStorage (Storage ):
50
19
usage_repo = UsageRepository ()
51
20
org_service_config_repo = OrgServiceRepo ()
52
- optin_time = usage_repo .get_optin_time (user_name , org_id , service_id )
53
- free_calls = org_service_config_repo .get_service_config (org_id , service_id , optin_time )
54
- total_calls = usage_repo .get_total_calls (user_name , org_id , service_id )
55
- return total_calls , free_calls
21
+ user_org_group_repo = UserOrgGroupRepository ()
22
+
23
+ def get_user_org_group (self , usage_details ):
24
+ user_org_group_repo_data = self .user_org_group_repo .get_user_org_group_data (
25
+ payment_group_id = usage_details ["payment_group_id" ],
26
+ org_id = usage_details ["org_id" ],
27
+ user_name = usage_details ["user_name" ],
28
+ user_id = usage_details ["user_id" ],
29
+ service_id = usage_details ["service_id" ],
30
+ resource = usage_details ["resource" ]
31
+ )
32
+
33
+ return user_org_group_repo_data
34
+
35
+ def add_usage_data (self , usage_details ):
36
+ existing_user_org_group_repo_data = self .get_user_org_group (usage_details )
37
+
38
+ if existing_user_org_group_repo_data is None :
39
+ new_user_org_record = UserOrgGroupModel (
40
+ payment_group_id = usage_details ["payment_group_id" ],
41
+ org_id = usage_details ["org_id" ],
42
+ user_name = usage_details ["user_name" ],
43
+ user_id = usage_details ["user_id" ],
44
+ service_id = usage_details ["service_id" ],
45
+ resource = usage_details ["resource" ]
46
+ )
47
+ self .user_org_group_repo .create_item (new_user_org_record )
48
+
49
+ user_org_group_repo_data = self .get_user_org_group (usage_details )
50
+ user_org_group_id = user_org_group_repo_data .id
51
+ usage_record = UsageModel (
52
+ user_org_group_id = user_org_group_id ,
53
+ usage_type = usage_details .usage_type ,
54
+ usage_value = usage_details .usage_type ,
55
+ start_time = usage_details .start_time ,
56
+ end_time = usage_details .start_time
57
+ )
58
+ self .usage_repo .create_item (usage_record )
59
+
60
+ def get_usage_details (self , user_name , org_id , service_id , group_id = None ):
61
+ optin_time = self .usage_repo .get_optin_time (user_name , org_id , service_id )
62
+ free_calls = self .org_service_config_repo .get_service_config (org_id , service_id , optin_time )
63
+ total_calls = self .usage_repo .get_total_calls (user_name , org_id , service_id )
64
+ return total_calls , free_calls
56
65
57
66
58
67
if __name__ == '__main__' :
59
- get_usage_details ('1' , '1' , '2' )
68
+ DatabaseStorage (). get_usage_details ('1' , '1' , '2' )
0 commit comments