Skip to content

Instantly share code, notes, and snippets.

View cadecairos's full-sized avatar

Christopher DeCairos cadecairos

View GitHub Profile
var BulkPayloadSchema: {
actions: Joi.array().required().items(
Joi.object().keys({
type: Joi.string().valid('projects', 'pages', 'elements').required(),
method: Joi.string().valid('create', 'update', 'remove').required(),
data: Joi.object().keys({
id: numericSchema.when('method', {
is: 'create',
then: Joi.forbidden(),
otherwise: Joi.required()
server.method('projects.remix', function(userId, dataToRemix, done) {
var remixedProject;
var remixedPages;
var remixedElements;
var transaction;
var transactionErr;
getTransactionClient().then(function(t) {
transaction = t;
return begin(transaction);
@cadecairos
cadecairos / wat.js
Created June 8, 2015 19:13
Holy Promises, Watman
server.method('projects.remix', function(userId, remixData, done) {
var project;
var transaction;
var transactionErr;
getTransactionClient().then(function(t) {
transaction = t;
return begin(transaction);
}).then(function() {
return executeTransaction(transaction, queries.projects.create,
var db = require('./dbInterface');
exports = function(server, options, done) {
server.method('getResource', function(resourceId, next) {
db.find({
id: resourceId
}, function(err, data) {
if(err) {
return next(err);
}
var Joi = require('joi');
exports = {
path: '/foo/{bar}',
method: 'post',
config: {
validate: {
params: {
// only allow integers between 5 and 10 (inclusive)
bar: Joi.number().integer().min(5).max(10)
exports = function(server, options, done) {
server.method('add', function(a, b) {
return a + b;
}, {
callback: false
});
done();
};
exports.attributes = {
@cadecairos
cadecairos / inject.js
Last active August 29, 2015 14:22
Using Hapi's inject function
// https://www.npmjs.com/package/lab
var Lab = require('lab'),
lab = exports.lab = Lab.script(),
experiment = lab.experiment,
before = lab.before,
after = lab.after,
test = lab.test,
// https://www.npmjs.com/package/code
expect = require('code').expect,
server;
@cadecairos
cadecairos / dataRoute.js
Last active August 29, 2015 14:22
route configuration example
var dataHandler = require('./dataHandler');
var prerequisites = require('./prerequisites');
exports = {
path: '/data',
method: 'get',
handler: dataHandler,
config: {
pre: [
prerequisites.doSomething

Thimble

  • id
  • userid
  • url
  • remixedFrom (url)
  • rawData (html)
  • sanitizedData (html)
  • makeid
  • title

Keybase proof

I hereby claim:

  • I am cadecairos on github.
  • I am cadecairos (https://keybase.io/cadecairos) on keybase.
  • I have a public key whose fingerprint is B784 E842 6DD6 A1BE CA63 E6CE E180 AA38 FD26 6BA3

To claim this, I am signing this object: