From ec13bd8108c553752251dbb4c43f39c630c65b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Thu, 11 Dec 2025 18:35:46 +0100 Subject: [PATCH] Rework top level services injection of business level services MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Émile Ré --- pkg/probo/service.go | 4 ++-- pkg/probo/trust_center_access_service.go | 2 +- pkg/server/api/slack/v1/slack_handler.go | 5 +++-- pkg/slack/connector_config.go | 12 ------------ pkg/slack/service.go | 2 ++ pkg/trust/service.go | 4 ++-- pkg/trust/trust_center_access_service.go | 3 +-- 7 files changed, 11 insertions(+), 21 deletions(-) diff --git a/pkg/probo/service.go b/pkg/probo/service.go index 762768b99..1b8c9857e 100644 --- a/pkg/probo/service.go +++ b/pkg/probo/service.go @@ -115,7 +115,7 @@ type ( ProcessingActivities *ProcessingActivityService Files *FileService CustomDomains *CustomDomainService - Slack *slack.TenantService + SlackMessages *slack.SlackMessageService } ) @@ -174,7 +174,6 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService { trustConfig: s.trustConfig, agent: agents.NewAgent(nil, s.agentConfig), fileManager: s.fileManager, - Slack: s.slack.WithTenant(tenantID), } tenantService.Frameworks = &FrameworkService{ @@ -256,6 +255,7 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService { acmeService: s.acmeService, logger: s.logger.Named("custom_domains"), } + tenantService.SlackMessages = s.slack.WithTenant(tenantID).SlackMessages return tenantService } diff --git a/pkg/probo/trust_center_access_service.go b/pkg/probo/trust_center_access_service.go index c9e4e63e3..0bafaf5f1 100644 --- a/pkg/probo/trust_center_access_service.go +++ b/pkg/probo/trust_center_access_service.go @@ -362,7 +362,7 @@ func (s TrustCenterAccessService) Update( } if shouldUpdateSlackMessage { - if err := s.svc.Slack.GetSlackMessageService().QueueSlackAccessMessageUpdate(ctx, access.Email, access.TrustCenterID); err != nil { + if err := s.svc.SlackMessages.QueueSlackAccessMessageUpdate(ctx, access.Email, access.TrustCenterID); err != nil { return nil, fmt.Errorf("cannot queue slack access message update: %w", err) } } diff --git a/pkg/server/api/slack/v1/slack_handler.go b/pkg/server/api/slack/v1/slack_handler.go index f9d5fd4d6..1e8d062ae 100644 --- a/pkg/server/api/slack/v1/slack_handler.go +++ b/pkg/server/api/slack/v1/slack_handler.go @@ -159,6 +159,7 @@ func SlackHandler(slackSvc *slack.Service, slackSigningSecret string, logger *lo var reportIDs []gid.GID var fileIDs []gid.GID var statusAction string + tenantSlackSvc := slackSvc.WithTenant(initialSlackMessage.OrganizationID.TenantID()) // accept_all, reject_all if strings.HasSuffix(action.ActionID, "_all") { @@ -168,7 +169,7 @@ func SlackHandler(slackSvc *slack.Service, slackSigningSecret string, logger *lo return } - documentIDs, reportIDs, fileIDs, err = slackSvc.WithTenant(initialSlackMessage.OrganizationID.TenantID()).GetSlackMessageService().GetSlackMessageDocumentIDs(ctx, currentMessageId) + documentIDs, reportIDs, fileIDs, err = tenantSlackSvc.SlackMessages.GetSlackMessageDocumentIDs(ctx, currentMessageId) if err != nil { logger.ErrorCtx(ctx, "cannot load slack message document ids", log.Error(err)) httpserver.RenderJSON(w, http.StatusInternalServerError, SlackInteractiveResponse{Success: false, Message: "internal server error"}) @@ -261,7 +262,7 @@ func SlackHandler(slackSvc *slack.Service, slackSigningSecret string, logger *lo return } - if err := slackSvc.WithTenant(initialSlackMessage.OrganizationID.TenantID()).GetSlackMessageService().UpdateSlackAccessMessage( + if err := tenantSlackSvc.SlackMessages.UpdateSlackAccessMessage( ctx, initialSlackMessage.ID, slackPayload.ResponseURL, diff --git a/pkg/slack/connector_config.go b/pkg/slack/connector_config.go index f0f9d0aa6..8689922c7 100644 --- a/pkg/slack/connector_config.go +++ b/pkg/slack/connector_config.go @@ -2,7 +2,6 @@ package slack import ( "encoding/json" - "strings" "text/template" ) @@ -14,17 +13,6 @@ var ( b, _ := json.Marshal(s) return string(b[1 : len(b)-1]) }, - "buildAcceptAllValue": func(docIDs, repIDs []string) string { - value := map[string][]string{ - "document_ids": docIDs, - "report_ids": repIDs, - } - b, _ := json.Marshal(value) - s := string(b) - s = strings.ReplaceAll(s, `\`, `\\`) - s = strings.ReplaceAll(s, `"`, `\"`) - return s - }, }). ParseFS(Templates, "templates/access-request.json.tmpl"), ) diff --git a/pkg/slack/service.go b/pkg/slack/service.go index 958fb8902..6d10affe0 100644 --- a/pkg/slack/service.go +++ b/pkg/slack/service.go @@ -27,6 +27,7 @@ type TenantService struct { baseURL string encryptionKey cipher.EncryptionKey tokenSecret string + SlackMessages *SlackMessageService } func NewService( @@ -56,6 +57,7 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService { encryptionKey: s.encryptionKey, tokenSecret: s.tokenSecret, } + tenantService.SlackMessages = &SlackMessageService{svc: tenantService} return tenantService } diff --git a/pkg/trust/service.go b/pkg/trust/service.go index dacced9ea..130bd463e 100644 --- a/pkg/trust/service.go +++ b/pkg/trust/service.go @@ -77,7 +77,7 @@ type ( TrustCenterFiles *TrustCenterFileService Reports *ReportService Organizations *OrganizationService - slack *slack.TenantService + SlackMessages *slack.SlackMessageService } ) @@ -126,7 +126,6 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService { fileManager: s.fileManager, logger: s.logger, trustConfig: s.trustConfig, - slack: s.slack.WithTenant(tenantID), } tenantService.TrustCenters = &TrustCenterService{svc: tenantService} @@ -139,6 +138,7 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService { tenantService.TrustCenterFiles = &TrustCenterFileService{svc: tenantService} tenantService.Reports = &ReportService{svc: tenantService} tenantService.Organizations = &OrganizationService{svc: tenantService} + tenantService.SlackMessages = s.slack.WithTenant(tenantID).SlackMessages return tenantService } diff --git a/pkg/trust/trust_center_access_service.go b/pkg/trust/trust_center_access_service.go index 389ff9b81..ddf55d7d1 100644 --- a/pkg/trust/trust_center_access_service.go +++ b/pkg/trust/trust_center_access_service.go @@ -232,8 +232,7 @@ func (s TrustCenterAccessService) Request( return nil, err } - slackMessageService := s.svc.slack.GetSlackMessageService() - if err := slackMessageService.QueueSlackNotification(ctx, access.Email, req.TrustCenterID); err != nil { + if err := s.svc.SlackMessages.QueueSlackNotification(ctx, access.Email, req.TrustCenterID); err != nil { s.logger.ErrorCtx(ctx, "cannot queue slack notification", log.Error(err)) }