Skip to content

Commit 826f9b6

Browse files
committed
#4102 upload sponsor hook
1 parent 14f15bf commit 826f9b6

3 files changed

Lines changed: 31 additions & 0 deletions

File tree

src/frontend/src/apis/finance.api.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,12 @@ export const editSponsor = (id: string, formData: SponsorPayload) => {
742742
return axios.post(apiUrls.editSponsor(id), formData);
743743
};
744744

745+
export const uploadSponsorLogo = (sponsorId: string, logoImage: File) => {
746+
const formData = new FormData();
747+
formData.append('logoImage', logoImage);
748+
return axios.post<Sponsor>(apiUrls.uploadSponsorLogo(sponsorId), formData);
749+
};
750+
745751
/**
746752
* API call to delete a given sponsor task
747753
*

src/frontend/src/hooks/finance.hooks.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import {
6969
assignMemberToRR,
7070
setTaxExemptStatus,
7171
toggleSponsorTaskDone,
72+
uploadSponsorLogo,
7273
getAllProspectiveSponsors,
7374
createProspectiveSponsor,
7475
editProspectiveSponsor,
@@ -186,6 +187,7 @@ export interface SponsorPayload {
186187
sponsorNotes?: string;
187188
stockDescription?: string;
188189
discountDescription?: string;
190+
logoImageId?: string;
189191
}
190192

191193
interface EditSponsorPayload extends SponsorPayload {
@@ -1324,6 +1326,27 @@ export const useEditSponsor = () => {
13241326
);
13251327
};
13261328

1329+
interface UploadSponsorLogoPayload {
1330+
sponsorId: string;
1331+
logoImage: File;
1332+
}
1333+
1334+
export const useUploadSponsorLogo = () => {
1335+
const queryClient = useQueryClient();
1336+
return useMutation<Sponsor, Error, UploadSponsorLogoPayload>(
1337+
['sponsor', 'uploadLogo'],
1338+
async ({ sponsorId, logoImage }: UploadSponsorLogoPayload) => {
1339+
const { data } = await uploadSponsorLogo(sponsorId, logoImage);
1340+
return data;
1341+
},
1342+
{
1343+
onSuccess: () => {
1344+
queryClient.invalidateQueries(['sponsor']);
1345+
}
1346+
}
1347+
);
1348+
};
1349+
13271350
/**
13281351
* Custom React Hook to delete a sponsor task
13291352
*

src/frontend/src/utils/urls.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ const getAllSpendingBarData = (startDate?: Date, endDate?: Date): string => {
297297
};
298298
const getAllSponsorTiers = () => `${financeRoutesEndpoints()}/sponsorTiers`;
299299
const editSponsor = (sponsorId: string) => `${financeRoutesEndpoints()}/sponsor/${sponsorId}/edit`;
300+
const uploadSponsorLogo = (sponsorId: string) => `${financeRoutesEndpoints()}/sponsor/${sponsorId}/uploadLogo`;
300301
const financeGetUsersTeamsReimbursementRequests = () => `${financeEndpoints()}/reimbursements/current-user-team`;
301302
const deleteSponsorTier = (sponsorTierId: string) => `${financeRoutesEndpoints()}/sponsorTier/${sponsorTierId}`;
302303
const editSponsorTier = (sponsorTierId: string) => `${financeRoutesEndpoints()}/sponsorTier/${sponsorTierId}/edit`;
@@ -692,6 +693,7 @@ export const apiUrls = {
692693
getAllSpendingBarData,
693694
getAllSponsorTiers,
694695
editSponsor,
696+
uploadSponsorLogo,
695697
financeGetUsersTeamsReimbursementRequests,
696698
deleteSponsorTier,
697699
editSponsorTier,

0 commit comments

Comments
 (0)