blob: 53cfd10c6b0e7bd2b5886f2126f8c63483414661 [file] [log] [blame]
import { ModifyContacts } from '../../shared/models/modifyContacts.model';
import { Action } from '@ngrx/store';
import { Injectable } from '@angular/core';
import { HttpService, Query, GET, Path, Adapter, PUT, Body, DefaultHeaders } from '@shared/asyncServices/http';
import { Observable } from 'rxjs';
import { ContactsService } from '@pages/contacts/contacts.service';
import { Contact } from '@shared/models';
import { PageRequestInterface } from '@shared/models/page/page-request.interface';
import { PageModel } from '@app/shared/models/page/page.model';
@Injectable()
@DefaultHeaders({
// prettier-ignore
'Accept': 'application/json',
'Content-Type': 'application/json',
})
export class ContactsApiClient extends HttpService {
public getContacts(request: PageRequestInterface = null): Observable<PageModel<Contact>> {
const modifyContacts: ModifyContacts = request.queryParameter || {};
return this._getContactsPage(modifyContacts.searchText, modifyContacts.personTypeId, modifyContacts.sort, request.pageNumber ? (request.pageNumber - 1) : 0, request.pageSize);
}
/**
* Retrieves all paged contacts
*/
@GET('/contacts')
@Adapter(ContactsService.gridPageAdapter)
private _getContactsPage(@Query('searchText') searchtext: string, @Query('personTypeId') personTypeId: string, @Query('sort') sort: string, @Query('page') pageNumber: number, @Query('size') pageSize: number): Observable<any> {
return null;
}
/**
* Retrieves product details by a given id
*
* @param id
*/
@GET('/contacts/{id}')
@Adapter(ContactsService.contactDetailsAdapter)
public getContactDetails(@Path('id') id: number): Observable<any> {
return null;
}
@PUT('/contacts/{id}')
@Adapter(ContactsService.contactDetailsAdapter)
public putContactDetails(@Path('id') id: number, @Body() editedContact: Contact): Observable<Contact> {
return null;
}
}