Merge pull request 'add archive' (#1) from archived into main
Reviewed-on: ESLOGAD/eslogad-backend#1
This commit is contained in:
@@ -753,13 +753,13 @@ func (s *LetterOutgoingServiceImpl) ArchiveOutgoingLetter(ctx context.Context, l
|
||||
return err
|
||||
}
|
||||
|
||||
// Can only archive sent letters
|
||||
if letter.Status != entities.LetterOutgoingStatusSent {
|
||||
return gorm.ErrInvalidData
|
||||
}
|
||||
|
||||
fromStatus := string(entities.LetterOutgoingStatusSent)
|
||||
toStatus := string(entities.LetterOutgoingStatusArchived)
|
||||
return s.processor.UpdateLetterStatus(ctx, letterID, entities.LetterOutgoingStatusArchived, userID, &fromStatus, &toStatus)
|
||||
// Use the new archive method instead of changing status
|
||||
return s.processor.ArchiveOutgoingLetter(ctx, letterID, userID)
|
||||
}
|
||||
|
||||
func (s *LetterOutgoingServiceImpl) AddRecipients(ctx context.Context, letterID uuid.UUID, req *contract.AddRecipientsRequest) error {
|
||||
|
||||
@@ -32,6 +32,7 @@ type LetterProcessor interface {
|
||||
UpdateIncomingLetter(ctx context.Context, id uuid.UUID, req *contract.UpdateIncomingLetterRequest) (*contract.IncomingLetterResponse, error)
|
||||
SoftDeleteIncomingLetter(ctx context.Context, id uuid.UUID) error
|
||||
BulkArchiveIncomingLetters(ctx context.Context, letterIDs []uuid.UUID) (int64, error)
|
||||
ArchiveIncomingLetter(ctx context.Context, letterID uuid.UUID) error
|
||||
BulkArchiveIncomingLettersForUser(ctx context.Context, letterIDs []uuid.UUID, userID uuid.UUID) (int64, error)
|
||||
|
||||
// Batch loading methods
|
||||
@@ -816,12 +817,8 @@ func (s *LetterServiceImpl) GetLetterCTA(ctx context.Context, letterID uuid.UUID
|
||||
}
|
||||
|
||||
func (s *LetterServiceImpl) BulkArchiveIncomingLetters(ctx context.Context, letterIDs []uuid.UUID) (*contract.BulkArchiveLettersResponse, error) {
|
||||
// Extract user context to archive only for the current user
|
||||
appCtx := appcontext.FromGinContext(ctx)
|
||||
userID := appCtx.UserID
|
||||
|
||||
// Archive letters only for the current user
|
||||
archivedCount, err := s.processor.BulkArchiveIncomingLettersForUser(ctx, letterIDs, userID)
|
||||
// Archive the letters themselves
|
||||
archivedCount, err := s.processor.BulkArchiveIncomingLetters(ctx, letterIDs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -833,6 +830,10 @@ func (s *LetterServiceImpl) BulkArchiveIncomingLetters(ctx context.Context, lett
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *LetterServiceImpl) ArchiveIncomingLetter(ctx context.Context, letterID uuid.UUID) error {
|
||||
return s.processor.ArchiveIncomingLetter(ctx, letterID)
|
||||
}
|
||||
|
||||
func (s *LetterServiceImpl) sendDiscussionMentionNotifications(ctx context.Context, letterID uuid.UUID, senderUserID uuid.UUID, mentions map[string]interface{}, message string) {
|
||||
// Extract user_ids from mentions
|
||||
userIDs := s.extractUserIDsFromMentions(mentions)
|
||||
|
||||
Reference in New Issue
Block a user