Skip to content

Instantly share code, notes, and snippets.

View thebergamo's full-sized avatar
🤟

Marcos Bérgamo thebergamo

🤟
View GitHub Profile
@thebergamo
thebergamo / index.spec.js
Created December 6, 2015 01:57
Common bootstrap tests
'use strict';
// load deps
let lab = exports.lab = require('lab').script();
global.expect = require('chai').expect;
// prepare environment
global. it = lab.it;
global.describe = lab.describe;
global.before = lab.before;
global.beforeEach = lab.beforeEach;
@thebergamo
thebergamo / nodebr.md
Created December 5, 2015 16:09
NodeBR Contacts
@thebergamo
thebergamo / user.js
Created December 4, 2015 16:47
New users controller - get method
// [GET] /user/{id}
UserController.prototype.get = function (request, reply) {
let id = request.params.id;
this.model.findOneAsync({_id: id})
.then((user) => {
if (!user) {
return reply.notFound('User not found for the id: '+id);
}
@thebergamo
thebergamo / decorate.js
Created December 4, 2015 16:44
Decorate plugin
'use strict';
const Boom = require('boom');
exports.register = register;
exports.register.attributes = {
name: 'reply-decorates',
version: '1.0.0'
};
@thebergamo
thebergamo / user.js
Created December 4, 2015 16:43
Users Controller - Get method
// [GET] /user/{id}
UserController.prototype.get = function (request, reply) {
let id = request.params.id;
this.model.findOneAsync({_id: id})
.then((user) => {
if (!user) {
reply(Boom.notFound());
return;
}
@thebergamo
thebergamo / decorates.js
Last active December 4, 2015 16:36
Hapi's Decorate
'use strict';
const Boom = require('boom');
exports.register = register;
exports.register.attributes = {
name: 'reply-decorates',
version: '1.0.0'
};
@thebergamo
thebergamo / interval.js
Created September 22, 2015 23:39
Interval
var date = require('date.js');
var moment = require('moment');
function buildInterval(interval) {
ret = date(interval);
return millisecondsTo(ret);
function millisecondsTo(date) {
date = moment(date).diff(moment());
var self = this;
return Promise
.bind(this)
.return(_.filter(data, 'to'))
.map(function(email){
var rawEmail = new this.sendgrid.Email({
to: email['to'],
from: raw['from'],
subject: raw['subject'],
Promise
.bind(this)
.tap([1, 2, 4])
.each(function(item){
return new Promise(function(resolve, reject){
someAsyncFn(item, function(err, data){
if(err) reject(err);
resolve(data);
});
@thebergamo
thebergamo / beforeEvent.js
Last active August 29, 2015 14:24
BeforeEvent
var Inflector = require('inflected');
module.exports = function(emitter){
var oldEmitter = emitter.emit;
emitter.emit = function(){
var event = Inflector.camelize('before_' + arguments[0], false);
var args = Array.prototype.slice.call(arguments);
oldEmitter.apply(emitter, [event].concat(args));