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] 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) {} + } +}