import AuthRequestProxy = require('../../portalAuthorization/AuthRequestProxy'); import { IClusterClientResponse } from '../../typings/IClusterClient'; import topologyConstants from '../../topologyConstants' import { Requisites, RequisitesErrorDataType, FilterMismatchedRequisitesType, RequisitesDeps, IGetParams } from './Requisites' import { Representative } from './Representative'; const {requisitesVersion} = topologyConstants; export class RepresentativeRequisites { private _http: AuthRequestProxy; constructor({ clusterClientProvider, authProvider }: RequisitesDeps) { const clusterClient = clusterClientProvider.createClusterClient( topologyConstants.requisites ); this._http = new AuthRequestProxy({ clusterClient, authProvider }); } createRepresentative(userId: string, organizationId: string, requisites: Requisites = {}) { return this._http.send({ url: `${requisitesVersion}/users/${userId}/organizations/${organizationId}/representative`, method: 'PUT', data: { requisites } }); } getRepresentative(userId: string, organizationId: string) { return this._http.send({ url: `${requisitesVersion}/users/${userId}/organizations/${organizationId}/representative`, method: 'GET' }); } getOrganizationRepresentatives(organizationId: string, params: IGetParams) { return this._http.send | RequisitesErrorDataType>({ url: `${requisitesVersion}/organizations/${organizationId}/representatives`, method: 'GET', params }); } getUserRepresentatives(userId: string, params: IGetParams) { return this._http.send | RequisitesErrorDataType>({ url: `${requisitesVersion}/users/${userId}/representatives`, method: 'GET', params }); } updateRequisites(userId: string, organizationId: string, updates: Requisites, deletes: Array, filter: string ) { return this._http.send({ url: `${requisitesVersion}/users/${userId}/organizations/${organizationId}/representative`, method: 'PATCH', data: { updates, deletes }, params: { filter } }); } }