@@ -20,14 +20,15 @@ import (
2020const maxTextareaSize = 10000
2121
2222type reminderService interface {
23- SendReminders (ctx context.Context , docID , sentBy string , specificEmails []string , docURL string ) (* models.ReminderSendResult , error )
23+ SendReminders (ctx context.Context , docID , sentBy string , specificEmails []string , docURL string , locale string ) (* models.ReminderSendResult , error )
2424 GetReminderStats (ctx context.Context , docID string ) (* models.ReminderStats , error )
2525 GetReminderHistory (ctx context.Context , docID string ) ([]* models.ReminderLog , error )
2626}
2727
2828type ExpectedSignersHandlers struct {
2929 expectedRepo * database.ExpectedSignerRepository
3030 adminRepo * database.AdminRepository
31+ documentRepo * database.DocumentRepository
3132 userService userService
3233 reminderService reminderService
3334 templates * template.Template
@@ -37,6 +38,7 @@ type ExpectedSignersHandlers struct {
3738func NewExpectedSignersHandlers (
3839 expectedRepo * database.ExpectedSignerRepository ,
3940 adminRepo * database.AdminRepository ,
41+ documentRepo * database.DocumentRepository ,
4042 userService userService ,
4143 reminderService reminderService ,
4244 templates * template.Template ,
@@ -45,6 +47,7 @@ func NewExpectedSignersHandlers(
4547 return & ExpectedSignersHandlers {
4648 expectedRepo : expectedRepo ,
4749 adminRepo : adminRepo ,
50+ documentRepo : documentRepo ,
4851 userService : userService ,
4952 reminderService : reminderService ,
5053 templates : templates ,
@@ -121,6 +124,16 @@ func (h *ExpectedSignersHandlers) HandleDocumentDetailsWithExpected(w http.Respo
121124 }
122125 }
123126
127+ // Get document metadata
128+ var documentMetadata * models.Document
129+ if h .documentRepo != nil {
130+ documentMetadata , err = h .documentRepo .GetByDocID (ctx , docID )
131+ if err != nil {
132+ logger .Logger .Error ("Failed to retrieve document metadata" , "error" , err .Error ())
133+ documentMetadata = nil
134+ }
135+ }
136+
124137 // Find unexpected signatures (signed but not in expected list)
125138 unexpectedSignatures := []* models.Signature {}
126139 if len (expectedSigners ) > 0 {
@@ -141,6 +154,7 @@ func (h *ExpectedSignersHandlers) HandleDocumentDetailsWithExpected(w http.Respo
141154 User * models.User
142155 BaseURL string
143156 DocID * string
157+ Document * models.Document
144158 Signatures []* models.Signature
145159 ExpectedSigners []* models.ExpectedSignerWithStatus
146160 Stats * models.DocCompletionStats
@@ -156,6 +170,7 @@ func (h *ExpectedSignersHandlers) HandleDocumentDetailsWithExpected(w http.Respo
156170 User : user ,
157171 BaseURL : h .baseURL ,
158172 DocID : & docID ,
173+ Document : documentMetadata ,
159174 Signatures : signatures ,
160175 ExpectedSigners : expectedSigners ,
161176 Stats : stats ,
@@ -395,7 +410,6 @@ func (h *ExpectedSignersHandlers) HandleSendReminders(w http.ResponseWriter, r *
395410 }
396411
397412 sendMode := r .FormValue ("send_mode" )
398- docURL := r .FormValue ("doc_url" )
399413 var selectedEmails []string
400414
401415 if sendMode == "selected" {
@@ -406,7 +420,22 @@ func (h *ExpectedSignersHandlers) HandleSendReminders(w http.ResponseWriter, r *
406420 }
407421 }
408422
409- result , err := h .reminderService .SendReminders (ctx , docID , user .Email , selectedEmails , docURL )
423+ // Get document URL from metadata
424+ var docURL string
425+ if h .documentRepo != nil {
426+ doc , err := h .documentRepo .GetByDocID (ctx , docID )
427+ if err != nil {
428+ logger .Logger .Error ("Failed to get document metadata for reminder" , "error" , err .Error (), "doc_id" , docID )
429+ }
430+ if doc != nil && doc .URL != "" {
431+ docURL = doc .URL
432+ }
433+ }
434+
435+ // Get language from context
436+ locale := i18n .GetLang (ctx )
437+
438+ result , err := h .reminderService .SendReminders (ctx , docID , user .Email , selectedEmails , docURL , locale )
410439 if err != nil {
411440 logger .Logger .Error ("Failed to send reminders" , "error" , err .Error ())
412441 http .Error (w , "Failed to send reminders" , http .StatusInternalServerError )
0 commit comments