// ROUTES FOR OUR APIselectClassStudent // ============================================================================= const express = require("express"); const request = require("request"); const bcrypt = require("bcryptjs"); const router = express.Router(); // get an instance of the express Router const querystring = require("querystring"); var mysql = require("./mysql"); // const _mysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息 // const _mysqluser = ["123.58.32.151", "cocorobouser"]; //用户数据库信息 // const _getmysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息 // const _getmysqluser = ["123.58.32.151", "cocorobouser"]; //edu數據庫信息 const _mysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息 const _mysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息 // const _getmysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息 // const _getmysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息 const _getmysqlLabor2 = ["172.16.12.7", "pbl"]; //edu數據庫信息 const _getmysqlLabor = ["172.16.12.7", "pbl"]; //edu數據庫信息 const _getmysqluser = ["172.16.12.7", "cocorobouser"]; //edu數據庫信息 const _localhost = ["127.0.0.1", "pbl"]; //edu數據庫信息 const crypto = require("crypto"); const https = require("https"); const { Pool } = require('pg'); const axios = require('axios'); const loginHandler = require('./login'); // 确保路径正确 const { r2rClient } = require("r2r-js"); const client = new r2rClient("https://r2rserver.cocorobo.cn/"); router.route("/login").all(async (req, res, next) => { loginHandler(req, res) }); router.route("/logout").all(async (req, res, next) => { try { const response = await client.users.logout(); res.status(200).json({result: response.results}); } catch (error) { res.status(500).json({error: error instanceof Error ? error.message : "An error occurred"}); } }); router.route("/getDocument").all(async (req, res, next) => { try { const response = await client.documents.list({ limit: 10, offset: 0, }); console.log(response); res.status(200).json({ result: response.results }); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" }); } }); //列出文档块 router.route("/listChunks").all(async (req, res, next) => { try { const response = await client.documents.listChunks({ id: "5111165f-965c-5d61-89e3-1f74b0178032", }); console.log(response); res.status(200).json({ result: response.results }); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" }); } }); //提取实体和关系 router.route("/extract").all(async (req, res, next) => { try { const response = await client.documents.extract({ id: "5111165f-965c-5d61-89e3-1f74b0178032" }) console.log(response); res.status(200).json({ result: response.results }); } catch (error) { res.status(500).json({ error: error instanceof Error ? error.message : "An error occurred" }); } }); router.route("/selectUser").all((req, res, next) => { var json = queryString(req.url); getmysql(req, res, "selectUser", json["userid"]); }); function generateAPIKey(username) { let timeStamp = new Date().getTime(); let hashStr = timeStamp + username; let digest = crypto .createHash("sha256") .update(hashStr, "utf8") .digest("hex"); return digest; } queryString = function(url) { var a = url.split("?"); var json = querystring.parse(a[1]); return json; }; //post存儲過程處理 postmysql = function(req, res, functionname) { //mode的處理 if (req.body[0]) { p = Object.values(req.body[0]); p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); } }; //post存儲過程處理 postmysql2 = function(req, res, functionname) { //mode的處理 if (req.body) { p = Object.values(req.body)[0].split(","); p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); } }; //post存儲過程處理 postmysql3 = function(req, res, functionname) { //mode的處理 if (req.body) { p = Object.values(req.body); p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); } }; //get獲取數據庫信息 getmysql = function(req, res, functionname, ...p) { p = p || []; p.unshift(_getmysqlLabor[0], _getmysqlLabor[1], functionname); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); // }; //get獲取數據庫信息 getmysql2 = function(req, res, functionname, ...p) { p = p || []; p.unshift(_mysqlLabor[0], _mysqlLabor[1], functionname); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); // }; //get獲取數據庫信息 getmysql3 = function(req, res, functionname, ...p) { p = p || []; p.unshift(_getmysqlLabor2[0], _getmysqlLabor2[1], functionname); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); // }; //post存储过程处理 userpostmysql = function(req, res, functionname) { //mode的处理 if (req.body.mode) { p = req.body.mode.split(","); p.unshift(_mysqluser[0], _mysqluser[1], functionname); //执行存储过程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); } }; //get获取数据库信息 usergetmysql = function(req, res, functionname, ...p) { p = p || []; p.unshift(_mysqluser[0], _mysqluser[1], functionname); //执行存储过程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); // }; //post存儲過程處理 postmysqlLocal = function(req, res) { //mode的處理 if (req.body[0]) { p = Object.values(req.body[0]); p.unshift(_localhost[0], _localhost[1]); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); } }; postmysqlOnline = function(req, res) { //mode的處理 if (req.body[0]) { p = Object.values(req.body[0]); p.unshift(_mysqlLabor[0], _mysqlLabor[1]); //執行存儲過程 mysql.usselect(p, function(ret) { res.end(JSON.stringify(ret)); }); } }; module.exports = router;