diff --git a/paperless.go b/paperless.go index 18ccf52..212e73e 100644 --- a/paperless.go +++ b/paperless.go @@ -108,10 +108,10 @@ func (c *PaperlessClient) GetAllTags(ctx context.Context) (map[string]int, error func (c *PaperlessClient) GetDocumentsByTags(ctx context.Context, tags []string) ([]Document, error) { tagQueries := make([]string, len(tags)) for i, tag := range tags { - tagQueries[i] = fmt.Sprintf("tag:%s", tag) + tagQueries[i] = fmt.Sprintf("tags__name__iexact=%s", tag) } - searchQuery := strings.Join(tagQueries, " ") - path := fmt.Sprintf("api/documents/?query=%s", urlEncode(searchQuery)) + searchQuery := strings.Join(tagQueries, "&") + path := fmt.Sprintf("api/documents/?%s", urlEncode(searchQuery)) resp, err := c.Do(ctx, "GET", path, nil) if err != nil { diff --git a/paperless_test.go b/paperless_test.go index 6c70b9d..17cddde 100644 --- a/paperless_test.go +++ b/paperless_test.go @@ -203,7 +203,7 @@ func TestGetDocumentsByTags(t *testing.T) { // Set mock responses env.setMockResponse("/api/documents/", func(w http.ResponseWriter, r *http.Request) { // Verify query parameters - expectedQuery := "query=tag:tag1+tag:tag2" + expectedQuery := "tags__name__iexact=tag1&tags__name__iexact=tag2" assert.Equal(t, expectedQuery, r.URL.RawQuery) w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(documentsResponse)