import { Application, Router } from 'https://deno.land/x/oak/mod.ts'; import { Client } from "https://deno.land/x/postgres@v0.17.0/mod.ts"; const app = new Application(); const router = new Router(); //---------dotenv info------------- import { load } from "https://deno.land/std/dotenv/mod.ts"; import { apply_guidance } from './apply_guidance.ts'; const env = await load(); const hostname = env["HOSTNAME"]; const port = env["PORT"]; const user = env["USER"]; const password = env["PASSWORD"]; const database = env["DATABASE"]; const app_port = env["APP_PORT"]; // Configure database connection const client = new Client({ hostname:hostname ,port: port ,user: user ,password:password ,database:database ,applicationName: "pricing guidance" }); await client.connect(); // Load SQL from file const query = await Deno.readTextFile("sql/get.pg.sql"); const query_dseg = await Deno.readTextFile("sql/get_dseg.pg.sql"); // exact scenario for existing codes router.get('/code_price/:billcode/:shipcode/:partcode/:qty', async (ctx) => { const partcode = ctx.params.partcode; const billcode = ctx.params.billcode; const shipcode = ctx.params.shipcode; const qty = ctx.params.qty; const result = await client.queryObject({args: [billcode, shipcode, partcode, qty], text: query} ); const procd = apply_guidance(result.rows[0]["doc"]) ctx.response.body = procd; }); // specific customres codes but generic style code and data segment to accomodate custom colors and branding router.get('/dseg_price/:billcode/:shipcode/:stlc/:dseg/:qty', async (ctx) => { const stlc = ctx.params.stlc; const dseg = ctx.params.dseg; const billcode = ctx.params.billcode; const shipcode = ctx.params.shipcode; const qty = ctx.params.qty; const result = await client.queryObject({args: [billcode, shipcode, stlc, dseg, qty], text: query_dseg} ); const procd = apply_guidance(result.rows[0]["doc"]) ctx.response.body = procd; }); app.use(router.routes()); app.use(router.allowedMethods()); // Start the server console.log('Server is running on http://usmidsap02:8090'); await app.listen({ port: 8090 });