update api incoming letter

This commit is contained in:
efrilm
2025-10-17 00:04:21 +07:00
parent 58128495a6
commit 92440953cb
5 changed files with 128 additions and 59 deletions
+14 -3
View File
@@ -101,6 +101,7 @@ func (p *LetterProcessorImpl) GetIncomingLetterByID(ctx context.Context, id uuid
return nil, err
}
atts, _ := p.attachRepo.ListByLetter(ctx, id)
dispo, _ := p.dispositionRepo.ListByLetter(ctx, id)
var pr *entities.Priority
if entity.PriorityID != nil && p.priorityRepo != nil {
if got, err := p.priorityRepo.Get(ctx, *entity.PriorityID); err == nil {
@@ -119,10 +120,11 @@ func (p *LetterProcessorImpl) GetIncomingLetterByID(ctx context.Context, id uuid
if p.recipientRepo != nil {
if recipient, err := p.recipientRepo.GetByLetterAndUser(ctx, id, userID); err == nil {
isRead = recipient.ReadAt != nil
fmt.Printf("Recipient: %+v\n", recipient)
}
}
resp := transformer.LetterEntityToContract(entity, atts, pr, inst)
resp := transformer.LetterEntityToContract(entity, atts, dispo, pr, inst)
resp.IsRead = isRead
// Include created_by if the current user is the creator
@@ -209,6 +211,13 @@ func (p *LetterProcessorImpl) GetBatchAttachments(ctx context.Context, letterIDs
return p.attachRepo.ListByLetterIDs(ctx, letterIDs)
}
func (p *LetterProcessorImpl) GetBatchDispositions(ctx context.Context, letterIDs []uuid.UUID) (map[uuid.UUID][]entities.LetterIncomingDisposition, error) {
if p.dispositionRepo == nil || len(letterIDs) == 0 {
return make(map[uuid.UUID][]entities.LetterIncomingDisposition), nil
}
return p.dispositionRepo.ListByLetterIDs(ctx, letterIDs)
}
func (p *LetterProcessorImpl) GetBatchPriorities(ctx context.Context, priorityIDs []uuid.UUID) (map[uuid.UUID]*entities.Priority, error) {
if p.priorityRepo == nil || len(priorityIDs) == 0 {
return make(map[uuid.UUID]*entities.Priority), nil
@@ -290,6 +299,7 @@ func (p *LetterProcessorImpl) UpdateIncomingLetter(ctx context.Context, id uuid.
}
}
atts, _ := p.attachRepo.ListByLetter(txCtx, id)
dispo, _ := p.dispositionRepo.ListByLetter(txCtx, id)
var pr *entities.Priority
if entity.PriorityID != nil && p.priorityRepo != nil {
if got, err := p.priorityRepo.Get(txCtx, *entity.PriorityID); err == nil {
@@ -302,7 +312,7 @@ func (p *LetterProcessorImpl) UpdateIncomingLetter(ctx context.Context, id uuid.
inst = got
}
}
out = transformer.LetterEntityToContract(entity, atts, pr, inst)
out = transformer.LetterEntityToContract(entity, atts, dispo, pr, inst)
return nil
})
if err != nil {
@@ -601,6 +611,7 @@ func (p *LetterProcessorImpl) SearchIncomingLetters(ctx context.Context, filters
func (p *LetterProcessorImpl) buildLetterResponse(ctx context.Context, entity *entities.LetterIncoming) (*contract.IncomingLetterResponse, error) {
savedAttachments, _ := p.attachRepo.ListByLetter(ctx, entity.ID)
dispo, _ := p.dispositionRepo.ListByLetter(ctx, entity.ID)
var pr *entities.Priority
if entity.PriorityID != nil && p.priorityRepo != nil {
@@ -616,7 +627,7 @@ func (p *LetterProcessorImpl) buildLetterResponse(ctx context.Context, entity *e
}
}
return transformer.LetterEntityToContract(entity, savedAttachments, pr, inst), nil
return transformer.LetterEntityToContract(entity, savedAttachments, dispo, pr, inst), nil
}
func (p *LetterProcessorImpl) BulkArchiveIncomingLetters(ctx context.Context, letterIDs []uuid.UUID) (int64, error) {