244 lines
12 KiB
TypeScript
244 lines
12 KiB
TypeScript
|
import { AxiosResponse } from "axios";
|
||
|
import { RequestDefinition, RequestData, ImplementsRequestInterface } from "../requestBase";
|
||
|
import {
|
||
|
MemberViewModel,
|
||
|
MemberStatisticsViewModel,
|
||
|
CreateMemberViewModel,
|
||
|
UpdateMemberViewModel,
|
||
|
MembershipViewModel,
|
||
|
MembershipStatisticsViewModel,
|
||
|
CreateMembershipViewModel,
|
||
|
UpdateMembershipViewModel,
|
||
|
MemberAwardViewModel,
|
||
|
MemberQualificationViewModel,
|
||
|
MemberExecutivePositionViewModel,
|
||
|
CommunicationViewModel,
|
||
|
} from "../../viewmodels/admin/member.models";
|
||
|
import { BaseClient } from "../../clients/clientBase";
|
||
|
|
||
|
interface IMemberRequests {
|
||
|
getAllMembers: RequestDefinition<void, void, MemberViewModel[]>;
|
||
|
getMemberById: RequestDefinition<{ id: string }, void, MemberViewModel>;
|
||
|
getMemberStatisticsById: RequestDefinition<{ id: string }, void, MemberStatisticsViewModel>;
|
||
|
createMember: RequestDefinition<void, CreateMemberViewModel, string>;
|
||
|
updateMember: RequestDefinition<{ id: string }, UpdateMemberViewModel, void>;
|
||
|
deleteMember: RequestDefinition<{ id: string }, void, void>;
|
||
|
|
||
|
getMembershipsByMember: RequestDefinition<{ memberId: string }, void, MembershipViewModel[]>;
|
||
|
getMembershipStatisticsByMember: RequestDefinition<{ memberId: string }, void, MembershipStatisticsViewModel>;
|
||
|
getMembershipByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, MembershipViewModel>;
|
||
|
addMembershipByMember: RequestDefinition<{ memberId: string }, CreateMembershipViewModel, void>;
|
||
|
updateMembershipByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, UpdateMembershipViewModel, void>;
|
||
|
deleteMembershipByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, void>;
|
||
|
|
||
|
getAwardsByMember: RequestDefinition<{ memberId: string }, void, MemberAwardViewModel[]>;
|
||
|
getAwardByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, MemberAwardViewModel>;
|
||
|
addAwardByMember: RequestDefinition<{ memberId: string }, CreateMembershipViewModel, void>;
|
||
|
updateAwardByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, UpdateMembershipViewModel, void>;
|
||
|
deleteAwardByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, void>;
|
||
|
|
||
|
getQualificationsByMember: RequestDefinition<{ memberId: string }, void, MemberQualificationViewModel[]>;
|
||
|
getQualificationByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, MemberQualificationViewModel>;
|
||
|
addQualificationByMember: RequestDefinition<{ memberId: string }, CreateMembershipViewModel, void>;
|
||
|
updateQualificationByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, UpdateMembershipViewModel, void>;
|
||
|
deleteQualificationByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, void>;
|
||
|
|
||
|
getPositionsByMember: RequestDefinition<{ memberId: string }, void, MemberExecutivePositionViewModel[]>;
|
||
|
getPositionByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, MemberExecutivePositionViewModel>;
|
||
|
addPositionByMember: RequestDefinition<{ memberId: string }, CreateMembershipViewModel, void>;
|
||
|
updatePositionByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, UpdateMembershipViewModel, void>;
|
||
|
deletePositionByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, void>;
|
||
|
|
||
|
getCommunicationsByMember: RequestDefinition<{ memberId: string }, void, CommunicationViewModel[]>;
|
||
|
getCommunicationByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, CommunicationViewModel>;
|
||
|
addCommunicationsByMember: RequestDefinition<{ memberId: string }, CreateMembershipViewModel, void>;
|
||
|
updateCommunicationsByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, UpdateMembershipViewModel, void>;
|
||
|
deleteCommunicationsByMemberAndId: RequestDefinition<{ memberId: string; recordId: number }, void, void>;
|
||
|
}
|
||
|
|
||
|
@ImplementsRequestInterface<IMemberRequests>()
|
||
|
export default abstract class MemberRequests {
|
||
|
static async getAllMembers({ http }: BaseClient): Promise<AxiosResponse<MemberViewModel[], any>> {
|
||
|
return await http.get("/admin/member");
|
||
|
}
|
||
|
static async getMemberById({ http }: BaseClient, p: RequestData<{ id: string }, void>): Promise<AxiosResponse<MemberViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.id}`);
|
||
|
}
|
||
|
static async getMemberStatisticsById(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ id: string }, void>
|
||
|
): Promise<AxiosResponse<MemberStatisticsViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.id}/statistics`);
|
||
|
}
|
||
|
static async createMember({ http }: BaseClient, p: RequestData<void, CreateMemberViewModel>): Promise<AxiosResponse<string, any>> {
|
||
|
return await http.post("/admin/member", p.body);
|
||
|
}
|
||
|
static async updateMember({ http }: BaseClient, p: RequestData<{ id: string }, UpdateMemberViewModel>): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.post(`/admin/member/${p.params.id}`, p.body);
|
||
|
}
|
||
|
static async deleteMember({ http }: BaseClient, p: RequestData<{ id: string }, void>): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.post(`/admin/member/${p.params.id}`);
|
||
|
}
|
||
|
|
||
|
static async getMembershipsByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, void>
|
||
|
): Promise<AxiosResponse<MembershipViewModel[], any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/memberships`);
|
||
|
}
|
||
|
static async getMembershipStatisticsByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, void>
|
||
|
): Promise<AxiosResponse<MembershipStatisticsViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/memberships/statistics`);
|
||
|
}
|
||
|
static async getMembershipByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<MembershipViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/membership/${p.params.recordId}`);
|
||
|
}
|
||
|
static async addMembershipByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, CreateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.post(`/admin/member/${p.params.memberId}/membership`, p.body);
|
||
|
}
|
||
|
static async updateMembershipByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, UpdateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.put(`/admin/member/${p.params.memberId}/memberships/${p.params.recordId}`, p.body);
|
||
|
}
|
||
|
static async deleteMembershipByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.delete(`/admin/member/${p.params.memberId}/memberships/${p.params.recordId}`);
|
||
|
}
|
||
|
|
||
|
static async getAwardsByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, void>
|
||
|
): Promise<AxiosResponse<MemberAwardViewModel[], any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/awards`);
|
||
|
}
|
||
|
static async getAwardByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<MemberAwardViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/award/${p.params.recordId}`);
|
||
|
}
|
||
|
static async addAwardByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, CreateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.post(`/admin/member/${p.params.memberId}/award`, p.body);
|
||
|
}
|
||
|
static async updateAwardByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, UpdateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.put(`/admin/member/${p.params.memberId}/award/${p.params.recordId}`, p.body);
|
||
|
}
|
||
|
static async deleteAwardByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.delete(`/admin/member/${p.params.memberId}/award/${p.params.recordId}`);
|
||
|
}
|
||
|
|
||
|
static async getQualificationsByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, void>
|
||
|
): Promise<AxiosResponse<MemberQualificationViewModel[], any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/qualifications`);
|
||
|
}
|
||
|
static async getQualificationByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<MemberQualificationViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/qualification/${p.params.recordId}`);
|
||
|
}
|
||
|
static async addQualificationByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, CreateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.post(`/admin/member/${p.params.memberId}/qualification`, p.body);
|
||
|
}
|
||
|
static async updateQualificationByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, UpdateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.put(`/admin/member/${p.params.memberId}/qualification/${p.params.recordId}`, p.body);
|
||
|
}
|
||
|
static async deleteQualificationByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.delete(`/admin/member/${p.params.memberId}/qualification/${p.params.recordId}`);
|
||
|
}
|
||
|
|
||
|
static async getPositionsByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, void>
|
||
|
): Promise<AxiosResponse<MemberExecutivePositionViewModel[], any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/positions`);
|
||
|
}
|
||
|
static async getPositionByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<MemberExecutivePositionViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/position/${p.params.recordId}`);
|
||
|
}
|
||
|
static async addPositionByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, CreateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.post(`/admin/member/${p.params.memberId}/position`, p.body);
|
||
|
}
|
||
|
static async updatePositionByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, UpdateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.put(`/admin/member/${p.params.memberId}/position/${p.params.recordId}`, p.body);
|
||
|
}
|
||
|
static async deletePositionByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.delete(`/admin/member/${p.params.memberId}/position/${p.params.recordId}`);
|
||
|
}
|
||
|
|
||
|
static async getCommunicationsByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, void>
|
||
|
): Promise<AxiosResponse<CommunicationViewModel[], any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/communications`);
|
||
|
}
|
||
|
static async getCommunicationByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<CommunicationViewModel, any>> {
|
||
|
return await http.get(`/admin/member/${p.params.memberId}/communication/${p.params.recordId}`);
|
||
|
}
|
||
|
static async addCommunicationsByMember(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string }, CreateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.post(`/admin/member/${p.params.memberId}/communication`, p.body);
|
||
|
}
|
||
|
static async updateCommunicationsByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, UpdateMembershipViewModel>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.put(`/admin/member/${p.params.memberId}/communication/${p.params.recordId}`, p.body);
|
||
|
}
|
||
|
static async deleteCommunicationsByMemberAndId(
|
||
|
{ http }: BaseClient,
|
||
|
p: RequestData<{ memberId: string; recordId: number }, void>
|
||
|
): Promise<AxiosResponse<void, any>> {
|
||
|
return await http.delete(`/admin/member/${p.params.memberId}/communication/${p.params.recordId}`);
|
||
|
}
|
||
|
}
|