52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import { AxiosPromise } from "axios";
|
|
import Api from "./Api";
|
|
import { ApiResponse } from "./ApiResponses";
|
|
import { OrgRole, Org } from "constants/orgConstants";
|
|
|
|
export interface FetchOrgRolesResponse extends ApiResponse {
|
|
data: OrgRole[];
|
|
}
|
|
|
|
export interface FetchOrgsResponse extends ApiResponse {
|
|
data: Org[];
|
|
}
|
|
export interface FetchOrgResponse extends ApiResponse {
|
|
data: Org;
|
|
}
|
|
|
|
export interface FetchOrgRequest {
|
|
orgId: string;
|
|
}
|
|
|
|
export interface SaveOrgRequest {
|
|
id: string;
|
|
name: string;
|
|
website: string;
|
|
}
|
|
|
|
export interface CreateOrgRequest {
|
|
name: string;
|
|
}
|
|
|
|
class OrgApi extends Api {
|
|
static rolesURL = "v1/groups";
|
|
static orgsURL = "v1/organizations";
|
|
static fetchRoles(): AxiosPromise<FetchOrgRolesResponse> {
|
|
return Api.get(OrgApi.rolesURL);
|
|
}
|
|
static fetchOrgs(): AxiosPromise<FetchOrgsResponse> {
|
|
return Api.get(OrgApi.orgsURL);
|
|
}
|
|
static fetchOrg(request: FetchOrgRequest): AxiosPromise<FetchOrgResponse> {
|
|
return Api.get(OrgApi.orgsURL + "/" + request.orgId);
|
|
}
|
|
static saveOrg(request: SaveOrgRequest): AxiosPromise<ApiResponse> {
|
|
return Api.put(OrgApi.orgsURL + "/" + request.id, request);
|
|
}
|
|
static createOrg(request: CreateOrgRequest): AxiosPromise<ApiResponse> {
|
|
return Api.post(OrgApi.orgsURL, request);
|
|
}
|
|
}
|
|
|
|
export default OrgApi;
|