Socket
Socket
Sign inDemoInstall

nis-model

Package Overview
Dependencies
54
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.20 to 0.6.21

24

lib/datasources/ElasticSearch.js

@@ -54,8 +54,13 @@ 'use strict';

// parsing
resourceListKey:'hits.hits', // list of resources - if there is no wrapper in response object, so data is resource, resourceKey:'this'
resourceKey:'_source', // single resource data - if there is no wrapper in response object, so data is resource, resourceKey:'this'
idKey:'id', // key of id, sometimes id is represented by another key, like "_id", or "productId"
countKey:'hits.total', // if response contains count
errorKey:'error', // if response status !== 200, parse errors
dataKey: 'this', // data key, if data is property of response object, e.g. { data:..., status:...}
resourceListKey: 'hits.hits', // list of resources - if there is no wrapper in response object, data is resource, resourceListKey:'this'
resourceKey: '_source', // single resource data - if there is no wrapper in response object, data is resource, resourceKey:'this'
idKey: 'id', // key of id, sometimes id is represented by another key, like "_id", or "productId"
countKey: 'hits.total', // if response contains count
errorKey: 'error', // if response status !== 200, parse errors
keys:{
'aggregations':'aggregations'
},
// CRUD defaults

@@ -188,7 +193,7 @@ one:{

for(var fieldKey in defaults.options.fields){
if(defaults.options.fields[fieldKey] === 1 && fieldKey !== 'id'){
if(defaults.options.fields[fieldKey] && fieldKey !== 'id'){
elasticQuery._source.include = elasticQuery._source.include || [];
elasticQuery._source.include.push(fieldKey);
}
else if(defaults.options.fields[fieldKey] === -1 && fieldKey !== 'id') {
else if(!defaults.options.fields[fieldKey] && fieldKey !== 'id') {
elasticQuery._source.exclude = elasticQuery._source.exclude || [];

@@ -219,3 +224,3 @@ elasticQuery._source.exclude.push(fieldKey);

}
//console.warn(elasticQuery);
return elasticQuery;

@@ -241,3 +246,2 @@ };

//console.warn(method, url, JSON.stringify(query), JSON.stringify(body));
var req = request(method, url).set(headers).query(query);

@@ -261,3 +265,2 @@ if(body) req.send(body);

//console.warn(url, reqData, defaults.query.id, defaults.connection.command);
return url;

@@ -315,3 +318,2 @@ };

throw new Error('ElasticSearchDataSource: Cannot ensure ElasticSearch mappings "' +indexUrl +'/'+ type +'/_mapping'+ '" ' + JSON.stringify(err || res.body || ''));
//console.warn(data, JSON.stringify(mapping));
}

@@ -318,0 +320,0 @@ else {

@@ -33,4 +33,5 @@ 'use strict';

// parsing
resourceListKey:'data', // list of resources - if there is no wrapper in response object, so data is resource, resourceKey:'this'
resourceKey:'data', // single resource data - if there is no wrapper in response object, so data is resource, resourceKey:'this'
dataKey:'data', // data key, if data is property of response object, e.g. { data:..., status:...}
resourceListKey: 'this', // list of resources - if there is no wrapper in response object, data is resource, resourceListKey:'this'
resourceKey: 'this', // single resource data - if there is no wrapper in response object, data is resource, resourceKey:'this'
idKey:'id', // key of id, sometimes id is represented by another key, like "_id", or "productId"

@@ -40,6 +41,11 @@ countKey:'pagination.count', // if response contains count

// aditional data to map to result - will be added only if it is defined in response
keys:{
// 'data.max_score':'maxScore' - example result of "one" { id:..., maxScore:24 }, or "all" [{ id:... }, { id:... }].maxScore = 24
},
// CRUD defaults
one:{
method:'GET',
// idKey, resourceKey, resourceListKey, errorKey, countKey // replace default resourceKey
// idKey, dataKey, resourceKey, resourceListKey, errorKey, countKey // replace default resourceKey
// headers:{} extends default headers

@@ -166,3 +172,3 @@ },

query = ModelCnst.buildQuery(defaults, reqData),
body = ModelCnst.buildQuery(defaults, reqData);
body = ModelCnst.buildBody(defaults, reqData);

@@ -180,9 +186,16 @@ var req = request(method, url).set(headers).query(query);

// if requested single resource
Rest.addMethod('parseResource', function(defaults, resStatus, resData){
Rest.addMethod('parseResource', function(defaults, resStatus, resData, resource){
var dataKey = (defaults.connection[ defaults.connection.command ]||{}).dataKey || defaults.connection.dataKey || '';
var resourceKey = (defaults.connection[ defaults.connection.command ]||{}).resourceKey || defaults.connection.resourceKey;
var idKey = (defaults.connection[ defaults.connection.command ]||{}).idKey || defaults.connection.idKey;
var resource = object.getValue(resData, resourceKey);
if(resource){
resource = object.getValue(resource, resourceKey);
}
else if(resData){
var data = object.getValue(resData, dataKey);
resource = object.getValue(data, resourceKey);
}
if(resource) resource.id = object.getValue(resource, idKey);
return resource;

@@ -192,13 +205,14 @@ });

// if requested list of resources
Rest.addMethod('parseResourceList', function(defaults, resStatus, resData){
Rest.addMethod('parseResourceList', function(defaults, resStatus, resData, resources){
var ModelCnst = this;
var dataKey = (defaults.connection[ defaults.connection.command ]||{}).dataKey || defaults.connection.dataKey || '';
var resourceListKey = (defaults.connection[ defaults.connection.command ]||{}).resourceListKey || defaults.connection.resourceListKey;
var resourceKey = (defaults.connection[ defaults.connection.command ]||{}).resourceKey || defaults.connection.resourceKey;
var data = object.getValue(resData, resourceListKey);
var data = resources || object.getValue(resData, dataKey);
if(resourceListKey) data = object.getValue(data, resourceListKey);
var list = [];
if(Array.isArray(data)) for(var i=0;i<data.length;i++){
list.push(ModelCnst.parseResource(defaults, resStatus, data[i]));
list.push(ModelCnst.parseResource(defaults, resStatus, null, data[i]));
}

@@ -221,2 +235,13 @@ return list;

// if responce contains count
Rest.addMethod('parseKeys', function(defaults, resStatus, resData, parsedData){
var keys = (defaults.connection[ defaults.connection.command ]||{}).keys || defaults.connection.keys || {};
var value;
for(var key in keys){
value = object.getValue(resData, key);
if(value !== undefined) object.setValue(parsedData, keys[key], value);
}
return parsedData;
});

@@ -290,2 +315,3 @@ /*

var count = ModelCnst.parseCount(defaults, res.status, res.body);
data = ModelCnst.parseKeys(defaults, res.status, res.body, data);
done(null, data, count);

@@ -340,2 +366,4 @@ }

allItems = ModelCnst.parseKeys(defaults, res.status, res.body, items);
if(!Array.isArray(items)) done(null, allItems, count); // items is not array, maybe request to single resource, or cannot get items data

@@ -348,3 +376,2 @@ else if(!defaults.options.autoPaging) done(null, allItems, count); // auto pagign is disabled

else {
// autoPaging - get next page

@@ -351,0 +378,0 @@ defaults.options.skip = readItemsCount;

{
"name": "nis-model",
"preferGlobal": false,
"version": "0.6.20",
"version": "0.6.21",
"author": "NIS - Matus Szabo <hello@nowitssimple.com>",

@@ -6,0 +6,0 @@ "description": "Advanced, database agnostic ODM",

@@ -52,2 +52,5 @@ 'use strict';

// default timeout to wait for elasticsearch to ensure data will be indexed
var timeout = 2000;
/*

@@ -107,3 +110,3 @@ * helper for comparing data, because createDT and modifiedDT will be different

console.log('ElasticSearchDataSource: collection.remove all - OK');
setTimeout(next, 1100);
setTimeout(next, timeout);
});

@@ -141,3 +144,3 @@ });

});
}, 1100);
}, timeout);
});

@@ -171,2 +174,3 @@

// TODO: test exec method
// exec

@@ -218,3 +222,3 @@ //s.add(function(next){

});
},1100);
}, timeout);
});

@@ -237,3 +241,3 @@ });

});
}, 1100);
}, timeout);
});

@@ -297,3 +301,3 @@ });

console.log('ElasticSearchDataSource: instance.create - OK');
setTimeout(next, 1100);
setTimeout(next, timeout);
});

@@ -316,3 +320,3 @@ });

console.log('ElasticSearchDataSource: instance.update - OK');
setTimeout(next, 1100);
setTimeout(next, timeout);
});

@@ -345,3 +349,3 @@ });

});
}, 1100);
}, timeout);
});

@@ -348,0 +352,0 @@ });

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc