import { AxiosResponse } from "axios"; import { RequestDefinition, RequestData, ImplementsRequestInterface } from "../requestBase"; import { AwardViewModel, CreateAwardViewModel, UpdateAwardViewModel, CommunicationTypeViewModel, CreateCommunicationTypeViewModel, UpdateCommunicationTypeViewModel, ExecutivePositionViewModel, CreateExecutivePositionViewModel, UpdateExecutivePositionViewModel, MembershipStatusViewModel, CreateMembershipStatusViewModel, UpdateMembershipStatusViewModel, QualificationViewModel, CreateQualificationViewModel, UpdateQualificationViewModel, SalutationViewModel, CreateSalutationViewModel, UpdateSalutationViewModel, } from "../../viewmodels/admin/memberData.models"; import { BaseClient } from "../../clients/clientBase"; interface IMemberDataRequests { getAwards: RequestDefinition; getAwardById: RequestDefinition<{ id: number }, void, AwardViewModel>; createAward: RequestDefinition; updateAward: RequestDefinition<{ id: number }, UpdateAwardViewModel, void>; deleteAward: RequestDefinition<{ id: number }, void, void>; getCommunicationTypes: RequestDefinition; getCommunicationTypeById: RequestDefinition<{ id: number }, void, CommunicationTypeViewModel>; createCommunicationType: RequestDefinition; updateCommunicationType: RequestDefinition<{ id: number }, UpdateCommunicationTypeViewModel, void>; deleteCommunicationType: RequestDefinition<{ id: number }, void, void>; getExecutivePositions: RequestDefinition; getXxecutivePositionsById: RequestDefinition<{ id: number }, void, ExecutivePositionViewModel>; createExecutivePositions: RequestDefinition; updateExecutivePositions: RequestDefinition<{ id: number }, UpdateExecutivePositionViewModel, void>; deleteExecutivePositions: RequestDefinition<{ id: number }, void, void>; getMembershipStatus: RequestDefinition; getMembershipStatusById: RequestDefinition<{ id: number }, void, MembershipStatusViewModel>; createMembershipStatus: RequestDefinition; updateMembershipStatus: RequestDefinition<{ id: number }, UpdateMembershipStatusViewModel, void>; deleteMembershipStatus: RequestDefinition<{ id: number }, void, void>; getQualifications: RequestDefinition; getQualificationById: RequestDefinition<{ id: number }, void, QualificationViewModel>; createQualification: RequestDefinition; updateQualification: RequestDefinition<{ id: number }, UpdateQualificationViewModel, void>; deleteQualification: RequestDefinition<{ id: number }, void, void>; getSalutations: RequestDefinition; getSalutationById: RequestDefinition<{ id: number }, void, SalutationViewModel>; createSalutation: RequestDefinition; updateSalutation: RequestDefinition<{ id: number }, UpdateSalutationViewModel, void>; deleteSalutation: RequestDefinition<{ id: number }, void, void>; } @ImplementsRequestInterface() export default abstract class MemberDataRequests { static async getAwards({ http }: BaseClient): Promise> { return await http.get("/admin/award"); } static async getAwardById({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.get(`/admin/award/${p.params.id}`); } static async createAward({ http }: BaseClient, p: RequestData): Promise> { return await http.post("/admin/award", p.body); } static async updateAward({ http }: BaseClient, p: RequestData<{ id: number }, UpdateAwardViewModel>): Promise> { return await http.post(`/admin/award/${p.params.id}`, p.body); } static async deleteAward({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.post(`/admin/award/${p.params.id}`); } static async getCommunicationTypes({ http }: BaseClient): Promise> { return await http.get("/admin/communicationtype"); } static async getCommunicationTypeById( { http }: BaseClient, p: RequestData<{ id: number }, void> ): Promise> { return await http.get(`/admin/communicationtype/${p.params.id}`); } static async createCommunicationType( { http }: BaseClient, p: RequestData ): Promise> { return await http.post("/admin/communicationtype", p.body); } static async updateCommunicationType( { http }: BaseClient, p: RequestData<{ id: number }, UpdateCommunicationTypeViewModel> ): Promise> { return await http.post(`/admin/communicationtype/${p.params.id}`, p.body); } static async deleteCommunicationType({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.post(`/admin/communicationtype/${p.params.id}`); } static async getExecutivePositions({ http }: BaseClient): Promise> { return await http.get("/admin/executiveposition"); } static async getXxecutivePositionsById( { http }: BaseClient, p: RequestData<{ id: number }, void> ): Promise> { return await http.get(`/admin/executiveposition/${p.params.id}`); } static async createExecutivePositions( { http }: BaseClient, p: RequestData ): Promise> { return await http.post("/admin/executiveposition", p.body); } static async updateExecutivePositions( { http }: BaseClient, p: RequestData<{ id: number }, UpdateExecutivePositionViewModel> ): Promise> { return await http.post(`/admin/executiveposition/${p.params.id}`, p.body); } static async deleteExecutivePositions({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.post(`/admin/executiveposition/${p.params.id}`); } static async getMembershipStatus({ http }: BaseClient): Promise> { return await http.get("/admin/membershipstatus"); } static async getMembershipStatusById( { http }: BaseClient, p: RequestData<{ id: number }, void> ): Promise> { return await http.get(`/admin/membershipstatus/${p.params.id}`); } static async createMembershipStatus( { http }: BaseClient, p: RequestData ): Promise> { return await http.post("/admin/membershipstatus", p.body); } static async updateMembershipStatus( { http }: BaseClient, p: RequestData<{ id: number }, UpdateMembershipStatusViewModel> ): Promise> { return await http.post(`/admin/membershipstatus/${p.params.id}`, p.body); } static async deleteMembershipStatus({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.post(`/admin/membershipstatus/${p.params.id}`); } static async getQualifications({ http }: BaseClient): Promise> { return await http.get("/admin/qualification"); } static async getQualificationById({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.get(`/admin/qualification/${p.params.id}`); } static async createQualification({ http }: BaseClient, p: RequestData): Promise> { return await http.post("/admin/qualification", p.body); } static async updateQualification( { http }: BaseClient, p: RequestData<{ id: number }, UpdateQualificationViewModel> ): Promise> { return await http.post(`/admin/qualification/${p.params.id}`, p.body); } static async deleteQualification({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.post(`/admin/qualification/${p.params.id}`); } static async getSalutations({ http }: BaseClient): Promise> { return await http.get("/admin/salutation"); } static async getSalutationById({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.get(`/admin/salutation/${p.params.id}`); } static async createSalutation({ http }: BaseClient, p: RequestData): Promise> { return await http.post("/admin/salutation", p.body); } static async updateSalutation({ http }: BaseClient, p: RequestData<{ id: number }, UpdateSalutationViewModel>): Promise> { return await http.post(`/admin/salutation/${p.params.id}`, p.body); } static async deleteSalutation({ http }: BaseClient, p: RequestData<{ id: number }, void>): Promise> { return await http.post(`/admin/salutation/${p.params.id}`); } }