Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require("fs");
- const sql = require("mssql/msnodesqlv8");
- const defaultCaseSpecs = {
- clientId: 9053,
- caseName: "toothache"
- };
- class Request {
- constructor(config) {
- this.config = Object.assign({}, config);
- }
- async newCase(caseSpecs) {
- let connection = await this.$connect();
- let caseP = await this.$enchanceCase(caseSpecs, connection);
- let queryResult = await connection.request().query(this.$withMetadata(`
- DECLARE @NewID INT
- EXEC pr_Case_INSERT @MetaData, '${case.clientId}', '', '${case.caseName}', NULL, @NewID OUTPUT
- SELECT @NewID AS NewCaseID
- `));
- await connection.request().query(this.$withMetadata(`
- EXEC pr_CasesForClient_SELECT @MetaData, ${case.clientId}
- EXEC pr_CaseStatusForClient_SELECT @MetaData, ${case.clientId}
- `));
- caseP.patientId = patientId;
- return caseP;
- }
- async cleanup() {
- this.pool && this.pool.close();
- }
- async $connect() {
- if (!this.pool) {
- this.pool = new sql.ConnectionPool(this.config);
- await this.pool.connect();
- }
- return this.pool;
- }
- $withMetadata(sql) {
- return `
- DECLARE @MetaData TT_MetaData
- INSERT INTO @MetaData (TenantID, UserID, TimeZoneOffset, UseDaylightSavingsTime) VALUES (${this.config.tenantId}, ${this.config.userId}, -6, 1)
- ` + sql;
- }
- async $enchanceCase(caseSpecs, connection) {
- caseSpecs = Object.assign({}, defaultCaseSpecs, caseSpecs);
- //if (!caseSpecs.caseName) {
- // caseSpecs.caseName = `Test-${new Date().getTime()}-${Math.floor(Math.random() * 100)}`;
- //}
- return caseSpecs;
- }
- }
- function readConfig(fileName) {
- try {
- return JSON.parse(fs.readFileSync(fileName, "utf8"));
- }
- catch (error) {
- if (error.code !== "ENOENT") {
- throw error;
- }
- return undefined;
- }
- }
- function mergeConfigs(...configs) {
- let merged = {};
- for (let config of configs) {
- if (!config) continue;
- let options = merged.options;
- Object.assign(merged, config);
- if (options || config.options) {
- merged.options = Object.assign({}, options, config.options);
- }
- }
- return merged;
- }
- const defaultConfig = {
- server: ".",
- database: "clntacl",
- options: {
- trustedConnection: true
- }
- };
- const config = mergeConfigs(defaultConfig,
- readConfig("./database.json"), readConfig("./database.local.json"));
- const request = new Request(config);
- module.exports = request;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement