Coverage for src/paperap/resources/document_suggestions.py: 72%
18 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-22 16:02 -0400
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-22 16:02 -0400
1"""
6----------------------------------------------------------------------------
8METADATA:
10File: document_suggestions.py
11 Project: paperap
12Created: 2025-03-18
13 Version: 0.0.9
14Author: Jess Mann
15Email: jess@jmann.me
16 Copyright (c) 2025 Jess Mann
18----------------------------------------------------------------------------
20LAST MODIFIED:
222025-03-18 By Jess Mann
24"""
26from __future__ import annotations
28from typing import Any
30from typing_extensions import TypeVar
32from paperap.const import URLS
33from paperap.exceptions import APIError, BadResponseError, ResourceNotFoundError
34from paperap.models.document.suggestions import DocumentSuggestions, DocumentSuggestionsQuerySet
35from paperap.resources.base import BaseResource, StandardResource
38class DocumentSuggestionsResource(StandardResource[DocumentSuggestions, DocumentSuggestionsQuerySet]):
39 model_class = DocumentSuggestions
40 queryset_class = DocumentSuggestionsQuerySet
41 name: str = "document_suggestions"
42 endpoints = {
43 # Override the detail endpoint to point to suggestions
44 "detail": URLS.suggestions,
45 }
47 def get_suggestions(self, document_id: int) -> DocumentSuggestions:
48 url = self.get_endpoint("detail", pk=document_id)
49 response = self.client.request("GET", url)
50 if not response:
51 raise ResourceNotFoundError(f"Suggestions for document {document_id} not found", self.name)
52 return self.parse_to_model(response)