New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ee-soa-service

Package Overview
Dependencies
Maintainers
2
Versions
176
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ee-soa-service - npm Package Compare versions

Comparing version 0.2.3 to 0.2.4

10

lib/DefaultController.js

@@ -16,3 +16,3 @@

this.controllerActions = ['list', 'listOne', 'create', 'createOrUpdate', 'createRelation', 'update', 'delete', 'describe'];
this.controllerActions = ['list', 'listOne', 'create', 'createOrUpdate', 'createRelation', 'update', 'updateRelation', 'delete', 'deleteRelation', 'describe'];

@@ -48,2 +48,6 @@ process.nextTick(function() {

, updateRelation: function(queryData, callback) {
callback(new Error("updateRelation action not implemented on controller"));
}
, delete: function(queryData, callback) {

@@ -53,2 +57,6 @@ callback(new Error("delete action not implemented on controller"));

, deleteRelation: function(queryData, callback) {
callback(new Error("deleteRelation action not implemented on controller"));
}
, describe: function(queryData, callback) {

@@ -55,0 +63,0 @@ callback(new Error("describe action not implemented on controller"));

@@ -705,18 +705,71 @@

, update: function(queryData, callback, baseQuery) {
this._getSingleModel(queryData, baseQuery, function(err, data) {
if(!queryData.hasResourceId()) return callback(new Error('no resourceId provided!'));
// UPDATE RESOURCE
if(!queryData.hasRelatedTo()) {
this._getSingleModel(queryData, baseQuery, function(err, data) {
if(err) return callback(err);
if(data) {
queryData.getContent(function(err, content) {
if(err) return callback(err);
if(!content) return callback(new Error('[' + this.table + '] no content in request provided!'));
if(Object.hasOwnProperty.call(content, 'undefined')) return callback(new Error('[' + this.table + '] try to set variable "undefined"!'));
Object.keys(content).forEach(function(fieldName) {
data[fieldName] = content[fieldName];
}.bind(this));
data.save(function(err, record) {
if(err) return callback(err);
this.listOne(queryData, callback);
}.bind(this));
}.bind(this));
}
else {
callback(err, null, 26);
}
}.bind(this));
}
// UPDATE RELATIONS
else {
this.updateRelation(queryData, callback, baseQuery);
}
}
// ONE CAN ONLY UPDATE MAPPING RELATIONS WITH DATA
, updateRelation: function(queryData, callback, baseQuery) {
queryData.getContent(function(err, content) {
if(err) return callback(err);
if(!content) return callback(new Error('[' + this.table + '] no content in request provided!'));
if(Object.hasOwnProperty.call(content, 'undefined')) return callback(new Error('[' + this.table + '] try to set variable "undefined"!'));
if(data) {
queryData.getContent(function(err, content) {
var id = queryData.getResourceId();
var withModel = queryData.getRelatedTo().model;
var referenceId = queryData.getRelatedTo().id;
if(!id || !withModel || !referenceId) {
return callback(new Error('[' + this.table + '] resource id || relatedTo model || relatedTo id => not provided!'));
}
//mapping
if(Object.hasOwnProperty.call(this.specs.hasMany, withModel)) {
var idFilter = {};
idFilter[this.specs.hasMany[withModel].table[this.table]] = id;
idFilter[this.specs.hasMany[withModel].table[withModel]] = referenceId;
this.root[this.specs.hasMany[withModel].table.name](['*'], idFilter).findOne(function(err, mapping) {
if(err) return callback(err);
if(!content) return callback(new Error('[' + this.table + '] no content in request provided!'));
if(!mapping) return callback(new Error('relation not found'));
Object.keys(content).forEach(function(fieldName) {
data[fieldName] = content[fieldName];
mapping[fieldName] = content[fieldName];
}.bind(this));
data.save(function(err, record) {
mapping.save(function(err, result) {
if(err) return callback(err);
this.listOne(queryData, callback);
callback(null, mapping);
}.bind(this));

@@ -727,5 +780,6 @@

else {
callback(err, null, 26);
}
}.bind(this));
callback(new Error('relation is no mapping!'));
}
}.bind(this));
}

@@ -738,5 +792,19 @@

if(!queryData.hasRelatedTo()) {
(baseQuery || this.rootQuery)({id: queryData.getResourceId()}).limit(1).delete(function(err) {
callback(err);
this._getSingleModel(queryData, baseQuery, function(err, data) {
if(err) return callback(err);
if(data) {
data.delete(function(err) {
if(err) return callback(err);
callback(null, data);
}.bind(this));
}
else {
callback(err, null, 26);
}
}.bind(this));
// (baseQuery || this.rootQuery)({id: queryData.getResourceId()}).delete(function(err) {
// callback(err);
// }.bind(this));
}

@@ -762,3 +830,3 @@ // DELETE RELATIONS

if(err) return callback(err, data);
if(!data) return callback(new Error('relation not found'), null);
if(!data) return callback(new Error('relation not found'));

@@ -783,3 +851,3 @@ data[withModel] = null;

if(err) return callback(err);
if(!data) return callback(new Error('relation not found'), null);
if(!data) return callback(new Error('relation not found'));

@@ -805,3 +873,3 @@ data[this.specs.belongsTo[withModel].targetColumn] = null;

if(err) return callback(err);
if(!mapping) return callback(new Error('relation not found'), null);
if(!mapping) return callback(new Error('relation not found'));

@@ -808,0 +876,0 @@ mapping.delete(function(err) {

3

lib/DefaultService.js

@@ -146,3 +146,4 @@

if((action === 'create' || action === 'update' || action === 'createOrUpdate') && req.hasRelatedTo()) {
// TODO: move to DefaultORMController
if((action === 'create' || action === 'createOrUpdate') && req.hasRelatedTo()) {
action = 'createRelation';

@@ -149,0 +150,0 @@ }

@@ -5,3 +5,3 @@ {

, "keywords" : ["ee", "soa", "service"]
, "version" : "0.2.3"
, "version" : "0.2.4"
, "author": {

@@ -8,0 +8,0 @@ "name" : "Tobias Kneubuehler"

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc