UNPKG

@lagoshny/ngx-hateoas-client

Version:

This client used to develop `Angular 12+` applications working with RESTfulll server API with HAL/JSON response type (supports server implementation by Spring HATEOAS)

76 lines (75 loc) 3.22 kB
import { Observable } from 'rxjs'; import { GetOption, HttpMethod, PagedGetOption, RequestBody, RequestOption } from '../../model/declarations'; import { Resource } from '../../model/resource/resource'; import { PagedResourceCollection } from '../../model/resource/paged-resource-collection'; import { ResourceCollection } from '../../model/resource/resource-collection'; import { HttpResponse } from '@angular/common/http'; /** * Main resource operation class. * Extend this class to create resource service. */ export declare class HateoasResourceOperation<T extends Resource> { private readonly resourceType; private hateoasResourceService; constructor(resourceType: new () => T); /** * {@link HateoasResourceService#getResource}. */ getResource(id: number | string, options?: GetOption): Observable<T>; /** * {@link HateoasResourceService#getCollection}. */ getCollection(options?: GetOption): Observable<ResourceCollection<T>>; /** * {@link HateoasResourceService#getPage}. */ getPage(options?: PagedGetOption): Observable<PagedResourceCollection<T>>; /** * {@link HateoasResourceService#createResource}. */ createResource(requestBody: RequestBody<T>, options?: RequestOption): Observable<any>; /** * {@link HateoasResourceService#updateResource}. */ updateResource(entity: T, requestBody?: RequestBody<any>, options?: RequestOption): Observable<T | any>; /** * {@link HateoasResourceService#updateResourceById}. */ updateResourceById(id: number | string, requestBody: RequestBody<any>, options?: RequestOption): Observable<T | any>; /** * {@link HateoasResourceService#patchResource}. */ patchResource(entity: T, requestBody?: RequestBody<any>, options?: RequestOption): Observable<T | any>; /** * {@link HateoasResourceService#patchResourceById}. */ patchResourceById(id: number | string, requestBody: RequestBody<any>, options?: RequestOption): Observable<T | any>; /** * {@link HateoasResourceService#deleteResource}. */ deleteResource(entity: T, options?: RequestOption): Observable<HttpResponse<any> | any>; /** * {@link HateoasResourceService#deleteResourceById}. */ deleteResourceById(id: number | string, options?: RequestOption): Observable<HttpResponse<any> | any>; /** * {@see ResourceCollectionHttpService#search} */ searchCollection(query: string, options?: GetOption): Observable<ResourceCollection<T>>; /** * {@see PagedResourceCollection#search} */ searchPage(query: string, options?: PagedGetOption): Observable<PagedResourceCollection<T>>; /** * {@see ResourceHttpService#search} */ searchResource(query: string, options?: GetOption): Observable<T>; /** * {@see ResourceHttpService#customQuery} */ customQuery<R>(method: HttpMethod, query: string, requestBody?: RequestBody<any>, options?: PagedGetOption): Observable<R>; /** * {@see ResourceHttpService#customSearchQuery} */ customSearchQuery<R>(method: HttpMethod, searchQuery: string, requestBody?: RequestBody<any>, options?: PagedGetOption): Observable<R>; }