/*
* Report Server
* Web API สำหรับสร้างรายงาน กำหนด Path และเพิ่มฟีเจอร์ได้ 
* จะใช้ Node.js เป็น reverse proxy ไปหา pandoc ที่ swan ขึ้นมา
* demo frontent อยู่ในโฟลเดอร์ public
*/
import cors from "cors"
import swaggerspecs from "./libs/swagger-specs.json"
import swaggerUi from "swagger-ui-express"
import express, { Express, Request, Response } from 'express'
import { docxTemplateRoute } from './libs/docx-templates-lib'
import { xlsxTemplateRoute } from './libs/xlsx-template-lib'
import { convertTemplateRoute } from './libs/convert-libs'
const app: Express = express()
const port: number = Number(process.env.PORT) || 80;
app.use(cors());
app.use(express.json()); //‘application/json’ 
app.use(express.raw()); //‘application/octet-stream’ 
app.use(express.urlencoded({ extended: true }));
app.use("/swagger", swaggerUi.serve, swaggerUi.setup(swaggerspecs,{ explorer: true }));
app.get('/', (req: Request, res: Response) => {
  res.json({
    message: 'Hello report-template API !!',
  })
})
app.use('/api/v1/report-template/docx', docxTemplateRoute);
app.use('/api/v1/report-template/xlsx', xlsxTemplateRoute);
app.use('/api/v1/report-template/convert', convertTemplateRoute);
app.listen(port, () => console.log(`Application is running on port ${port}`))