@@ -6,6 +6,7 @@ const async = require('async'),
66 HttpStatus = require ( 'http-status-codes' ) ,
77 log = common . services . log ( "featureService/services/visits" ) ,
88 postgres = require ( './postgres' ) ,
9+ escapeSql = postgres . escapeSql ,
910 ServiceError = common . utils . ServiceError ,
1011 uuid = require ( 'uuid/v4' ) ;
1112
@@ -40,7 +41,7 @@ function resultsToVisits(results) {
4041}
4142
4243function deleteByUserId ( userId , callback ) {
43- executeQuery ( `DELETE FROM visits WHERE user_id=' ${ userId } ' ` , callback ) ;
44+ executeQuery ( `DELETE FROM visits WHERE user_id=${ escapeSql ( userId ) } ` , callback ) ;
4445}
4546
4647function executeQuery ( query , callback ) {
@@ -69,11 +70,11 @@ function fromRequest(visitsJson, callback) {
6970}
7071
7172function getByTimestamp ( userId , timestamp , callback ) {
72- executeQuery ( `SELECT * FROM visits WHERE user_id=' ${ userId } ' AND start >= ${ timestamp } AND finish <= ${ timestamp } ` , callback ) ;
73+ executeQuery ( `SELECT * FROM visits WHERE user_id=${ escapeSql ( userId ) } AND start >= ${ timestamp } AND finish <= ${ timestamp } ` , callback ) ;
7374}
7475
7576function getByUserId ( userId , callback ) {
76- let query = `SELECT * FROM visits WHERE user_id=' ${ userId } ' ` ;
77+ let query = `SELECT * FROM visits WHERE user_id=${ escapeSql ( userId ) } ` ;
7778 executeQuery ( query , callback ) ;
7879}
7980
@@ -119,16 +120,16 @@ function upsert(visits, callback) {
119120 let upsertQuery = `INSERT INTO visits (
120121 id, user_id, feature_id, start, finish, created_at, updated_at
121122 ) VALUES (
122- ' ${ visit . id } ' ,
123- ' ${ visit . userId } ' ,
124- ' ${ visit . featureId } ' ,
123+ ${ escapeSql ( visit . id ) } ,
124+ ${ escapeSql ( visit . userId ) } ,
125+ ${ escapeSql ( visit . featureId ) } ,
125126 ${ visit . start } ,
126127 ${ visit . finish } ,
127128 current_timestamp,
128129 current_timestamp
129130 ) ON CONFLICT (id) DO UPDATE SET
130- user_id = ' ${ visit . userId } ' ,
131- feature_id = ' ${ visit . featureId } ' ,
131+ user_id = ${ escapeSql ( visit . userId ) } ,
132+ feature_id = ${ escapeSql ( visit . featureId ) } ,
132133 start = ${ visit . start } ,
133134 finish = ${ visit . finish } ,
134135 updated_at = current_timestamp
0 commit comments