Rework top level services injection of business level services

Signed-off-by: Émile Ré <nemile.re@gmail.com>
This commit is contained in:
Émile Ré
2025-12-11 18:35:46 +01:00
parent 69f876484e
commit ec13bd8108
7 changed files with 11 additions and 21 deletions

View File

@@ -115,7 +115,7 @@ type (
ProcessingActivities *ProcessingActivityService ProcessingActivities *ProcessingActivityService
Files *FileService Files *FileService
CustomDomains *CustomDomainService CustomDomains *CustomDomainService
Slack *slack.TenantService SlackMessages *slack.SlackMessageService
} }
) )
@@ -174,7 +174,6 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService {
trustConfig: s.trustConfig, trustConfig: s.trustConfig,
agent: agents.NewAgent(nil, s.agentConfig), agent: agents.NewAgent(nil, s.agentConfig),
fileManager: s.fileManager, fileManager: s.fileManager,
Slack: s.slack.WithTenant(tenantID),
} }
tenantService.Frameworks = &FrameworkService{ tenantService.Frameworks = &FrameworkService{
@@ -256,6 +255,7 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService {
acmeService: s.acmeService, acmeService: s.acmeService,
logger: s.logger.Named("custom_domains"), logger: s.logger.Named("custom_domains"),
} }
tenantService.SlackMessages = s.slack.WithTenant(tenantID).SlackMessages
return tenantService return tenantService
} }

View File

@@ -362,7 +362,7 @@ func (s TrustCenterAccessService) Update(
} }
if shouldUpdateSlackMessage { 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) return nil, fmt.Errorf("cannot queue slack access message update: %w", err)
} }
} }

View File

@@ -159,6 +159,7 @@ func SlackHandler(slackSvc *slack.Service, slackSigningSecret string, logger *lo
var reportIDs []gid.GID var reportIDs []gid.GID
var fileIDs []gid.GID var fileIDs []gid.GID
var statusAction string var statusAction string
tenantSlackSvc := slackSvc.WithTenant(initialSlackMessage.OrganizationID.TenantID())
// accept_all, reject_all // accept_all, reject_all
if strings.HasSuffix(action.ActionID, "_all") { if strings.HasSuffix(action.ActionID, "_all") {
@@ -168,7 +169,7 @@ func SlackHandler(slackSvc *slack.Service, slackSigningSecret string, logger *lo
return 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 { if err != nil {
logger.ErrorCtx(ctx, "cannot load slack message document ids", log.Error(err)) logger.ErrorCtx(ctx, "cannot load slack message document ids", log.Error(err))
httpserver.RenderJSON(w, http.StatusInternalServerError, SlackInteractiveResponse{Success: false, Message: "internal server error"}) 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 return
} }
if err := slackSvc.WithTenant(initialSlackMessage.OrganizationID.TenantID()).GetSlackMessageService().UpdateSlackAccessMessage( if err := tenantSlackSvc.SlackMessages.UpdateSlackAccessMessage(
ctx, ctx,
initialSlackMessage.ID, initialSlackMessage.ID,
slackPayload.ResponseURL, slackPayload.ResponseURL,

View File

@@ -2,7 +2,6 @@ package slack
import ( import (
"encoding/json" "encoding/json"
"strings"
"text/template" "text/template"
) )
@@ -14,17 +13,6 @@ var (
b, _ := json.Marshal(s) b, _ := json.Marshal(s)
return string(b[1 : len(b)-1]) 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"), ParseFS(Templates, "templates/access-request.json.tmpl"),
) )

View File

@@ -27,6 +27,7 @@ type TenantService struct {
baseURL string baseURL string
encryptionKey cipher.EncryptionKey encryptionKey cipher.EncryptionKey
tokenSecret string tokenSecret string
SlackMessages *SlackMessageService
} }
func NewService( func NewService(
@@ -56,6 +57,7 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService {
encryptionKey: s.encryptionKey, encryptionKey: s.encryptionKey,
tokenSecret: s.tokenSecret, tokenSecret: s.tokenSecret,
} }
tenantService.SlackMessages = &SlackMessageService{svc: tenantService}
return tenantService return tenantService
} }

View File

@@ -77,7 +77,7 @@ type (
TrustCenterFiles *TrustCenterFileService TrustCenterFiles *TrustCenterFileService
Reports *ReportService Reports *ReportService
Organizations *OrganizationService Organizations *OrganizationService
slack *slack.TenantService SlackMessages *slack.SlackMessageService
} }
) )
@@ -126,7 +126,6 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService {
fileManager: s.fileManager, fileManager: s.fileManager,
logger: s.logger, logger: s.logger,
trustConfig: s.trustConfig, trustConfig: s.trustConfig,
slack: s.slack.WithTenant(tenantID),
} }
tenantService.TrustCenters = &TrustCenterService{svc: tenantService} tenantService.TrustCenters = &TrustCenterService{svc: tenantService}
@@ -139,6 +138,7 @@ func (s *Service) WithTenant(tenantID gid.TenantID) *TenantService {
tenantService.TrustCenterFiles = &TrustCenterFileService{svc: tenantService} tenantService.TrustCenterFiles = &TrustCenterFileService{svc: tenantService}
tenantService.Reports = &ReportService{svc: tenantService} tenantService.Reports = &ReportService{svc: tenantService}
tenantService.Organizations = &OrganizationService{svc: tenantService} tenantService.Organizations = &OrganizationService{svc: tenantService}
tenantService.SlackMessages = s.slack.WithTenant(tenantID).SlackMessages
return tenantService return tenantService
} }

View File

@@ -232,8 +232,7 @@ func (s TrustCenterAccessService) Request(
return nil, err return nil, err
} }
slackMessageService := s.svc.slack.GetSlackMessageService() if err := s.svc.SlackMessages.QueueSlackNotification(ctx, access.Email, req.TrustCenterID); err != nil {
if err := slackMessageService.QueueSlackNotification(ctx, access.Email, req.TrustCenterID); err != nil {
s.logger.ErrorCtx(ctx, "cannot queue slack notification", log.Error(err)) s.logger.ErrorCtx(ctx, "cannot queue slack notification", log.Error(err))
} }