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