Enhancement: document link field fixes (#5020)

* Implement more efficient getFew for document retrieval

* Filter out parent document ID & already-selected documents

* Clip very long document titles
This commit is contained in:
shamoon
2023-12-17 16:39:45 -08:00
committed by GitHub
parent d22b27afe7
commit 341815cc03
6 changed files with 99 additions and 18 deletions

View File

@@ -96,6 +96,21 @@ export const commonAbstractPaperlessServiceTests = (endpoint, ServiceClass) => {
expect(req.request.method).toEqual('PATCH')
req.flush([])
})
test('should call appropriate api endpoint for get a few objects', () => {
subscription = service.getFew([1, 2, 3]).subscribe()
const req = httpTestingController.expectOne(
`${environment.apiBaseUrl}${endpoint}/?id__in=1,2,3`
)
expect(req.request.method).toEqual('GET')
req.flush([])
subscription = service.getFew([4, 5, 6], { foo: 'bar' }).subscribe()
const req2 = httpTestingController.expectOne(
`${environment.apiBaseUrl}${endpoint}/?id__in=4,5,6&foo=bar`
)
expect(req2.request.method).toEqual('GET')
req2.flush([])
})
})
beforeEach(() => {

View File

@@ -91,6 +91,19 @@ export abstract class AbstractPaperlessService<T extends ObjectWithId> {
)
}
getFew(ids: number[], extraParams?): Observable<Results<T>> {
let httpParams = new HttpParams()
httpParams = httpParams.set('id__in', ids.join(','))
for (let extraParamKey in extraParams) {
if (extraParams[extraParamKey] != null) {
httpParams = httpParams.set(extraParamKey, extraParams[extraParamKey])
}
}
return this.http.get<Results<T>>(this.getResourceUrl(), {
params: httpParams,
})
}
clearCache() {
this._listAll = null
}