From fd8728c0cbc1d53fffdcba7bfc888680e075bb09 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 13 Feb 2025 16:20:38 +0700 Subject: [PATCH 1/3] API Dashbord --- src/controllers/DashboardController.ts | 44 ++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/controllers/DashboardController.ts diff --git a/src/controllers/DashboardController.ts b/src/controllers/DashboardController.ts new file mode 100644 index 0000000..a08430a --- /dev/null +++ b/src/controllers/DashboardController.ts @@ -0,0 +1,44 @@ +import { Controller, Route, Tags, Request, Response, Get } from "tsoa"; +import axios from "axios"; + +import HttpStatusCode from "../interfaces/http-status"; + +import { Request as ExpressRequest } from "express"; +@Route("api/v1/probation/dashboard") +@Tags("dashboard") +// @Security("bearerAuth") +@Response(HttpStatusCode.INTERNAL_SERVER_ERROR, "สร้าง PDF") +export class DashboardController extends Controller { + /** + * API สร้าง PDF + * + * @summary สร้าง PDF + * + */ + @Get() + public async GetLinkDashboard(@Request() req: ExpressRequest) { + try { + // ดึงค่า id จาก query params + const id = req.query.id as string; + if (!id) { + throw new Error("Missing 'id' parameter"); + } + + // ลบ id จาก query params + const params = new URLSearchParams(req.query as Record); + + // สร้าง URL ใหม่ + const newUrl = params.toString() ? `${id}?${params.toString()}` : id; + + const APIAPI_DASHBOARD = `${process.env.API_DASHBOARD}/generate-pdf`; + const body = `${process.env.API_DASHBOARD}/d/${newUrl}`; + + // เรียก API generate-pdf + const apiResponse = await axios.post(APIAPI_DASHBOARD, { url: body }); + + console.log("Response:", apiResponse.data.pdfUrl); + + return apiResponse.data.pdfUrl; + } catch (error) {} + } +} From 4ba3778d27069ef5f6ef4bb43f40c40a7f233089 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 13 Feb 2025 16:23:15 +0700 Subject: [PATCH 2/3] fix --- src/controllers/DashboardController.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/controllers/DashboardController.ts b/src/controllers/DashboardController.ts index a08430a..5558878 100644 --- a/src/controllers/DashboardController.ts +++ b/src/controllers/DashboardController.ts @@ -24,7 +24,6 @@ export class DashboardController extends Controller { throw new Error("Missing 'id' parameter"); } - // ลบ id จาก query params const params = new URLSearchParams(req.query as Record); // สร้าง URL ใหม่ From b6834294e2c521e9c2ed22151f440341505e2aef Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 13 Feb 2025 16:54:17 +0700 Subject: [PATCH 3/3] dashboard export --- src/app.ts | 26 ++++++++++ src/controllers/DashboardController.ts | 70 +++++++++++++------------- 2 files changed, 61 insertions(+), 35 deletions(-) diff --git a/src/app.ts b/src/app.ts index 12180ca..1c2c289 100644 --- a/src/app.ts +++ b/src/app.ts @@ -8,6 +8,7 @@ import error from "./middlewares/error"; import { AppDataSource } from "./database/data-source"; import { RegisterRoutes } from "./routes"; import logMiddleware from "./middlewares/logs"; +import axios from "axios"; async function main() { await AppDataSource.initialize(); @@ -25,6 +26,31 @@ async function main() { app.use("/", express.static("static")); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); + app.get("/api/v1/probation/dashboard", async (req, res) => { + // ดึงค่า id จาก query params + const id = req.query.id as string; + if (!id) { + throw new Error("Missing 'id' parameter"); + } + + const params = new URLSearchParams(req.query as Record); + const newUrl = params.toString() ? `${id}?${params.toString()}` : id; + + const APIAPI_DASHBOARD = `${process.env.API_DASHBOARD}/generate-pdf`; + const body = `${process.env.API_DASHBOARD}/d/${newUrl}`; + + try { + // เรียก API generate-pdf + const apiResponse = await axios.post(APIAPI_DASHBOARD, { url: body }); + + // console.log("Response:", apiResponse.data.pdfUrl); + + res.redirect(apiResponse.data.pdfUrl); + } catch (error) { + throw new Error("Failed to generate PDF: " + error); + } + }); + RegisterRoutes(app); app.use(error); diff --git a/src/controllers/DashboardController.ts b/src/controllers/DashboardController.ts index 5558878..e7bd8bc 100644 --- a/src/controllers/DashboardController.ts +++ b/src/controllers/DashboardController.ts @@ -1,43 +1,43 @@ -import { Controller, Route, Tags, Request, Response, Get } from "tsoa"; -import axios from "axios"; +// import { Controller, Route, Tags, Request, Response, Get } from "tsoa"; +// import axios from "axios"; -import HttpStatusCode from "../interfaces/http-status"; +// import HttpStatusCode from "../interfaces/http-status"; -import { Request as ExpressRequest } from "express"; -@Route("api/v1/probation/dashboard") -@Tags("dashboard") -// @Security("bearerAuth") -@Response(HttpStatusCode.INTERNAL_SERVER_ERROR, "สร้าง PDF") -export class DashboardController extends Controller { - /** - * API สร้าง PDF - * - * @summary สร้าง PDF - * - */ - @Get() - public async GetLinkDashboard(@Request() req: ExpressRequest) { - try { - // ดึงค่า id จาก query params - const id = req.query.id as string; - if (!id) { - throw new Error("Missing 'id' parameter"); - } +// import { Request as ExpressRequest } from "express"; +// @Route("api/v1/probation/dashboard") +// @Tags("dashboard") +// // @Security("bearerAuth") +// @Response(HttpStatusCode.INTERNAL_SERVER_ERROR, "สร้าง PDF") +// export class DashboardController extends Controller { +// /** +// * API สร้าง PDF +// * +// * @summary สร้าง PDF +// * +// */ +// @Get() +// public async GetLinkDashboard(@Request() req: ExpressRequest) { +// try { +// // ดึงค่า id จาก query params +// const id = req.query.id as string; +// if (!id) { +// throw new Error("Missing 'id' parameter"); +// } - const params = new URLSearchParams(req.query as Record); +// const params = new URLSearchParams(req.query as Record); - // สร้าง URL ใหม่ - const newUrl = params.toString() ? `${id}?${params.toString()}` : id; +// // สร้าง URL ใหม่ +// const newUrl = params.toString() ? `${id}?${params.toString()}` : id; - const APIAPI_DASHBOARD = `${process.env.API_DASHBOARD}/generate-pdf`; - const body = `${process.env.API_DASHBOARD}/d/${newUrl}`; +// const APIAPI_DASHBOARD = `${process.env.API_DASHBOARD}/generate-pdf`; +// const body = `${process.env.API_DASHBOARD}/d/${newUrl}`; - // เรียก API generate-pdf - const apiResponse = await axios.post(APIAPI_DASHBOARD, { url: body }); +// // เรียก API generate-pdf +// const apiResponse = await axios.post(APIAPI_DASHBOARD, { url: body }); - console.log("Response:", apiResponse.data.pdfUrl); +// console.log("Response:", apiResponse.data.pdfUrl); - return apiResponse.data.pdfUrl; - } catch (error) {} - } -} +// return apiResponse.data.pdfUrl; +// } catch (error) {} +// } +// }