1
+ import requests
2
+ from typing import Optional
3
+ from epilotapi .models import shared , operations
4
+ from . import utils
5
+
6
+ class Activity :
7
+ _client : requests .Session
8
+ _security_client : requests .Session
9
+ _server_url : str
10
+ _language : str
11
+ _sdk_version : str
12
+ _gen_version : str
13
+
14
+ def __init__ (self , client : requests .Session , security_client : requests .Session , server_url : str , language : str , sdk_version : str , gen_version : str ) -> None :
15
+ self ._client = client
16
+ self ._security_client = security_client
17
+ self ._server_url = server_url
18
+ self ._language = language
19
+ self ._sdk_version = sdk_version
20
+ self ._gen_version = gen_version
21
+
22
+
23
+ def attach_activity (self , request : operations .AttachActivityRequest ) -> operations .AttachActivityResponse :
24
+ r"""attachActivity
25
+ Attach existing activity to entity activity feeds
26
+ """
27
+
28
+ base_url = self ._server_url
29
+
30
+ url = utils .generate_url (base_url , "/v1/entity/activity/{id}:attach" , request .path_params )
31
+
32
+ query_params = utils .get_query_params (request .query_params )
33
+
34
+ client = self ._security_client
35
+
36
+ r = client .request ("POST" , url , params = query_params )
37
+ content_type = r .headers .get ("Content-Type" )
38
+
39
+ res = operations .AttachActivityResponse (status_code = r .status_code , content_type = content_type )
40
+
41
+ if r .status_code == 200 :
42
+ if utils .match_content_type (content_type , "application/json" ):
43
+ out = utils .unmarshal_json (r .text , Optional [shared .ActivityItem ])
44
+ res .activity_item = out
45
+
46
+ return res
47
+
48
+
49
+ def create_activity (self , request : operations .CreateActivityRequest ) -> operations .CreateActivityResponse :
50
+ r"""createActivity
51
+ Create an activity that can be displayed in activity feeds.
52
+
53
+ - All activites are published as events on the event bus
54
+ - Entity mutations are always part of an activity
55
+
56
+ """
57
+
58
+ base_url = self ._server_url
59
+
60
+ url = base_url .removesuffix ("/" ) + "/v1/entity/activity"
61
+
62
+ headers = {}
63
+ req_content_type , data , json , files = utils .serialize_request_body (request )
64
+ if req_content_type != "multipart/form-data" and req_content_type != "multipart/mixed" :
65
+ headers ["content-type" ] = req_content_type
66
+ query_params = utils .get_query_params (request .query_params )
67
+
68
+ client = self ._security_client
69
+
70
+ r = client .request ("POST" , url , params = query_params , data = data , json = json , files = files , headers = headers )
71
+ content_type = r .headers .get ("Content-Type" )
72
+
73
+ res = operations .CreateActivityResponse (status_code = r .status_code , content_type = content_type )
74
+
75
+ if r .status_code == 200 :
76
+ if utils .match_content_type (content_type , "application/json" ):
77
+ out = utils .unmarshal_json (r .text , Optional [shared .ActivityItem ])
78
+ res .activity_item = out
79
+
80
+ return res
81
+
82
+
83
+ def get_activity (self , request : operations .GetActivityRequest ) -> operations .GetActivityResponse :
84
+ r"""getActivity
85
+ Get activity by id
86
+ """
87
+
88
+ base_url = self ._server_url
89
+
90
+ url = utils .generate_url (base_url , "/v1/entity/activity/{id}" , request .path_params )
91
+
92
+ query_params = utils .get_query_params (request .query_params )
93
+
94
+ client = self ._security_client
95
+
96
+ r = client .request ("GET" , url , params = query_params )
97
+ content_type = r .headers .get ("Content-Type" )
98
+
99
+ res = operations .GetActivityResponse (status_code = r .status_code , content_type = content_type )
100
+
101
+ if r .status_code == 200 :
102
+ if utils .match_content_type (content_type , "application/json" ):
103
+ out = utils .unmarshal_json (r .text , Optional [shared .ActivityItem ])
104
+ res .activity_item = out
105
+
106
+ return res
107
+
108
+
109
+ def get_entity_activity_feed (self , request : operations .GetEntityActivityFeedRequest ) -> operations .GetEntityActivityFeedResponse :
110
+ r"""getEntityActivityFeed
111
+ Get activity feed for an entity
112
+
113
+ """
114
+
115
+ base_url = self ._server_url
116
+
117
+ url = utils .generate_url (base_url , "/v1/entity/{slug}/{id}/activity" , request .path_params )
118
+
119
+ query_params = utils .get_query_params (request .query_params )
120
+
121
+ client = self ._security_client
122
+
123
+ r = client .request ("GET" , url , params = query_params )
124
+ content_type = r .headers .get ("Content-Type" )
125
+
126
+ res = operations .GetEntityActivityFeedResponse (status_code = r .status_code , content_type = content_type )
127
+
128
+ if r .status_code == 200 :
129
+ if utils .match_content_type (content_type , "application/json" ):
130
+ out = utils .unmarshal_json (r .text , Optional [operations .GetEntityActivityFeed200ApplicationJSON ])
131
+ res .get_entity_activity_feed_200_application_json_object = out
132
+
133
+ return res
134
+
135
+
0 commit comments