Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (load "NuMongoDB")
- (load "NuJSON")
- (post "/reset"
- (set mongo (NuMongoDB new))
- (set connected (mongo connectWithOptions:nil))
- (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
- (mongo dropCollection:"users" inDatabase:"stickup")
- (mongo dropCollection:"stickups" inDatabase:"stickup")
- (mongo close)
- ((dict status:200 message:"Reset database.") JSONRepresentation))
- (post "/stickup"
- (set mongo (NuMongoDB new))
- (set connected (mongo connectWithOptions:nil))
- (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
- (set stickup (REQUEST post))
- (set user (mongo findOne:(dict name:(stickup user:)) inCollection:"stickup.users"))
- (unless user
- (set user (dict name:(stickup user:) password:(stickup password:)))
- (mongo insertObject:user intoCollection:"stickup.users"))
- (set result (if (eq (user password:) (stickup password:))
- (then (stickup removeObjectForKey:"password")
- (stickup time:((NSDate date) description))
- (stickup location:(dict latitude:((stickup latitude:) floatValue)
- longitude:((stickup longitude:) floatValue)))
- (stickup removeObjectForKey:"latitude")
- (stickup removeObjectForKey:"longitude")
- (mongo insertObject:stickup intoCollection:"stickup.stickups")
- (dict status:200 message:"Thank you." saved:stickup))
- (else (dict status:403 message:"Unable to post stickup."))))
- (mongo close)
- (result JSONRepresentation))
- (get "/stickups"
- (set mongo (NuMongoDB new))
- (set connected (mongo connectWithOptions:nil))
- (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
- (mongo ensureCollection:"stickup.stickups" hasIndex:(dict location:"2d") withOptions:0)
- (set query (dict))
- (if (and (set latitude (((REQUEST query) latitude:) floatValue))
- (set longitude (((REQUEST query) longitude:) floatValue)))
- (query location:(dict $near:(dict latitude:latitude longitude:longitude))))
- (unless (set count (((REQUEST query) count:) intValue))
- (set count 10))
- (mongo close)
- ((dict status:200 stickups:(mongo findArray:query
- inCollection:"stickup.stickups"
- returningFields:nil
- numberToReturn:count
- numberToSkip:0))
- JSONRepresentation))
- (get "/count"
- (set mongo (NuMongoDB new))
- (set connected (mongo connectWithOptions:nil))
- (mongo authenticateUser:"stickup" withPassword:"stickup" forDatabase:"stickup")
- (mongo close)
- (set count (mongo countWithCondition:nil inCollection:"stickups" inDatabase:"stickup"))
- ((dict status:200 count:count) JSONRepresentation))
Add Comment
Please, Sign In to add comment