Skip to content

Commit

Permalink
fix merge conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
vamsee committed Jan 14, 2019
2 parents 6c22b6a + 1214bf0 commit 0c3613e
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 119 deletions.
4 changes: 4 additions & 0 deletions common/mixins/switch-datasource-mixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
var logger = require('oe-logger');
var log = logger('switch-datasource-mixin');
var appinstance = require('../../server/server.js').app;
var versionMixin = require('./version-mixin.js');

function getScopeMatchedDS(model, list, scope) {
var matchedds;
Expand Down Expand Up @@ -225,6 +226,9 @@ module.exports = function SwitchDatasourceMixin(model) {
if (ds) {
// console.log('switch datasource ', modelName, ds.settings.name);
model.attachTo(ds);
if (model.settings.mixins.VersionMixin) {
model.switchVersion = versionMixin.switchVersion;
}
return ds;
}
}
Expand Down
108 changes: 56 additions & 52 deletions common/mixins/version-mixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,59 @@

var uuidv4 = require('uuid/v4');

function versionMixinBeforeSave(ctx, next) {
// if (Model.modelName !== ctx.Model.modelName) {
// return next();
// }
var data = ctx.data || ctx.instance;
var error;
if (ctx.isNewInstance) {
data._version = data._newVersion || data._version || uuidv4();
delete data._oldVersion;
delete data._newVersion;
} else if (ctx.currentInstance) {
if (ctx.currentInstance.__remoteInvoked) {
if (!data._version) {
error = new Error();
error.name = 'Data Error';
error.message = 'current version must be specified in _version field';
error.code = 'DATA_ERROR_071';
error.type = 'DataModifiedError';
error.retriable = false;
error.status = 422;
return next(error);
}
}
var version = data._version || ctx.currentInstance._version;
if (data._newVersion && data._newVersion === version) {
error = new Error();
error.name = 'Data Error';
error.message = 'current version and new version must be different';
error.code = 'DATA_ERROR_071';
error.type = 'DataModifiedError';
error.retriable = false;
error.status = 422;
return next(error);
}
if (version.toString() !== ctx.currentInstance._version.toString()) {
error = new Error();
error.name = 'Data Error';
error.message = 'No record with version specified';
error.code = 'DATA_ERROR_071';
error.type = 'DataModifiedError';
error.retriable = false;
error.status = 422;
return next(error);
}
data._oldVersion = version;
data._version = data._newVersion || uuidv4();
delete data._newVersion;
}
// TODO replaceById will have ctx.instance, and not
// ctx.currentinstance, need to analyze that
next();
};

module.exports = function VersionMixin(Model) {
if (Model.modelName === 'BaseEntity') {
return;
Expand Down Expand Up @@ -56,58 +109,7 @@ module.exports = function VersionMixin(Model) {
next();
});

Model.switchVersion = function versionMixinBeforeSave(ctx, next) {
// if (Model.modelName !== ctx.Model.modelName) {
// return next();
// }
var data = ctx.data || ctx.instance;
var error;
if (ctx.isNewInstance) {
data._version = data._newVersion || data._version || uuidv4();
delete data._oldVersion;
delete data._newVersion;
} else if (ctx.currentInstance) {
if (ctx.currentInstance.__remoteInvoked) {
if (!data._version) {
error = new Error();
error.name = 'Data Error';
error.message = 'current version must be specified in _version field';
error.code = 'DATA_ERROR_071';
error.type = 'DataModifiedError';
error.retriable = false;
error.status = 422;
return next(error);
}
}
var version = data._version || ctx.currentInstance._version;
if (data._newVersion && data._newVersion === version) {
error = new Error();
error.name = 'Data Error';
error.message = 'current version and new version must be different';
error.code = 'DATA_ERROR_071';
error.type = 'DataModifiedError';
error.retriable = false;
error.status = 422;
return next(error);
}
if (version.toString() !== ctx.currentInstance._version.toString()) {
error = new Error();
error.name = 'Data Error';
error.message = 'No record with version specified';
error.code = 'DATA_ERROR_071';
error.type = 'DataModifiedError';
error.retriable = false;
error.status = 422;
return next(error);
}
data._oldVersion = version;
data._version = data._newVersion || uuidv4();
delete data._newVersion;
}
// TODO replaceById will have ctx.instance, and not
// ctx.currentinstance, need to analyze that
next();
};
Model.switchVersion = versionMixinBeforeSave;

// lock current _version
Model.evObserve('persist', function versionMixinPersistsFn(ctx, next) {
Expand Down Expand Up @@ -143,3 +145,5 @@ module.exports = function VersionMixin(Model) {
}
});
};

module.exports.switchVersion = versionMixinBeforeSave;
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "oe-cloud",
"version": "1.7.0",
"version": "1.7.1",
"main": "server/server.js",
"engines": {
"node": ">=6.9.0"
Expand Down
66 changes: 0 additions & 66 deletions server/boot/createAppUser.js

This file was deleted.

0 comments on commit 0c3613e

Please sign in to comment.