Coverage for chalicelib/core/log_tools/sentry.py: 92%
40 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:56 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:56 +0000
1import logging
3import requests
5from chalicelib.core.log_tools import log_tools
6from chalicelib.utils.log import sanitize
7from schemas import schemas
9logger = logging.getLogger(__name__)
11IN_TY = "sentry"
14def get_all(tenant_id):
15 return log_tools.get_all_by_tenant(tenant_id=tenant_id, integration=IN_TY)
18def get(project_id):
19 return log_tools.get(project_id=project_id, integration=IN_TY)
22def update(tenant_id, project_id, changes):
23 options = {}
24 if "organizationSlug" in changes: 24 ↛ 26line 24 didn't jump to line 26 because the condition on line 24 was always true
25 options["organizationSlug"] = changes["organizationSlug"]
26 if "projectSlug" in changes: 26 ↛ 28line 26 didn't jump to line 28 because the condition on line 26 was always true
27 options["projectSlug"] = changes["projectSlug"]
28 if "token" in changes: 28 ↛ 31line 28 didn't jump to line 31 because the condition on line 28 was always true
29 options["token"] = changes["token"]
31 return log_tools.edit(project_id=project_id, integration=IN_TY, changes=changes)
34def add(tenant_id, project_id, project_slug, organization_slug, token):
35 options = {
36 "organizationSlug": organization_slug, "projectSlug": project_slug, "token": token
37 }
38 return log_tools.add(project_id=project_id, integration=IN_TY, options=options)
41def delete(tenant_id, project_id):
42 return log_tools.delete(project_id=project_id, integration=IN_TY)
45def add_edit(tenant_id, project_id, data: schemas.IntegrationSentrySchema):
46 s = get(project_id)
47 if s is not None:
48 return update(tenant_id=tenant_id, project_id=project_id,
49 changes={"projectSlug": data.project_slug,
50 "organizationSlug": data.organization_slug,
51 "token": data.token})
52 else:
53 return add(tenant_id=tenant_id,
54 project_id=project_id,
55 project_slug=data.project_slug,
56 organization_slug=data.organization_slug,
57 token=data.token)
60def proxy_get(tenant_id, project_id, event_id):
61 i = get(project_id)
62 if i is None:
63 return {}
64 r = requests.get(
65 url="https://sentry.io/api/0/projects/%(organization_slug)s/%(project_slug)s/events/%(event_id)s/" % {
66 "organization_slug": i["organizationSlug"], "project_slug": i["projectSlug"], "event_id": event_id},
67 headers={"Authorization": "Bearer " + i["token"]})
68 if r.status_code != 200: 68 ↛ 72line 68 didn't jump to line 72 because the condition on line 68 was always true
69 logger.error("=======> sentry get: something went wrong")
70 logger.error(r.status_code)
71 logger.error(sanitize(r.text))
72 return r.json()