Socket
Socket
Sign inDemoInstall

cmbf-hapi-restmodel

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cmbf-hapi-restmodel - npm Package Compare versions

Comparing version 0.2.1 to 0.3.0

69

lib/base-model.js

@@ -71,11 +71,19 @@ var Joi = require('joi'),

static list() {
log.debug("List "+BaseModel.name);
static list(options) {
log.debug("list %s", BaseModel.name);
options = options || {};
var coll = BaseModel.collection;
var cursor = coll.find();
return P.promisify(cursor.toArray, cursor)();
var cursor = coll.find(options.filter);
return P.promisify(cursor.toArray, cursor)().then(function(results) {
if(options.wrap) {
return P.map(results, function(r){ return BaseModel.wrap(r)});
}
else {
return results;
}
});
}
static show(id) {
log.debug("show "+BaseModel.name, id);
log.debug("show %s ", BaseModel.name, id);
var _this = this;

@@ -88,4 +96,15 @@ var coll = BaseModel.collection;

static create(data) {
var val = Joi.validate(data || {}, BaseModel.Schema);
static wrap(data) {
if(data instanceof BaseModel)
return BaseModel.create(data);
else
return data;
}
save(data, options) {
data = data || this;
log.debug("Save", data.id || this.id);
options = options || {upsert: false};
var coll = BaseModel.collection;
var val = Joi.validate(data, BaseModel.Schema);
if(val.error) {

@@ -95,21 +114,16 @@ throw val.error;

else {
return new BaseModel(val.value);
// Update our internal values
_.assign(this, val.value);
return P.promisify(coll.update, coll)({id: this.id}, {$set: _.omit(val.value, 'id') }, { multi: false, upsert: options.upsert});
}
}
static wrap(data) {
if(typeof data !== BaseModel.name)
return BaseModel(data);
else
return data;
}
save(data) {
log.debug("Save "+BaseModel.name, this.id);
static remove(id) {
log.debug("Remove", id);
var coll = BaseModel.collection;
return P.promisify(coll.update, coll)({id: this.id}, {$set: data }, { multi: false, upsert: true});
return P.promisify(coll.removeOne, coll)({id: id});
}
remove() {
log.debug("Remove "+BaseModel.name, this.id);
log.debug("Remove", this.id);
var coll = BaseModel.collection;

@@ -119,2 +133,19 @@ return P.promisify(coll.removeOne, coll)({id: this.id});

toJSON() {
var val = Joi.validate(this, BaseModel.Schema);
if(val.error) {
throw val.error;
}
else {
return val.value;
}
};
isUnique() {
var coll = BaseModel.collection;
return P.promisify(coll.findOne, coll)({id: this.id}).then(function(existing) {
return !existing;
});
};
}

@@ -121,0 +152,0 @@

@@ -1,4 +0,2 @@

var Calibrate = require('calibrate'),
Boom = require('boom'),
P = require('bluebird');
var Calibrate = require('calibrate');

@@ -5,0 +3,0 @@ module.exports = function(server, config, log) {

@@ -19,2 +19,4 @@ var P = require('bluebird'),

log.debug("Generating routes for model %s", Model);
var endpoint = "/";

@@ -21,0 +23,0 @@ if(Model.endpoint_prefix) {

{
"name": "cmbf-hapi-restmodel",
"version": "0.2.1",
"version": "0.3.0",
"dependencies": {

@@ -5,0 +5,0 @@ "bluebird": "^3.0.6",

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