feat(#274): PaperlessClient — HTTP-Wrapper mit Tests #310
No reviewers
Labels
No labels
app/archiv
app/einkaufslisten
app/imap-client
app/wissensbasis
arch-answered
arch-question
area/api
area/auth
area/infra
area/mobile
area/shared
area/ui
area/web
portfolio-status
prio/high
prio/low
prio/medium
roadmap/public
size/l
size/m
size/s
size/xl
size/xs
status/blocked
status/needs-info
type/bug
type/chore
type/docs
type/feature
type/idea
type/refactor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
admin-mrrm/mrrmlabapp!310
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/274-paperless-client"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Neuer NestJS-Service
PaperlessClientunterapps/api/src/modules/documents/als getypter HTTP-Wrapper fuer Paperless-ngx. Foundation fuer #275 (documents-Modul) und #278 (Mail-Archiv-Service).Methoden:
listDocuments(query)-> GET/api/documents/mit Param-MappinggetDocument(id)-> GET/api/documents/:id/getPreviewStream(id)-> GET/api/documents/:id/preview/(PDF-Stream)getThumbnail(id)-> GET/api/documents/:id/thumb/(Image-Stream)uploadDocument(file, meta)-> POST/api/documents/post_document/(multipart)listTags(),listCorrespondents(),listDocumentTypes()Auth:
Authorization: Token <PAPERLESS_TOKEN>(Django REST Framework Standard).Fehlerbehandlung:
ServiceUnavailableExceptionwennPAPERLESS_BASE_URLoderPAPERLESS_TOKENfehltBadGatewayExceptionbei Non-OK-AntwortPattern:
globalThis.fetch+ConfigService<AppEnv>, analog zuAfterShipProvider/Track17Providerim tracking-Modul.Tests (TDD, 17 neue Tests)
listDocumentsParam-Mapping (tags, correspondent, page, ordering) + empty-skipping + ErrorgetDocument,getPreviewStream(inkl. body-null),getThumbnailuploadDocumentmultipart mit Buffer/Tags/Meta + Error-CaseTest plan
pnpm --filter @mrrmlab/api typecheckcleanpnpm --filter @mrrmlab/api test293/293 gruen (+17 PaperlessClient)Anmerkung
Issue spricht von
nock/msw-nodefuer Tests. Ich habe stattdessenvi.stubGlobal('fetch', ...)verwendet, weil das im Projekt etabliertes Pattern ist (sieheaftership.provider.spec.ts,track17.provider.spec.ts) — gleiche Aussagekraft, kein zusaetzliches devDep.Closes #274