Skip to content

Instantly share code, notes, and snippets.

@59naga
Last active August 29, 2015 14:20
Show Gist options
  • Save 59naga/920b5a0d414d391f5ac4 to your computer and use it in GitHub Desktop.
Save 59naga/920b5a0d414d391f5ac4 to your computer and use it in GitHub Desktop.
epilogue all hooks. When exists context.instance?
$ coffee app.coffee
Executing (default): DROP TABLE IF EXISTS `Users`;
Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER NOT NULL auto_increment , `name` VARCHAR(255), `birthday` DATETIME, `author` INTEGER, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `deletedAt` DATETIME, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;
Executing (default): SHOW INDEX FROM `Users`
listening at 59798
list.start.before undefined
list.start.action undefined
list.start.after undefined
list.auth.before undefined
list.auth.action undefined
list.auth.after undefined
list.fetch.before undefined
Executing (default): SELECT count(*) AS `count` FROM `Users` AS `User` WHERE `User`.`deletedAt` IS NULL;
list.fetch.action object
list.fetch.after object
list.data.before object
list.data.action object
list.data.after object
list.write.before object
list.write.action object
list.write.after object
list.send.before object
list.send.action object
list.send.after object
list.complete.before object
list.complete.action object
list.complete.after object
create.start.before undefined
create.start.action undefined
create.start.after undefined
create.auth.before undefined
create.auth.action undefined
create.auth.after undefined
create.fetch.before undefined
create.fetch.action undefined
create.fetch.after undefined
create.data.before undefined
create.data.action undefined
create.data.after undefined
create.write.before undefined
Executing (default): INSERT INTO `Users` (`id`,`name`,`updatedAt`,`createdAt`) VALUES (DEFAULT,'fdsafewa','2015-04-30 05:43:33','2015-04-30 05:43:33');
create.write.action object
create.write.after object
create.send.before object
create.send.action object
create.send.after object
create.complete.before object
create.complete.action object
create.complete.after object
update.start.before undefined
update.start.action undefined
update.start.after undefined
update.auth.before undefined
update.auth.action undefined
update.auth.after undefined
update.fetch.before undefined
Executing (default): SELECT `id`, `name`, `birthday`, `author`, `createdAt`, `updatedAt`, `deletedAt` FROM `Users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`id` = '1');
update.fetch.action object
update.fetch.after object
update.data.before object
update.data.action object
update.data.after object
update.write.before object
Executing (default): UPDATE `Users` SET `name`='fda',`updatedAt`='2015-04-30 05:43:43' WHERE `id` = 1
update.write.action object
update.write.after object
update.send.before object
update.send.action object
update.send.after object
update.complete.before object
update.complete.action object
update.complete.after object
read.start.before undefined
read.start.action undefined
read.start.after undefined
read.auth.before undefined
read.auth.action undefined
read.auth.after undefined
read.fetch.before undefined
Executing (default): SELECT `id`, `name`, `birthday`, `author`, `createdAt`, `updatedAt`, `deletedAt` FROM `Users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`id` = '1');
read.fetch.action object
read.fetch.after object
read.data.before object
read.data.action object
read.data.after object
read.write.before object
read.write.action object
read.write.after object
read.send.before object
read.send.action object
read.send.after object
read.complete.before object
read.complete.action object
read.complete.after object
delete.start.before undefined
delete.start.action undefined
delete.start.after undefined
delete.auth.before undefined
delete.auth.action undefined
delete.auth.after undefined
delete.fetch.before undefined
Executing (default): SELECT `id`, `name`, `birthday`, `author`, `createdAt`, `updatedAt`, `deletedAt` FROM `Users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`id` = '1');
delete.fetch.action object
delete.fetch.after object
delete.data.before object
delete.data.action object
delete.data.after object
delete.write.before object
Executing (default): UPDATE `Users` SET `deletedAt`='2015-04-30 05:43:51',`updatedAt`='2015-04-30 05:43:51' WHERE `id` = 1
delete.write.action object
delete.write.after object
delete.send.before object
delete.send.action object
delete.send.after object
delete.complete.before object
delete.complete.action object
delete.complete.after object
epilogue= require './modules'
{sequelize}= epilogue
{User}= sequelize.models
users= epilogue.resource
model: User
endpoints: [
'/users'
'/users/:id'
]
allHooks= {}
controllers= ['create','list','read','update','delete']
behaviors= ['start','auth','fetch','data','write','send','complete']
hooks= ['before','action','after']
for controller in controllers
for behavior in behaviors
for hook in hooks
allHooks[controller]?= {}
allHooks[controller][behavior]?= {}
allHooks[controller][behavior][hook]= do (controller,behavior,hook)->
(req,res,context)->
console.log '%s.%s.%s',controller,behavior,hook,typeof context.instance
context.continue
users.use allHooks
# Dependencies
Sequelize= require 'sequelize'
express= require 'express'
session= require 'express-session'
bodyParser= require 'body-parser'
epilogue= require 'epilogue'
# Environment
port= 59798
# Setup sequelize
sequelize= new Sequelize 'test','root',null,
host: '192.168.59.103'
port: '3306'
define:
charset:'utf8'
collate:'utf8_general_ci'
# logging: off
User= sequelize.define 'User',
name: Sequelize.STRING
birthday: Sequelize.DATE
author: Sequelize.INTEGER
,
paranoid: yes
sequelize
.sync force: on
.then -> appBoot()
# Setup express
i= 0
app= express()
app.use session
secret:'keyboard cat'
resave: yes
saveUninitialized: yes
app.use bodyParser.json()
app.use (req,res,next)->
req.session.i?= i++
next()
app.use express.static './public'
appBoot= ->
app.listen port,->
console.log 'listening at %s',port
# Setup epilogue
epilogue.initialize {sequelize,app}
module.exports= epilogue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment