2019-12-23 12:16:33 +00:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2020-06-17 10:19:56 +00:00
|
|
|
export interface FetchAllUsersResponse extends ApiResponse {
|
|
|
|
|
data: OrgRole[];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface FetchAllRolesResponse extends ApiResponse {
|
|
|
|
|
data: Org[];
|
|
|
|
|
}
|
|
|
|
|
|
2019-12-23 12:16:33 +00:00
|
|
|
export interface FetchOrgRequest {
|
|
|
|
|
orgId: string;
|
|
|
|
|
}
|
|
|
|
|
|
2020-06-17 10:19:56 +00:00
|
|
|
export interface FetchAllUsersRequest {
|
|
|
|
|
orgId: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface ChangeUserRoleRequest {
|
|
|
|
|
orgId: string;
|
|
|
|
|
role: string;
|
|
|
|
|
username: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface DeleteOrgUserRequest {
|
|
|
|
|
orgId: string;
|
|
|
|
|
username: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface FetchAllRolesRequest {
|
|
|
|
|
orgId: string;
|
|
|
|
|
}
|
|
|
|
|
|
2019-12-23 12:16:33 +00:00
|
|
|
export interface SaveOrgRequest {
|
|
|
|
|
id: string;
|
|
|
|
|
name: string;
|
|
|
|
|
website: string;
|
|
|
|
|
}
|
|
|
|
|
|
2020-02-03 10:37:03 +00:00
|
|
|
export interface CreateOrgRequest {
|
|
|
|
|
name: string;
|
|
|
|
|
}
|
|
|
|
|
|
2019-12-23 12:16:33 +00:00
|
|
|
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);
|
|
|
|
|
}
|
2020-02-03 10:37:03 +00:00
|
|
|
static createOrg(request: CreateOrgRequest): AxiosPromise<ApiResponse> {
|
|
|
|
|
return Api.post(OrgApi.orgsURL, request);
|
|
|
|
|
}
|
2020-06-17 10:19:56 +00:00
|
|
|
static fetchAllUsers(
|
|
|
|
|
request: FetchAllUsersRequest,
|
|
|
|
|
): AxiosPromise<FetchAllUsersResponse> {
|
|
|
|
|
return Api.get(OrgApi.orgsURL + "/" + request.orgId + "/members");
|
|
|
|
|
}
|
|
|
|
|
static fetchAllRoles(): AxiosPromise<FetchAllRolesResponse> {
|
|
|
|
|
return Api.get(OrgApi.orgsURL + "/roles");
|
|
|
|
|
}
|
|
|
|
|
static changeOrgUserRole(
|
|
|
|
|
request: ChangeUserRoleRequest,
|
|
|
|
|
): AxiosPromise<ApiResponse> {
|
|
|
|
|
return Api.put(OrgApi.orgsURL + "/" + request.orgId + "/role", {
|
|
|
|
|
username: request.username,
|
|
|
|
|
roleName: request.role,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
static deleteOrgUser(
|
|
|
|
|
request: DeleteOrgUserRequest,
|
|
|
|
|
): AxiosPromise<ApiResponse> {
|
|
|
|
|
return Api.put(OrgApi.orgsURL + "/" + request.orgId + "/role", {
|
|
|
|
|
username: request.username,
|
|
|
|
|
roleName: null,
|
|
|
|
|
});
|
|
|
|
|
}
|
2019-12-23 12:16:33 +00:00
|
|
|
}
|
|
|
|
|
export default OrgApi;
|