mirror of
https://github.com/icereed/paperless-gpt.git
synced 2025-03-14 05:38:01 -05:00
Fix tags API pagination
This commit is contained in:
parent
31f0e81465
commit
0dd1d0b5ad
2 changed files with 36 additions and 28 deletions
11
main.go
11
main.go
|
@ -165,14 +165,18 @@ func createLLM() (llms.Model, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAllTags(ctx context.Context, baseURL, apiToken string) (map[string]int, error) {
|
func getAllTags(ctx context.Context, baseURL, apiToken string) (map[string]int, error) {
|
||||||
|
tagIDMapping := make(map[string]int)
|
||||||
url := fmt.Sprintf("%s/api/tags/", baseURL)
|
url := fmt.Sprintf("%s/api/tags/", baseURL)
|
||||||
|
|
||||||
|
client := &http.Client{}
|
||||||
|
|
||||||
|
for url != "" {
|
||||||
req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
|
req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
req.Header.Set("Authorization", fmt.Sprintf("Token %s", apiToken))
|
req.Header.Set("Authorization", fmt.Sprintf("Token %s", apiToken))
|
||||||
|
|
||||||
client := &http.Client{}
|
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -189,6 +193,7 @@ func getAllTags(ctx context.Context, baseURL, apiToken string) (map[string]int,
|
||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
} `json:"results"`
|
} `json:"results"`
|
||||||
|
Next string `json:"next"`
|
||||||
}
|
}
|
||||||
|
|
||||||
err = json.NewDecoder(resp.Body).Decode(&tagsResponse)
|
err = json.NewDecoder(resp.Body).Decode(&tagsResponse)
|
||||||
|
@ -196,11 +201,13 @@ func getAllTags(ctx context.Context, baseURL, apiToken string) (map[string]int,
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tagIDMapping := make(map[string]int)
|
|
||||||
for _, tag := range tagsResponse.Results {
|
for _, tag := range tagsResponse.Results {
|
||||||
tagIDMapping[tag.Name] = tag.ID
|
tagIDMapping[tag.Name] = tag.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
url = tagsResponse.Next
|
||||||
|
}
|
||||||
|
|
||||||
return tagIDMapping, nil
|
return tagIDMapping, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ const SuggestionCard: React.FC<SuggestionCardProps> = ({
|
||||||
onTagAddition,
|
onTagAddition,
|
||||||
onTagDeletion,
|
onTagDeletion,
|
||||||
}) => {
|
}) => {
|
||||||
|
const sortedAvailableTags = availableTags.sort((a, b) => a.name.localeCompare(b.name));
|
||||||
const document = suggestion.original_document;
|
const document = suggestion.original_document;
|
||||||
return (
|
return (
|
||||||
<div className="bg-white dark:bg-gray-800 shadow-lg shadow-blue-500/50 rounded-md p-4 relative flex flex-col justify-between h-full">
|
<div className="bg-white dark:bg-gray-800 shadow-lg shadow-blue-500/50 rounded-md p-4 relative flex flex-col justify-between h-full">
|
||||||
|
@ -64,7 +65,7 @@ const SuggestionCard: React.FC<SuggestionCardProps> = ({
|
||||||
value: index.toString(),
|
value: index.toString(),
|
||||||
})) || []
|
})) || []
|
||||||
}
|
}
|
||||||
suggestions={availableTags.map((tag) => ({
|
suggestions={sortedAvailableTags.map((tag) => ({
|
||||||
id: tag.id,
|
id: tag.id,
|
||||||
name: tag.name,
|
name: tag.name,
|
||||||
label: tag.name,
|
label: tag.name,
|
||||||
|
|
Loading…
Reference in a new issue