MCPcopy Create free account
hub / github.com/CloudBoost/cloudboost / _modifyFieldsInQuery

Function _modifyFieldsInQuery

services/cloudObjects.js:1106–1154  ·  view source on GitHub ↗
(appId, collectionName, query)

Source from the content-addressed store, hash-verified

1104
1105// this function modifies the fields ['password','datetime'] passed in the Query.
1106function _modifyFieldsInQuery(appId, collectionName, query) {
1107 var deferred = q.defer();
1108 try {
1109 if (collectionName === '_File') {
1110 deferred.resolve(query);
1111 } else {
1112 _getSchema(appId, collectionName).then(function(columns) {
1113 var passwordColumnNames = [];
1114 var dateTimeColumnNames = [];
1115
1116 // push in fields to be modified / i.e DateTime and Encypted fields
1117 for (var i = 0; i < columns.length; i++) {
1118 if (columns[i].dataType === 'EncryptedText') {
1119 passwordColumnNames.push(columns[i].name);
1120 }
1121 if (columns[i].dataType === 'DateTime') {
1122 dateTimeColumnNames.push(columns[i].name);
1123 }
1124 }
1125
1126 //resolve if there are no password fields or DateTime fields
1127 if (passwordColumnNames.length === 0 && dateTimeColumnNames === 0) {
1128 deferred.resolve(query);
1129 } else {
1130 appService.getApp(appId).then(function (application) {
1131 //or modify the query and resolve it.
1132 if (passwordColumnNames.length)
1133 query = _recursiveModifyQuery(query, passwordColumnNames, 'encrypt',application.keys.encryption_key);
1134 if (dateTimeColumnNames.length)
1135 query = _recursiveModifyQuery(query, dateTimeColumnNames, 'datetime',application.keys.encryption_key);
1136 deferred.resolve(query);
1137 }), function(){
1138 deferred.reject("Cannot find an app wiht AppID "+appId);
1139 };
1140 }
1141 }, function(error) {
1142 deferred.reject(error);
1143 });
1144 }
1145 } catch (err) {
1146 winston.log('error', {
1147 "error": String(err),
1148 "stack": new Error().stack
1149 });
1150 deferred.reject(err);
1151 }
1152
1153 return deferred.promise;
1154}
1155
1156function _encrypt(data, encryption_key) {
1157 try {

Callers 4

findFunction · 0.85
countFunction · 0.85
distinctFunction · 0.85
findOneFunction · 0.85

Calls 2

_getSchemaFunction · 0.85
_recursiveModifyQueryFunction · 0.85

Tested by

no test coverage detected