PromucFlow_constructor/app/client/src/api/OrgApi.ts
2020-02-03 10:37:03 +00:00

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;