Skip to content

Instantly share code, notes, and snippets.

@bajtos
Last active August 29, 2015 14:07
Show Gist options
  • Save bajtos/6a398a8c35ef802a95b3 to your computer and use it in GitHub Desktop.
Save bajtos/6a398a8c35ef802a95b3 to your computer and use it in GitHub Desktop.
Auto-generated id property with a custom getter function
var jdb = require('./');
var ModelBuilder = jdb.ModelBuilder;
var DataSource = jdb.DataSource;
var Memory = require('./lib/connectors/memory');
var assert = require('assert');
var ID = 'custom-generated-id';
var memory = new DataSource({connector: Memory});
var modelBuilder = memory.modelBuilder;
var BuggyModel = modelBuilder.define('BuggyModel', {
id: {type: String, generated: true, id: true},
});
BuggyModel.getter.id = function() { return ID; };
/** test code simulating test/change.test.js **/
BuggyModel.attachTo(memory);
var ch = new BuggyModel({ id: ID });
ch.save(function(err, saved) {
if (err) throw err;
console.log('saved', saved);
assert.equal(ID, saved.id);
BuggyModel.findById(ID, function(err, found) {
if (err) throw err;
console.log('found', found);
assert.equal(ID, found.id);
});
});
var loopback = require('./');
var assert = require('assert');
var ID = 'custom-generated-id';
/** based on loopback.Change **/
var BuggyModel = loopback.createModel('BuggyModel', {
id: {type: String, generated: true, id: true},
});
BuggyModel.setup = function() {
BuggyModel.base.setup.call(this);
BuggyModel.getter.id = function() { return ID; };
}
BuggyModel.setup();
/** test code simulating test/change.test.js **/
var memory = loopback.memory();
BuggyModel.attachTo(memory);
var ch = new BuggyModel({ id: ID });
ch.save(function(err, saved) {
if (err) throw err;
console.log('saved', saved);
assert.equal(ID, saved.id);
BuggyModel.findById(ID, function(err, found) {
if (err) throw err;
console.log('found', found);
assert.equal(ID, found.id);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment