feat(ExRetirment):get document

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2025-10-27 14:32:36 +07:00
parent 6fab6c724e
commit 0300e61be5

View file

@ -68,7 +68,8 @@ export class ExRetirementController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่สามารถขอ Token ได้");
}
const scope = requestBody.type === "officer" ? "getOfficerRetireData" : "";
// const scope = requestBody.type === "officer" ? "getOfficerRetireData" : "";
const scope = "getOfficerRetireData";
const startRecord = requestBody.page !== 1 ? (requestBody.page - 1) * 25 : 0;
const formData = new FormData();
@ -78,6 +79,7 @@ export class ExRetirementController extends Controller {
formData.append("citizenID", requestBody.citizenID);
formData.append("firstNameTH", requestBody.firstNameTH);
formData.append("lastNameTH", requestBody.lastNameTH);
formData.append("officerTypeID", requestBody.type === "officer" ? "1" : "2");
const res = await axios.post(API_URL_BANGKOK + "/getData", formData, {
headers: {
@ -96,6 +98,38 @@ export class ExRetirementController extends Controller {
}
}
}
@Get("/document/{documentId}")
async getDocument(@Path("documentId") officerDocumentID: string) {
let retryCount = 0;
const maxRetries = 2;
while (retryCount < maxRetries) {
try {
const token = await getToken(clientId, clientSecret);
if (!token) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่สามารถขอ Token ได้");
}
const formData = new FormData();
formData.append("scope", "getOfficerRetireFile");
formData.append("officerDocumentID", officerDocumentID);
const res = await axios.post(API_URL_BANGKOK + "/getData", formData, {
headers: {
Authorization: `Bearer ${token}`,
},
});
return res.data;
} catch (error: any) {
if (error.response?.status === 500 && retryCount < maxRetries - 1) {
TokenCache.delete(`${clientId}:${clientSecret}`);
retryCount++;
continue;
}
throw new HttpError(HttpStatusCode.INTERNAL_SERVER_ERROR, "ไม่สามารถติดต่อ API ได้");
}
}
}
}
async function getToken(ClientID: string, ClientSecret: string): Promise<string> {