Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- async = require 'async'
- mongodb = require 'mongodb'
- oid = (id) ->
- new mongodb.ObjectID(id.toString())
- getCollection = (db, name) -> (callback) ->
- db.collection(name, {safe:yes}, callback)
- findById = (id) -> (callback, {demandesColl}) ->
- query = {_id: oid(id)}
- demandesColl.findOne(query, fieldsNotShown, callback)
- checkStatusHistory = (callback, {demande}) ->
- if not demande
- callback({code:404})
- else if demande.statusHistory[0].status not in ["en-attente", "incomplet"]
- callback({code:403})
- else
- callback()
- doUpdate = (changes) -> (callback, {demandesColl, demande}) ->
- query =
- "$set": changes
- "$addToSet":
- changeHistory:
- timestamp: new Date()
- changes: changes
- demandesColl.update({_id: demande._id}, query, {safe:yes}, callback)
- module.exports.createService = (db) ->
- update: (id, changes, callback) ->
- tasks =
- demandesColl: getCollection(db, 'demandes')
- demande: ['demandesColl', findById(id)]
- statusHistory: ['demande', checkStatusHistory]
- update: ['demandesColl', 'demande', doUpdate(changes)]
- async.auto tasks, (err) ->
- callback(err)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement