import AuthRequestProxy = require("../../portalAuthorization/AuthRequestProxy"); import { Organization } from "./Organization"; import { SearchResponse } from "./SearchResponse"; import { IClusterClientResponse } from "../../typings/IClusterClient"; import topologyConstants from '../../topologyConstants' import { Requisites, RequisitesDeps, RequisitesErrorDataType } from './Requisites' const {requisitesVersion} = topologyConstants; export class OrganizationRequisites { private _http: AuthRequestProxy; constructor({ clusterClientProvider, authProvider }: RequisitesDeps) { const clusterClient = clusterClientProvider.createClusterClient( topologyConstants.requisites ); this._http = new AuthRequestProxy({ clusterClient, authProvider }); } getOrganization(organizationId: string) { return this._http.send({ url: `${requisitesVersion}/organizations/${organizationId}`, method: "GET" }); } batchGet( organizationIds: Array = [], ignoreDeleted: boolean = true, ignoreAlias: boolean = true ) { const data = { ids: organizationIds }; return this._http.send({ url: `${requisitesVersion}/organizations/batch`, method: "POST", data, params: { ignoredeleted: ignoreDeleted, ignorealias: ignoreAlias } }); } searchOrganizations(params: { skip: number; take: number; fields: Array; sortBy: string; sortDirection: string; filter: number; }) { const { skip, take, fields, sortBy, sortDirection, filter } = params; return this._http.send>({ url: `${requisitesVersion}/organizations`, method: "GET", params: { skip, take, fields, "sort-by": sortBy, "sort-direction": sortDirection, filter } }); } createOrganization(id: string, requisites: Requisites): Promise> { return this._http.send({ url: `${requisitesVersion}/organizations/${id}`, method: "PUT", data: { requisites } }); } deleteOrganization(id: string): Promise> { return this._http.send({ url: `${requisitesVersion}/organizations/${id}`, method: "DELETE" }); } updateRequisites( id: string, updates: Requisites, deletes: Array, filter: string ): Promise> { return this._http.send({ url: `${requisitesVersion}/organizations/${id}`, method: "PATCH", data: { updates, deletes }, params: { filter } }); } }