Guest User

Untitled

a guest
Jun 14th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. (load "NuMongoDB")
  2. (load "NuJSON")
  3.  
  4. (post "/reset"
  5. (set mongo (NuMongoDB new))
  6. (set connected (mongo connectWithOptions:nil))
  7. (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
  8. (mongo dropCollection:"users" inDatabase:"stickup")
  9. (mongo dropCollection:"stickups" inDatabase:"stickup")
  10. (mongo close)
  11. ((dict status:200 message:"Reset database.") JSONRepresentation))
  12.  
  13. (post "/stickup"
  14. (set mongo (NuMongoDB new))
  15. (set connected (mongo connectWithOptions:nil))
  16. (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
  17. (set stickup (REQUEST post))
  18. (set user (mongo findOne:(dict name:(stickup user:)) inCollection:"stickup.users"))
  19. (unless user
  20. (set user (dict name:(stickup user:) password:(stickup password:)))
  21. (mongo insertObject:user intoCollection:"stickup.users"))
  22. (set result (if (eq (user password:) (stickup password:))
  23. (then (stickup removeObjectForKey:"password")
  24. (stickup time:((NSDate date) description))
  25. (stickup location:(dict latitude:((stickup latitude:) floatValue)
  26. longitude:((stickup longitude:) floatValue)))
  27. (stickup removeObjectForKey:"latitude")
  28. (stickup removeObjectForKey:"longitude")
  29. (mongo insertObject:stickup intoCollection:"stickup.stickups")
  30. (dict status:200 message:"Thank you." saved:stickup))
  31. (else (dict status:403 message:"Unable to post stickup."))))
  32. (mongo close)
  33. (result JSONRepresentation))
  34.  
  35. (get "/stickups"
  36. (set mongo (NuMongoDB new))
  37. (set connected (mongo connectWithOptions:nil))
  38. (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
  39. (mongo ensureCollection:"stickup.stickups" hasIndex:(dict location:"2d") withOptions:0)
  40. (set query (dict))
  41. (if (and (set latitude (((REQUEST query) latitude:) floatValue))
  42. (set longitude (((REQUEST query) longitude:) floatValue)))
  43. (query location:(dict $near:(dict latitude:latitude longitude:longitude))))
  44. (unless (set count (((REQUEST query) count:) intValue))
  45. (set count 10))
  46. (mongo close)
  47. ((dict status:200 stickups:(mongo findArray:query
  48. inCollection:"stickup.stickups"
  49. returningFields:nil
  50. numberToReturn:count
  51. numberToSkip:0))
  52. JSONRepresentation))
  53.  
  54. (get "/count"
  55. (set mongo (NuMongoDB new))
  56. (set connected (mongo connectWithOptions:nil))
  57. (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
  58. (mongo close)
  59. (set count (mongo countWithCondition:nil inCollection:"stickups" inDatabase:"stickup"))
  60. ((dict status:200 count:count) JSONRepresentation))
Add Comment
Please, Sign In to add comment