Advertisement
Guest User

Untitled

a guest
May 4th, 2015
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. async = require 'async'
  2. mongodb = require 'mongodb'
  3.  
  4. oid = (id) ->
  5. new mongodb.ObjectID(id.toString())
  6.  
  7. getCollection = (db, name) -> (callback) ->
  8. db.collection(name, {safe:yes}, callback)
  9.  
  10. findById = (id) -> (callback, {demandesColl}) ->
  11. query = {_id: oid(id)}
  12. demandesColl.findOne(query, fieldsNotShown, callback)
  13.  
  14. checkStatusHistory = (callback, {demande}) ->
  15. if not demande
  16. callback({code:404})
  17. else if demande.statusHistory[0].status not in ["en-attente", "incomplet"]
  18. callback({code:403})
  19. else
  20. callback()
  21.  
  22. doUpdate = (changes) -> (callback, {demandesColl, demande}) ->
  23. query =
  24. "$set": changes
  25. "$addToSet":
  26. changeHistory:
  27. timestamp: new Date()
  28. changes: changes
  29. demandesColl.update({_id: demande._id}, query, {safe:yes}, callback)
  30.  
  31.  
  32. module.exports.createService = (db) ->
  33.  
  34. update: (id, changes, callback) ->
  35. tasks =
  36. demandesColl: getCollection(db, 'demandes')
  37. demande: ['demandesColl', findById(id)]
  38. statusHistory: ['demande', checkStatusHistory]
  39. update: ['demandesColl', 'demande', doUpdate(changes)]
  40. async.auto tasks, (err) ->
  41. callback(err)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement