diff --git a/package-lock.json b/package-lock.json index 6f69108..4081b72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "vent-taskrouter", "version": "1.0.0", "license": "MIT", "dependencies": { diff --git a/src/config/database.js b/src/config/database.js index 8aa9ee5..fc0a048 100644 --- a/src/config/database.js +++ b/src/config/database.js @@ -2,8 +2,6 @@ require("env2")(".env"); const Sequelize = require("sequelize"); class Database { - sequelize; - sequelize_ssl; constructor() { if (Database._instance) { @@ -30,12 +28,13 @@ class Database { } catch (error) { console.error("Unable to connect to the database:", error); } - - Database._instance = this; } static getInstance() { - return Database._instance; + if (!this._instance){ + this._instance = new Database(); + } + return this._instance; } parseSSLEnvVar() { @@ -60,7 +59,7 @@ class Database { const attributes = JSON.parse(worker.attributes); const contact_uri = attributes.contact_uri; console.log("createWorker: now attempting sequelize insert worker"); - return sequelize.query( + return this.sequelize.query( "insert into worker (contact_uri,sid) values ('" + contact_uri + "','" + @@ -71,11 +70,11 @@ class Database { createWorkerApply(contact_uri, friendlyName, authenticateCode) { console.log("createWorkerApply: now attempting sequelize insert row"); - return sequelize.query( + return this.sequelize.query( "insert into workerapply (contact_uri,friendlyName,authenticateCode,status) values(?,?,?,'incomplete')", { replacements: [contact_uri, friendlyName, authenticateCode], - type: sequelize.QueryTypes.INSERT, + type: this.sequelize.QueryTypes.INSERT, } ); } @@ -93,14 +92,14 @@ class Database { } getRowFromWorkerTable(contact_uri) { - return sequelize.query( + return this.sequelize.query( "select * from worker where contact_uri='" + contact_uri + "'", - { type: sequelize.QueryTypes.SELECT } + { type: this.sequelize.QueryTypes.SELECT } ); } async updateWorkerContact_uri(oldContact_uri, newContact_uri) { - var result = await sequelize.query( + var result = await this.sequelize.query( "update worker set contact_uri='" + newContact_uri + "' where contact_uri='" + @@ -129,9 +128,9 @@ class Database { } async getWorkerIdFromSid(workerSid) { - var selectResult = await sequelize.query( + var selectResult = await this.sequelize.query( "select * from worker where sid='" + workerSid + "'", - { type: sequelize.QueryTypes.SELECT } + { type: this.sequelize.QueryTypes.SELECT } ); console.log( "getWorkerIdFromSid: selectResult: " + JSON.stringify(selectResult) @@ -147,11 +146,11 @@ class Database { } async getFunctionalityStatus(functionality) { - var selectResult = await sequelize.query( + var selectResult = await this.sequelize.query( "select * from systemstatus where function=?", { replacements: [functionality], - type: sequelize.QueryTypes.SELECT, + type: this.sequelize.QueryTypes.SELECT, } ); if (selectResult.length == 0) { @@ -193,59 +192,59 @@ class Database { insertConferenceParticipant(workerSid, callSid, conferenceSid) { console.log("insertConferenceParticipant"); - return sequelize.query( + return this.sequelize.query( "insert into conference_participant (workerSid,callSid,conferenceSid) " + "values(?,?,?)", { replacements: [workerSid, callSid, conferenceSid], - type: sequelize.QueryTypes.INSERT, + type: this.sequelize.QueryTypes.INSERT, } ); } insertCallSidWorkerSid(callSid, workerSid) { console.log("insertCallSidWorkerSid"); - return sequelize.query( + return this.sequelize.query( "insert into callsid_workersid (callsid,workersid) " + "values(?,?)", { replacements: [callSid, workerSid], - type: sequelize.QueryTypes.INSERT, + type: this.sequelize.QueryTypes.INSERT, } ); } insertAdminPassword(workerId, passwordHash, adminTaskId) { - return sequelize.query( + return this.sequelize.query( "insert into adminPassword " + "(workerId,passwordHash,adminTaskId) " + "values " + "(?,?,?)", { replacements: [workerId, passwordHash, adminTaskId], - type: sequelize.QueryTypes.INSERT, + type: this.sequelize.QueryTypes.INSERT, } ); } updateAdminPassword(workerId, passwordHash, adminTaskId) { - return sequelize.query( + return this.sequelize.query( "update adminPassword " + "set passwordHash=? " + "where workerId=? " + "and adminTaskId=?", { replacements: [passwordHash, workerId, adminTaskId], - type: sequelize.QueryTypes.UPDATE, + type: this.sequelize.QueryTypes.UPDATE, } ); } async getAdminTaskId(adminTask) { - var selectResult = await sequelize.query( + var selectResult = await this.sequelize.query( "select * from adminTask " + "where adminTask=?", { replacements: [adminTask], - type: sequelize.QueryTypes.SELECT, + type: this.sequelize.QueryTypes.SELECT, } ); if (selectResult.length == 0) { @@ -260,11 +259,11 @@ class Database { //todo: this will need to get updated after we establish the 'canceled' unique constraint async getPasswordHash(workerId, adminTaskId) { - var selectResult = await sequelize.query( + var selectResult = await this.sequelize.query( "select * from adminPassword " + "where workerId=? and adminTaskId=?", { replacements: [workerId, adminTaskId], - type: sequelize.QueryTypes.SELECT, + type: this.sequelize.QueryTypes.SELECT, } ); if (selectResult.length == 0) { @@ -281,7 +280,7 @@ class Database { if (id == null) { throw workerSid + " does not exist in worker table"; } else { - return sequelize.query( + return this.sequelize.query( "update available_notification_request set notification_sent=true" + " where worker_id=" + id + @@ -298,7 +297,7 @@ class Database { "select * from available_notification_request_worker where notification_sent=false and sid!='" + workerSid + "'", - { type: sequelize.QueryTypes.SELECT } + { type: this.sequelize.QueryTypes.SELECT } ) .then(function (result) { console.log(result); @@ -320,11 +319,11 @@ class Database { } async getWorkerSidFromCallSid(callSid) { - var selectResult = await sequelize.query( + var selectResult = await this.sequelize.query( "select * from callsid_workersid where callsid=?", { replacements: [callSid], - type: sequelize.QueryTypes.SELECT, + type: this.sequelize.QueryTypes.SELECT, } ); console.log( @@ -346,13 +345,13 @@ class Database { //or array of workerSids for multiple participants //eventually it should just have a single return type of array async getOtherParticipantWorkerSid(conferenceSid, callSid) { - var selectResult = await sequelize.query( + var selectResult = await this.sequelize.query( "select * from conference_participant " + "where conferenceSid=? and " + "callSid!=?", { replacements: [conferenceSid, callSid], - type: sequelize.QueryTypes.SELECT, + type: this.sequelize.QueryTypes.SELECT, } ); console.log( @@ -377,7 +376,7 @@ class Database { } insertEvent(reqBody) { - return sequelize.query( + return this.sequelize.query( "insert into event " + "(eventType,eventDescription,timestamp,resourceType,resourceSid,workerSid,data) " + "values " + @@ -392,7 +391,7 @@ class Database { reqBody.WorkerSid, reqBody.Data, ], - type: sequelize.QueryTypes.INSERT, + type: this.sequelize.QueryTypes.INSERT, } ); } @@ -404,7 +403,7 @@ class Database { outboundWorkerSid, conferenceSid ) { - return sequelize.query( + return this.sequelize.query( "insert into conference " + "(inboundCallSid,outboundCallSid,inboundWorkerId,outboundWorkerId,conferenceSid) " + "values " + @@ -420,20 +419,20 @@ class Database { outboundWorkerSid, conferenceSid, ], - type: sequelize.QueryTypes.INSERT, + type:this.sequelize.QueryTypes.INSERT, } ); } async getMembershipRequest(contact_uri, authenticateCode) { - var selectResult = await sequelize.query( + var selectResult = await this.sequelize.query( "select * from workerapply where contact_uri='" + contact_uri + "' and status='incomplete' " + "and authenticatecode='" + authenticateCode + "'", - { type: sequelize.QueryTypes.SELECT } + { type: this.sequelize.QueryTypes.SELECT } ); console.log( "getMembershipRequest: selectResult: " + JSON.stringify(selectResult) @@ -446,11 +445,11 @@ class Database { } async updateMembershipRequestToComplete(contact_uri) { - return sequelize.query( + return this.sequelize.query( "update workerapply " + "set status='complete' " + "where contact_uri=?", { replacements: [contact_uri], - type: sequelize.QueryTypes.UPDATE, + type: this.sequelize.QueryTypes.UPDATE, } ); } diff --git a/src/lib/sms.js b/src/lib/sms.js index 3c32410..30ed3f8 100644 --- a/src/lib/sms.js +++ b/src/lib/sms.js @@ -428,7 +428,7 @@ class Sms { if (!this.parameterCountMatch(command, parameterObj)) { responseValue = "Incorrect syntax for '" + - command.commandName + + command.name + "':\n" + command.parameterUsage; return responseValue; diff --git a/src/server.js b/src/server.js index 2666075..125f312 100644 --- a/src/server.js +++ b/src/server.js @@ -129,7 +129,8 @@ app.post("/submit_newuser", async function (req, res) { app.post("/sms", twilio.webhook(), async function (req, res) { var body = req.body.Body; var parameterObj; - console.log("/sms: message SID " + req.body.sid); + console.log(`/sms: req.body: ${JSON.stringify(req.body)}`); + console.log("/sms: message SID " + req.body.SmsSid); console.log(body); //replace multiple spaces with single space