57
57
START_DATE_TRACKING_FIRST_SOURCEMAP_PER_PROJ = datetime (2023 , 11 , 16 , tzinfo = timezone .utc )
58
58
59
59
60
+ def get_owner_id (project : Project , user : RpcUser | None = None ) -> int | None :
61
+ if user and user .is_authenticated :
62
+ return user .id
63
+
64
+ # this is either the organizations owners user id or None
65
+ return Organization .objects .get_from_cache (id = project .organization_id ).default_owner_id
66
+
67
+
60
68
@project_created .connect (weak = False , dispatch_uid = "record_new_project" )
61
69
def record_new_project (project , user = None , user_id = None , origin = None , ** kwargs ):
62
70
@@ -69,11 +77,8 @@ def record_new_project(project, user=None, user_id=None, origin=None, **kwargs):
69
77
elif user .is_authenticated :
70
78
user_id = default_user_id = user .id
71
79
else :
72
- user_id = None
73
- try :
74
- default_user = Organization .objects .get (id = project .organization_id ).get_default_owner ()
75
- default_user_id = default_user .id
76
- except IndexError :
80
+ user_id = default_user_id = get_owner_id (project , user )
81
+ if user_id is None :
77
82
logger .warning (
78
83
"Cannot initiate onboarding for organization (%s) due to missing owners" ,
79
84
project .organization_id ,
@@ -125,11 +130,7 @@ def record_new_project(project, user=None, user_id=None, origin=None, **kwargs):
125
130
126
131
@first_event_received .connect (weak = False , dispatch_uid = "onboarding.record_first_event" )
127
132
def record_first_event (project , event , ** kwargs ):
128
- try :
129
- user : RpcUser = Organization .objects .get_from_cache (
130
- id = project .organization_id
131
- ).get_default_owner ()
132
- except IndexError :
133
+ if (owner_id := get_owner_id (project )) is None :
133
134
logger .warning (
134
135
"Cannot record first event for organization (%s) due to missing owners" ,
135
136
project .organization_id ,
@@ -138,7 +139,7 @@ def record_first_event(project, event, **kwargs):
138
139
139
140
analytics .record (
140
141
"first_event_for_project.sent" ,
141
- user_id = user . id if user else None ,
142
+ user_id = owner_id ,
142
143
organization_id = project .organization_id ,
143
144
project_id = project .id ,
144
145
platform = event .platform ,
@@ -170,7 +171,7 @@ def record_first_event(project, event, **kwargs):
170
171
if created :
171
172
analytics .record (
172
173
"first_event.sent" ,
173
- user_id = user . id if user else None ,
174
+ user_id = owner_id ,
174
175
organization_id = project .organization_id ,
175
176
project_id = project .id ,
176
177
platform = event .platform ,
@@ -196,14 +197,9 @@ def record_first_transaction(project, datetime, **kwargs):
196
197
date_completed = datetime ,
197
198
)
198
199
199
- try :
200
- default_user_id = project .organization .get_default_owner ().id
201
- except IndexError :
202
- default_user_id = None
203
-
204
200
analytics .record (
205
201
"first_transaction.sent" ,
206
- default_user_id = default_user_id ,
202
+ default_user_id = get_owner_id ( project ) ,
207
203
organization_id = project .organization_id ,
208
204
project_id = project .id ,
209
205
platform = project .platform ,
@@ -216,7 +212,7 @@ def record_first_profile(project, **kwargs):
216
212
217
213
analytics .record (
218
214
"first_profile.sent" ,
219
- user_id = project . organization . default_owner_id ,
215
+ user_id = get_owner_id ( project ) ,
220
216
organization_id = project .organization_id ,
221
217
project_id = project .id ,
222
218
platform = project .platform ,
@@ -240,7 +236,7 @@ def record_first_replay(project, **kwargs):
240
236
logger .info ("record_first_replay_analytics_start" )
241
237
analytics .record (
242
238
"first_replay.sent" ,
243
- user_id = project . organization . default_owner_id ,
239
+ user_id = get_owner_id ( project ) ,
244
240
organization_id = project .organization_id ,
245
241
project_id = project .id ,
246
242
platform = project .platform ,
@@ -266,7 +262,7 @@ def record_first_feedback(project, **kwargs):
266
262
267
263
analytics .record (
268
264
"first_feedback.sent" ,
269
- user_id = project . organization . default_owner_id ,
265
+ user_id = get_owner_id ( project ) ,
270
266
organization_id = project .organization_id ,
271
267
project_id = project .id ,
272
268
platform = project .platform ,
@@ -281,7 +277,7 @@ def record_first_new_feedback(project, **kwargs):
281
277
282
278
analytics .record (
283
279
"first_new_feedback.sent" ,
284
- user_id = project . organization . default_owner_id ,
280
+ user_id = get_owner_id ( project ) ,
285
281
organization_id = project .organization_id ,
286
282
project_id = project .id ,
287
283
platform = project .platform ,
@@ -295,7 +291,7 @@ def record_first_cron_monitor(project, user, from_upsert, **kwargs):
295
291
if updated :
296
292
analytics .record (
297
293
"first_cron_monitor.created" ,
298
- user_id = user . id if user else project . organization . default_owner_id ,
294
+ user_id = get_owner_id ( project , user ) ,
299
295
organization_id = project .organization_id ,
300
296
project_id = project .id ,
301
297
from_upsert = from_upsert ,
@@ -306,7 +302,7 @@ def record_first_cron_monitor(project, user, from_upsert, **kwargs):
306
302
def record_cron_monitor_created (project , user , from_upsert , ** kwargs ):
307
303
analytics .record (
308
304
"cron_monitor.created" ,
309
- user_id = user . id if user else project . organization . default_owner_id ,
305
+ user_id = get_owner_id ( project , user ) ,
310
306
organization_id = project .organization_id ,
311
307
project_id = project .id ,
312
308
from_upsert = from_upsert ,
@@ -321,7 +317,7 @@ def record_first_cron_checkin(project, monitor_id, **kwargs):
321
317
322
318
analytics .record (
323
319
"first_cron_checkin.sent" ,
324
- user_id = project . organization . default_owner_id ,
320
+ user_id = get_owner_id ( project ) ,
325
321
organization_id = project .organization_id ,
326
322
project_id = project .id ,
327
323
monitor_id = monitor_id ,
@@ -354,7 +350,7 @@ def record_first_insight_span(project, module, **kwargs):
354
350
355
351
analytics .record (
356
352
"first_insight_span.sent" ,
357
- user_id = project . organization . default_owner_id ,
353
+ user_id = get_owner_id ( project ) ,
358
354
organization_id = project .organization_id ,
359
355
project_id = project .id ,
360
356
platform = project .platform ,
@@ -400,10 +396,7 @@ def record_release_received(project, release, **kwargs):
400
396
project_id = project .id ,
401
397
)
402
398
if success :
403
- organization = Organization .objects .get_from_cache (id = project .organization_id )
404
- try :
405
- owner : RpcUser = organization .get_default_owner ()
406
- except IndexError :
399
+ if (owner_id := get_owner_id (project )) is None :
407
400
logger .warning (
408
401
"Cannot record release received for organization (%s) due to missing owners" ,
409
402
project .organization_id ,
@@ -412,7 +405,7 @@ def record_release_received(project, release, **kwargs):
412
405
413
406
analytics .record (
414
407
"first_release_tag.sent" ,
415
- user_id = owner . id ,
408
+ user_id = owner_id ,
416
409
project_id = project .id ,
417
410
organization_id = project .organization_id ,
418
411
)
@@ -426,9 +419,7 @@ def record_release_received(project, release, **kwargs):
426
419
weak = False , dispatch_uid = "onboarding.record_event_with_first_minified_stack_trace_for_project"
427
420
)
428
421
def record_event_with_first_minified_stack_trace_for_project (project , event , ** kwargs ):
429
- organization = Organization .objects .get_from_cache (id = project .organization_id )
430
- owner_id = organization .default_owner_id
431
- if not owner_id :
422
+ if (owner_id := get_owner_id (project )) is None :
432
423
logger .warning (
433
424
"Cannot record first event for organization (%s) due to missing owners" ,
434
425
project .organization_id ,
@@ -471,18 +462,15 @@ def record_sourcemaps_received(project, event, **kwargs):
471
462
project_id = project .id ,
472
463
)
473
464
if success :
474
- organization = Organization .objects .get_from_cache (id = project .organization_id )
475
- try :
476
- owner : RpcUser = organization .get_default_owner ()
477
- except IndexError :
465
+ if (owner_id := get_owner_id (project )) is None :
478
466
logger .warning (
479
467
"Cannot record sourcemaps received for organization (%s) due to missing owners" ,
480
468
project .organization_id ,
481
469
)
482
470
return
483
471
analytics .record (
484
472
"first_sourcemaps.sent" ,
485
- user_id = owner . id ,
473
+ user_id = owner_id ,
486
474
organization_id = project .organization_id ,
487
475
project_id = project .id ,
488
476
platform = event .platform ,
@@ -498,9 +486,7 @@ def record_sourcemaps_received_for_project(project, event, **kwargs):
498
486
if not has_sourcemap (event ):
499
487
return
500
488
501
- organization = Organization .objects .get_from_cache (id = project .organization_id )
502
- owner_id = organization .default_owner_id
503
- if not owner_id :
489
+ if (owner_id := get_owner_id (project )) is None :
504
490
logger .warning (
505
491
"Cannot record sourcemaps received for organization (%s) due to missing owners" ,
506
492
project .organization_id ,
0 commit comments