feat(PROJ-44): ocr_status/ocr_chars in MailDetail + v1 API
GET /api/mails/{id} liefert jetzt ocr_status + ocr_chars fuer das GUI-
Badge und den konditionalen Download-Button. Die externe v1-API
(/api/v1/mails/{id}) bekommt zusaetzlich ocr_status, damit CRM-
Integrationen entscheiden koennen, ob ein OCR-Text-Pull lohnt.
This commit is contained in:
@@ -311,6 +311,15 @@ func (s *Server) handleGetMail(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
|
||||
// PROJ-44: OCR status + extracted character count for the GUI badge and
|
||||
// the conditional "OCR-Text herunterladen" button. Errors are swallowed
|
||||
// silently so a missing ocr_chars column on an old DB does not break the
|
||||
// detail view; defaults are returned by GetOCRMeta in that case.
|
||||
ocrStatus, ocrChars, _ := s.store.GetOCRMeta(r.Context(), id)
|
||||
if ocrStatus == "" {
|
||||
ocrStatus = "pending"
|
||||
}
|
||||
|
||||
writeJSON(w, http.StatusOK, map[string]interface{}{
|
||||
"id": id,
|
||||
"from": pm.From,
|
||||
@@ -326,6 +335,8 @@ func (s *Server) handleGetMail(w http.ResponseWriter, r *http.Request) {
|
||||
"verify_ok": verifyOK,
|
||||
"verified_at": verifiedAt,
|
||||
"thread_id": threadID,
|
||||
"ocr_status": ocrStatus,
|
||||
"ocr_chars": ocrChars,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -244,6 +244,13 @@ func (s *Server) handleV1GetMail(w http.ResponseWriter, r *http.Request) {
|
||||
dateStr = pm.Date.UTC().Format(time.RFC3339)
|
||||
}
|
||||
|
||||
// PROJ-44: expose ocr_status to external API consumers as well so CRM
|
||||
// integrations can decide whether to ask for ocr-text downloads.
|
||||
ocrStatus, _, _ := s.store.GetOCRMeta(r.Context(), id)
|
||||
if ocrStatus == "" {
|
||||
ocrStatus = "pending"
|
||||
}
|
||||
|
||||
writeJSON(w, http.StatusOK, map[string]interface{}{
|
||||
"id": id,
|
||||
"from": pm.From,
|
||||
@@ -254,6 +261,7 @@ func (s *Server) handleV1GetMail(w http.ResponseWriter, r *http.Request) {
|
||||
"size": len(raw),
|
||||
"body_plain": pm.TextBody,
|
||||
"attachments": attachments,
|
||||
"ocr_status": ocrStatus,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user