@@ -87,6 +87,7 @@ func (c *Client) CreateMessage(ctx context.Context, accessToken string, channelI
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot send request: %w", err)
|
||||
}
|
||||
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
|
||||
responseBody, err := io.ReadAll(resp.Body)
|
||||
@@ -138,6 +139,7 @@ func (c *Client) UpdateInteractiveMessage(ctx context.Context, responseURL strin
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot send interactive message update request: %w", err)
|
||||
}
|
||||
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
|
||||
responseBody, err := io.ReadAll(resp.Body)
|
||||
@@ -160,6 +162,7 @@ func (c *Client) UpdateInteractiveMessage(ctx context.Context, responseURL strin
|
||||
if slackResponse.OK {
|
||||
return nil
|
||||
}
|
||||
|
||||
if slackResponse.Error != "" {
|
||||
return fmt.Errorf("slack error: %s", slackResponse.Error)
|
||||
}
|
||||
@@ -193,6 +196,7 @@ func (c *Client) UpdateMessage(ctx context.Context, accessToken string, channelI
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot send request: %w", err)
|
||||
}
|
||||
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
|
||||
responseBody, err := io.ReadAll(resp.Body)
|
||||
@@ -238,6 +242,7 @@ func (c *Client) JoinChannel(ctx context.Context, accessToken string, channelID
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot send request: %w", err)
|
||||
}
|
||||
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
|
||||
responseBody, err := io.ReadAll(resp.Body)
|
||||
|
||||
@@ -87,6 +87,7 @@ func (s *Sender) batchSendMessages(ctx context.Context) error {
|
||||
}
|
||||
|
||||
s.logger.ErrorCtx(ctx, "panic while sending slack message", log.String("error", panicErr), log.String("message_id", message.ID.String()))
|
||||
|
||||
err = fmt.Errorf("panic recovered: %v", r)
|
||||
}
|
||||
}()
|
||||
@@ -121,6 +122,7 @@ func (s *Sender) batchSendMessages(ctx context.Context) error {
|
||||
}
|
||||
|
||||
s.logger.ErrorCtx(ctx, "error sending slack message", log.Error(sendErr), log.String("message_id", message.ID.String()))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -160,6 +162,7 @@ func (s *Sender) sendMessage(ctx context.Context, tx pg.Querier, message *coreda
|
||||
if errors.Is(err, coredata.ErrResourceNotFound) {
|
||||
return nil, nil, fmt.Errorf("cannot send slack message: no connector configured for organization")
|
||||
}
|
||||
|
||||
return nil, nil, fmt.Errorf("cannot send slack message: %w", err)
|
||||
}
|
||||
|
||||
@@ -216,6 +219,7 @@ func (s *Sender) batchUpdateMessages(ctx context.Context) error {
|
||||
}
|
||||
|
||||
s.logger.ErrorCtx(ctx, "panic while updating slack message", log.String("error", panicErr), log.String("message_id", updateMessage.ID.String()))
|
||||
|
||||
err = fmt.Errorf("panic recovered: %v", r)
|
||||
}
|
||||
}()
|
||||
@@ -241,6 +245,7 @@ func (s *Sender) batchUpdateMessages(ctx context.Context) error {
|
||||
}
|
||||
|
||||
s.logger.ErrorCtx(ctx, "error updating slack message", log.Error(updateErr), log.String("message_id", updateMessage.ID.String()))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -284,6 +289,7 @@ func (s *Sender) updateMessage(ctx context.Context, tx pg.Querier, updateMessage
|
||||
if errors.Is(err, coredata.ErrResourceNotFound) {
|
||||
return fmt.Errorf("cannot update slack message: no connector configured for organization")
|
||||
}
|
||||
|
||||
return fmt.Errorf("cannot update slack message: %w", err)
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,6 @@ func (s *Service) GetInitialSlackMessageByChannelAndTS(
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -52,5 +52,6 @@ func abs(n int64) int64 {
|
||||
if n < 0 {
|
||||
return -n
|
||||
}
|
||||
|
||||
return n
|
||||
}
|
||||
|
||||
@@ -90,7 +90,6 @@ func (s *SlackMessageService) GetSlackMessageDocumentIDs(
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
@@ -113,6 +112,7 @@ func (s *SlackMessageService) UpdateSlackAccessMessage(
|
||||
if err := slackMessage.LoadById(ctx, tx, s.svc.scope, slackMessageID); err != nil {
|
||||
return fmt.Errorf("cannot load slack message: %w", err)
|
||||
}
|
||||
|
||||
var trustCenter coredata.TrustCenter
|
||||
if err := trustCenter.LoadByOrganizationID(ctx, tx, s.svc.scope, slackMessage.OrganizationID); err != nil {
|
||||
return fmt.Errorf("cannot load trust center: %w", err)
|
||||
@@ -218,6 +218,7 @@ func (s *SlackMessageService) QueueSlackNotification(
|
||||
}
|
||||
|
||||
hasSlackConnector := false
|
||||
|
||||
for _, connector := range connectors {
|
||||
if connector.Provider == coredata.ConnectorProviderSlack {
|
||||
hasSlackConnector = true
|
||||
@@ -270,6 +271,7 @@ func (s *SlackMessageService) QueueSlackNotification(
|
||||
sevenDaysAgo := now.Add(-slackMessageDeduplicationWindow)
|
||||
|
||||
var existingMessage coredata.SlackMessage
|
||||
|
||||
err = existingMessage.LoadLatestByRequesterEmailAndType(
|
||||
ctx,
|
||||
tx,
|
||||
@@ -290,6 +292,7 @@ func (s *SlackMessageService) QueueSlackNotification(
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
var notFoundErr coredata.ErrSlackMessageNotFound
|
||||
if !errors.Is(err, notFoundErr) {
|
||||
return fmt.Errorf("cannot load existing slack message: %w", err)
|
||||
@@ -329,6 +332,7 @@ func (s *SlackMessageService) loadDocumentsReportsAndFilesFromAccesses(
|
||||
if err := doc.LoadByID(ctx, conn, s.svc.scope, *access.DocumentID); err != nil {
|
||||
return nil, nil, nil, fmt.Errorf("cannot load document: %w", err)
|
||||
}
|
||||
|
||||
documents = append(documents, SlackMessageDocument{
|
||||
ID: access.DocumentID.String(),
|
||||
Title: doc.Title,
|
||||
@@ -356,6 +360,7 @@ func (s *SlackMessageService) loadDocumentsReportsAndFilesFromAccesses(
|
||||
if audit.Name != nil && *audit.Name != "" {
|
||||
label = label + " - " + *audit.Name
|
||||
}
|
||||
|
||||
reports = append(reports, SlackMessageReport{
|
||||
ID: access.ReportID.String(),
|
||||
Title: label,
|
||||
@@ -369,6 +374,7 @@ func (s *SlackMessageService) loadDocumentsReportsAndFilesFromAccesses(
|
||||
if err := file.LoadByID(ctx, conn, s.svc.scope, *access.TrustCenterFileID); err != nil {
|
||||
return nil, nil, nil, fmt.Errorf("cannot load trust center file: %w", err)
|
||||
}
|
||||
|
||||
files = append(files, SlackMessageFile{
|
||||
ID: access.TrustCenterFileID.String(),
|
||||
Name: file.Name,
|
||||
@@ -441,14 +447,17 @@ func extractIDsFromMetadata(metadata map[string]any, fieldName string) []gid.GID
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
idStr, ok := item["ID"].(string)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
id, err := gid.ParseGID(idStr)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
ids = append(ids, id)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user