|
22 | 22 | API_VERSION = 'api/unstable' |
23 | 23 |
|
24 | 24 |
|
25 | | -# def annotate(metadata=None, **kwargs): |
26 | | -# """ |
27 | | -# Decorates a function as being a metric |
28 | | -# """ |
29 | | -# if metadata is None: |
30 | | -# metadata = {} |
31 | | -# def decorate(func): |
32 | | -# if not hasattr(func, 'metadata'): |
33 | | -# func.metadata = {} |
34 | | -# metric_metadata.append(func.metadata) |
35 | | - |
36 | | -# func.metadata.update(metadata) |
37 | | -# if kwargs.get('endpoint_type', None): |
38 | | -# endpoint_type = kwargs.pop('endpoint_type') |
39 | | -# if endpoint_type == 'repo': |
40 | | -# func.metadata['repo_endpoint'] = kwargs.get('endpoint') |
41 | | -# else: |
42 | | -# func.metadata['group_endpoint'] = kwargs.get('endpoint') |
43 | | - |
44 | | -# func.metadata.update(dict(kwargs)) |
45 | | - |
46 | | -# func.metadata['metric_name'] = request.sub('_', ' ', func.__name__).title() |
47 | | -# func.metadata['source'] = request.sub(r'(.*\.)', '', func.__module__) |
48 | | -# func.metadata['ID'] = "{}-{}".format(func.metadata['source'].lower(), func.metadata['tag']) |
49 | | - |
50 | | -# return func |
51 | | -# return decorate |
52 | | - |
53 | | -# def add_metrics(metrics, module_name): |
54 | | -# # find all unbound endpoint functions objects (ones that have metadata) defined the given module_name |
55 | | -# # and bind them to the metrics class |
56 | | -# # Derek are you proud of me |
57 | | -# for name, obj in inspect.getmembers(sys.modules[module_name]): |
58 | | -# if inspect.isfunction(obj) is True: |
59 | | -# if hasattr(obj, 'metadata') is True: |
60 | | -# setattr(metrics, name, types.MethodType(obj, metrics)) |
61 | | - |
62 | | - |
63 | | -# #@annotate(tag='slack_login') |
64 | | -# def slack_login(metric, body): |
65 | | -# print("slack_login") |
66 | | - |
67 | | -# r = requests.get( |
68 | | -# url=f'https://slack.com/api/oauth.v2.access?code={body["code"]}&client_id={os.environ["AUGGIE_CLIENT_ID"]}&client_secret={os.environ["AUGGIE_CLIENT_SECRET"]}&redirect_uri=http%3A%2F%2Flocalhost%3A8080') |
69 | | -# data = r.json() |
70 | | - |
71 | | -# if (data["ok"]): |
72 | | -# print(data) |
73 | | -# token = data["authed_user"]["access_token"] |
74 | | -# team_id = data["team"]["id"] |
75 | | -# webclient = slack.WebClient(token=token) |
76 | | - |
77 | | -# user_response = webclient.users_identity() |
78 | | -# print(user_response) |
79 | | -# email = user_response["user"]["email"] |
80 | | - |
81 | | -# profile_name = 'collectoss' |
82 | | -# if os.environ.get('AUGUR_IS_PROD'): |
83 | | -# profile_name = 'default' |
84 | | -# print("Making Boto3 Session") |
85 | | -# client = boto3.Session(region_name='us-east-1', |
86 | | -# profile_name=profile_name).client('dynamodb') |
87 | | -# response = client.get_item( |
88 | | -# TableName="auggie-users", |
89 | | -# Key={ |
90 | | -# "email": {"S": '{}:{}'.format(email, team_id)} |
91 | | -# } |
92 | | -# ) |
93 | | - |
94 | | -# if ('Item' in response): |
95 | | -# user = response['Item'] |
96 | | -# print(user) |
97 | | - |
98 | | -# filteredUser = { |
99 | | -# "interestedRepos": user["interestedRepos"], |
100 | | -# "interestedGroups": user["interestedGroups"], |
101 | | -# "host": user["host"], |
102 | | -# "maxMessages": user["maxMessages"], |
103 | | -# "interestedInsights": user["interestedInsightTypes"] |
104 | | -# } |
105 | | - |
106 | | -# user_body = json.dumps({ |
107 | | -# 'team_id': team_id, |
108 | | -# 'email': email, |
109 | | -# 'user': filteredUser |
110 | | -# }) |
111 | | - |
112 | | -# print(user_body) |
113 | | - |
114 | | -# return user_body |
115 | | -# else: |
116 | | -# client.put_item( |
117 | | -# TableName="auggie-users", |
118 | | -# Item={ |
119 | | -# 'botToken': {'S': 'null'}, |
120 | | -# 'currentMessages': {'N': "0"}, |
121 | | -# 'maxMessages': {'N': "0"}, |
122 | | -# 'email': {'S': '{}:{}'.format(email, team_id)}, |
123 | | -# 'host': {'S': 'null'}, |
124 | | -# 'interestedGroups': {'L': []}, |
125 | | -# 'interestedRepos': {'L': []}, |
126 | | -# 'interestedInsightTypes': {'L': []}, |
127 | | -# 'teamID': {'S': team_id}, |
128 | | -# 'thread': {'S': 'null'}, |
129 | | -# 'userID': {'S': user_response['user']['id']} |
130 | | -# } |
131 | | -# ) |
132 | | - |
133 | | -# # users_response = webclient.users_list() |
134 | | -# # for user in users_response["members"]: |
135 | | -# # if "api_app_id" in user["profile"] and user["profile"]["api_app_id"] == "ASQKB8JT0": |
136 | | -# # im_response = webclient.conversations_open( |
137 | | -# # users=user["id"] |
138 | | -# # ) |
139 | | -# # print("Hopefully IM is opened") |
140 | | -# # channel = im_response["channel"]["id"] |
141 | | - |
142 | | -# # message_response = webclient.chat_postMessage( |
143 | | -# # channel=channel, |
144 | | -# # text="what repos?", |
145 | | -# # as_user="true") |
146 | | -# # print(message_response) |
147 | | - |
148 | | -# # ts = message_response["ts"] |
149 | | -# # webclient.chat_delete( |
150 | | -# # channel=channel, |
151 | | -# # ts=ts |
152 | | -# # ) |
153 | | - |
154 | | -# response = client.get_item( |
155 | | -# TableName="auggie-users", |
156 | | -# Key={ |
157 | | -# "email": {"S": '{}:{}'.format(email, team_id)} |
158 | | -# } |
159 | | -# ) |
160 | | - |
161 | | -# user = response['Item'] |
162 | | -# print(user) |
163 | | - |
164 | | -# filteredUser = { |
165 | | -# "interestedRepos": user["interestedRepos"], |
166 | | -# "interestedGroups": user["interestedGroups"], |
167 | | -# "host": user["host"], |
168 | | -# "maxMessages": user["maxMessages"], |
169 | | -# "interestedInsights": user["interestedInsightTypes"] |
170 | | -# } |
171 | | - |
172 | | -# user_body = json.dumps({ |
173 | | -# 'team_id': team_id, |
174 | | -# 'email': email, |
175 | | -# 'user': filteredUser |
176 | | -# }) |
177 | | - |
178 | | -# print(user_body) |
179 | | - |
180 | | -# return user_body |
181 | | -# else: |
182 | | -# return data |
183 | | - |
184 | | -# #@annotate(tag='update-auggie-user-tracking') |
185 | | -# def update_tracking(metric, body): |
186 | | -# profile_name = 'collectoss' |
187 | | -# if os.environ.get('AUGUR_IS_PROD'): |
188 | | -# profile_name = 'default' |
189 | | -# client = boto3.Session(region_name='us-east-1', profile_name=profile_name).client('dynamodb') |
190 | | -# response = client.update_item( |
191 | | -# TableName="auggie-users", |
192 | | -# Key={ |
193 | | -# "email": {"S": '{}:{}'.format(body["email"], body["teamID"])} |
194 | | -# }, |
195 | | -# UpdateExpression="SET interestedGroups = :valGroup, interestedRepos = :valRepo, maxMessages = :valMax, host = :valHost, interestedInsightTypes = :valInterestedInsights", |
196 | | -# ExpressionAttributeValues={ |
197 | | -# ":valGroup": { |
198 | | -# "L": body["groups"] |
199 | | -# }, |
200 | | -# ":valRepo": { |
201 | | -# "L": body["repos"] |
202 | | -# }, |
203 | | -# ":valMax": { |
204 | | -# "N": body["maxMessages"] |
205 | | -# }, |
206 | | -# ":valHost": { |
207 | | -# "S": body["host"] |
208 | | -# }, |
209 | | -# ":valInterestedInsights": { |
210 | | -# "L": body["insightTypes"] |
211 | | -# } |
212 | | -# }, |
213 | | -# ReturnValues="ALL_NEW" |
214 | | -# ) |
215 | | - |
216 | | -# updated_values = response['Attributes'] |
217 | | - |
218 | | -# filtered_values = { |
219 | | -# "interestedRepos": updated_values["interestedRepos"], |
220 | | -# "interestedGroups": updated_values["interestedGroups"], |
221 | | -# "host": updated_values["host"] |
222 | | -# } |
223 | | - |
224 | | -# return filtered_values |
225 | | - |
226 | | - |
227 | | -# #@annotate(tag='get-auggie-user') |
228 | | -# def get_auggie_user(metric, body): |
229 | | -# profile_name = 'collectoss' |
230 | | -# if os.environ.get('AUGUR_IS_PROD'): |
231 | | -# profile_name = 'default' |
232 | | -# client = boto3.Session(region_name='us-east-1', profile_name=profile_name).client('dynamodb') |
233 | | -# response = client.get_item( |
234 | | -# TableName="auggie-users", |
235 | | -# Key={ |
236 | | -# "email": {"S":'{}:{}'.format(body["email"],body["teamID"])} |
237 | | -# } |
238 | | -# ) |
239 | | -# user = response['Item'] |
240 | | - |
241 | | -# filteredUser = { |
242 | | -# "interestedRepos":user["interestedRepos"], |
243 | | -# "interestedGroups":user["interestedGroups"], |
244 | | -# "host":user["host"] |
245 | | -# } |
246 | | - |
247 | | -# return filteredUser |
248 | | - |
249 | | - |
250 | 25 | @app.route('/auggie/get_user', methods=['POST']) |
251 | 26 | def get_auggie_user(): |
252 | 27 | # arg = [request.json] |
|
0 commit comments