ff-admin-webapi-client/src/requests/admin/memberRequests.ts

244 lines
12 KiB
TypeScript
Raw Normal View History

2025-02-05 14:29:09 +01:00
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}`);
}
}