mirror of
https://github.com/icereed/paperless-gpt.git
synced 2025-03-12 04:48:02 -05:00
refactor(api): simplify response structures for GetDocuments and GetD… (#199)
* refactor(api): simplify response structures for GetDocuments and GetDocument endpoints Closes #198 --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
parent
712ed53c1c
commit
abeab949a1
2 changed files with 55 additions and 76 deletions
|
@ -9,7 +9,6 @@ import (
|
|||
"net/http/httptest"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
@ -180,31 +179,7 @@ func TestGetDocumentsByTags(t *testing.T) {
|
|||
|
||||
// Mock data for documents
|
||||
documentsResponse := GetDocumentsApiResponse{
|
||||
Results: []struct {
|
||||
ID int `json:"id"`
|
||||
Correspondent int `json:"correspondent"`
|
||||
DocumentType interface{} `json:"document_type"`
|
||||
StoragePath interface{} `json:"storage_path"`
|
||||
Title string `json:"title"`
|
||||
Content string `json:"content"`
|
||||
Tags []int `json:"tags"`
|
||||
Created time.Time `json:"created"`
|
||||
CreatedDate string `json:"created_date"`
|
||||
Modified time.Time `json:"modified"`
|
||||
Added time.Time `json:"added"`
|
||||
ArchiveSerialNumber interface{} `json:"archive_serial_number"`
|
||||
OriginalFileName string `json:"original_file_name"`
|
||||
ArchivedFileName string `json:"archived_file_name"`
|
||||
Owner int `json:"owner"`
|
||||
UserCanChange bool `json:"user_can_change"`
|
||||
Notes []interface{} `json:"notes"`
|
||||
SearchHit struct {
|
||||
Score float64 `json:"score"`
|
||||
Highlights string `json:"highlights"`
|
||||
NoteHighlights string `json:"note_highlights"`
|
||||
Rank int `json:"rank"`
|
||||
} `json:"__search_hit__"`
|
||||
}{
|
||||
Results: []GetDocumentApiResponseResult{
|
||||
{
|
||||
ID: 1,
|
||||
Title: "Document 1",
|
||||
|
|
104
types.go
104
types.go
|
@ -1,59 +1,63 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// GetDocumentsApiResponse is the response payload for /documents endpoint.
|
||||
// But we are only interested in a subset of the fields.
|
||||
type GetDocumentsApiResponse struct {
|
||||
Count int `json:"count"`
|
||||
Next interface{} `json:"next"`
|
||||
Previous interface{} `json:"previous"`
|
||||
All []int `json:"all"`
|
||||
Results []struct {
|
||||
ID int `json:"id"`
|
||||
Correspondent int `json:"correspondent"`
|
||||
DocumentType interface{} `json:"document_type"`
|
||||
StoragePath interface{} `json:"storage_path"`
|
||||
Title string `json:"title"`
|
||||
Content string `json:"content"`
|
||||
Tags []int `json:"tags"`
|
||||
Created time.Time `json:"created"`
|
||||
CreatedDate string `json:"created_date"`
|
||||
Modified time.Time `json:"modified"`
|
||||
Added time.Time `json:"added"`
|
||||
ArchiveSerialNumber interface{} `json:"archive_serial_number"`
|
||||
OriginalFileName string `json:"original_file_name"`
|
||||
ArchivedFileName string `json:"archived_file_name"`
|
||||
Owner int `json:"owner"`
|
||||
UserCanChange bool `json:"user_can_change"`
|
||||
Notes []interface{} `json:"notes"`
|
||||
SearchHit struct {
|
||||
Score float64 `json:"score"`
|
||||
Highlights string `json:"highlights"`
|
||||
NoteHighlights string `json:"note_highlights"`
|
||||
Rank int `json:"rank"`
|
||||
} `json:"__search_hit__"`
|
||||
} `json:"results"`
|
||||
Count int `json:"count"`
|
||||
// Next interface{} `json:"next"`
|
||||
// Previous interface{} `json:"previous"`
|
||||
All []int `json:"all"`
|
||||
Results []GetDocumentApiResponseResult `json:"results"`
|
||||
}
|
||||
|
||||
// GetDocumentApiResponseResult is a part of the response payload for /documents endpoint.
|
||||
// But we are only interested in a subset of the fields.
|
||||
type GetDocumentApiResponseResult struct {
|
||||
ID int `json:"id"`
|
||||
Correspondent int `json:"correspondent"`
|
||||
// DocumentType interface{} `json:"document_type"`
|
||||
// StoragePath interface{} `json:"storage_path"`
|
||||
Title string `json:"title"`
|
||||
Content string `json:"content"`
|
||||
Tags []int `json:"tags"`
|
||||
// Created time.Time `json:"created"`
|
||||
// CreatedDate string `json:"created_date"`
|
||||
// Modified time.Time `json:"modified"`
|
||||
// Added time.Time `json:"added"`
|
||||
// ArchiveSerialNumber interface{} `json:"archive_serial_number"`
|
||||
// OriginalFileName string `json:"original_file_name"`
|
||||
// ArchivedFileName string `json:"archived_file_name"`
|
||||
// Owner int `json:"owner"`
|
||||
// UserCanChange bool `json:"user_can_change"`
|
||||
Notes []interface{} `json:"notes"`
|
||||
// SearchHit struct {
|
||||
// Score float64 `json:"score"`
|
||||
// Highlights string `json:"highlights"`
|
||||
// NoteHighlights string `json:"note_highlights"`
|
||||
// Rank int `json:"rank"`
|
||||
// } `json:"__search_hit__"`
|
||||
}
|
||||
|
||||
// GetDocumentApiResponse is the response payload for /documents/{id} endpoint.
|
||||
// But we are only interested in a subset of the fields.
|
||||
type GetDocumentApiResponse struct {
|
||||
ID int `json:"id"`
|
||||
Correspondent int `json:"correspondent"`
|
||||
DocumentType interface{} `json:"document_type"`
|
||||
StoragePath interface{} `json:"storage_path"`
|
||||
Title string `json:"title"`
|
||||
Content string `json:"content"`
|
||||
Tags []int `json:"tags"`
|
||||
Created time.Time `json:"created"`
|
||||
CreatedDate string `json:"created_date"`
|
||||
Modified time.Time `json:"modified"`
|
||||
Added time.Time `json:"added"`
|
||||
ArchiveSerialNumber interface{} `json:"archive_serial_number"`
|
||||
OriginalFileName string `json:"original_file_name"`
|
||||
ArchivedFileName string `json:"archived_file_name"`
|
||||
Owner int `json:"owner"`
|
||||
UserCanChange bool `json:"user_can_change"`
|
||||
Notes []interface{} `json:"notes"`
|
||||
ID int `json:"id"`
|
||||
Correspondent int `json:"correspondent"`
|
||||
// DocumentType interface{} `json:"document_type"`
|
||||
// StoragePath interface{} `json:"storage_path"`
|
||||
Title string `json:"title"`
|
||||
Content string `json:"content"`
|
||||
Tags []int `json:"tags"`
|
||||
// Created time.Time `json:"created"`
|
||||
// CreatedDate string `json:"created_date"`
|
||||
// Modified time.Time `json:"modified"`
|
||||
// Added time.Time `json:"added"`
|
||||
// ArchiveSerialNumber interface{} `json:"archive_serial_number"`
|
||||
// OriginalFileName string `json:"original_file_name"`
|
||||
// ArchivedFileName string `json:"archived_file_name"`
|
||||
// Owner int `json:"owner"`
|
||||
// UserCanChange bool `json:"user_can_change"`
|
||||
Notes []interface{} `json:"notes"`
|
||||
}
|
||||
|
||||
// Document is a stripped down version of the document object from paperless-ngx.
|
||||
|
|
Loading…
Reference in a new issue