@@ -410,6 +410,58 @@ func (s *service) DeleteOrganization(ctx context.Context, ctxUserUID uuid.UUID,
410
410
return err
411
411
}
412
412
413
+ // TODO: optimize this
414
+ pageToken := ""
415
+ pipelineIDList := []string {}
416
+ for {
417
+ resp , _ := s .pipelinePublicServiceClient .ListOrganizationPipelines (InjectOwnerToContext (ctx , ctxUserUID .String ()),
418
+ & pipelinePB.ListOrganizationPipelinesRequest {
419
+ Parent : fmt .Sprintf ("organizations/%s" , id ),
420
+ PageToken : & pageToken })
421
+ for _ , connector := range resp .Pipelines {
422
+ pipelineIDList = append (pipelineIDList , connector .Id )
423
+ }
424
+ pageToken = resp .NextPageToken
425
+ if pageToken == "" {
426
+ break
427
+ }
428
+ }
429
+
430
+ pageToken = ""
431
+ connectorIDList := []string {}
432
+ for {
433
+ resp , _ := s .pipelinePublicServiceClient .ListOrganizationConnectors (InjectOwnerToContext (ctx , ctxUserUID .String ()),
434
+ & pipelinePB.ListOrganizationConnectorsRequest {
435
+ Parent : fmt .Sprintf ("organizations/%s" , id ),
436
+ PageToken : & pageToken })
437
+ for _ , connector := range resp .Connectors {
438
+ connectorIDList = append (connectorIDList , connector .Id )
439
+ }
440
+ pageToken = resp .NextPageToken
441
+ if pageToken == "" {
442
+ break
443
+ }
444
+ }
445
+
446
+ for _ , connectorID := range connectorIDList {
447
+ _ , _ = s .pipelinePublicServiceClient .DeleteOrganizationConnector (InjectOwnerToContext (ctx , ctxUserUID .String ()),
448
+ & pipelinePB.DeleteOrganizationConnectorRequest {
449
+ Name : fmt .Sprintf ("organizations/%s/connectors/%s" , id , connectorID ),
450
+ })
451
+ }
452
+ for _ , pipelineID := range pipelineIDList {
453
+ _ , _ = s .pipelinePublicServiceClient .DeleteOrganizationPipeline (InjectOwnerToContext (ctx , ctxUserUID .String ()),
454
+ & pipelinePB.DeleteOrganizationPipelineRequest {
455
+ Name : fmt .Sprintf ("organizations/%s/pipelines/%s" , id , pipelineID ),
456
+ })
457
+ }
458
+
459
+ memberships , _ := s .aclClient .GetOrganizationUsers (org .UID )
460
+
461
+ for _ , membership := range memberships {
462
+ _ = s .aclClient .DeleteOrganizationUserMembership (org .UID , membership .UID )
463
+ }
464
+
413
465
err = s .repository .DeleteOrganization (ctx , id )
414
466
if err != nil {
415
467
return fmt .Errorf ("organizations/%s: %w" , id , err )
0 commit comments