SignReport handler changes along with tests and TS interface

This commit is contained in:
Imbus 2024-03-29 15:33:20 +01:00
parent b927fb80fb
commit 4538a3b193
4 changed files with 47 additions and 20 deletions

View file

@ -153,6 +153,18 @@ interface API {
projectName: string,
token: string,
): Promise<APIResponse<string>>;
/**
* Signs a report. Keep in mind that the user which the token belongs to must be
* the project manager of the project the report belongs to.
*
* @param {number} reportId The id of the report to sign
* @param {string} token The authentication token
*/
signReport(
reportId: number,
token: string,
): Promise<APIResponse<string>>;
}
/** An instance of the API */
@ -581,4 +593,27 @@ export const api: API = {
});
}
},
async signReport(
reportId: number,
token: string,
): Promise<APIResponse<string>> {
try {
const response = await fetch(`/api/signReport/${reportId}`, {
method: "PUT",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + token,
},
});
if (!response.ok) {
return { success: false, message: "Failed to sign report" };
} else {
return { success: true, message: "Report signed" };
}
} catch (e) {
return { success: false, message: "Failed to sign report" };
}
}
};