Exemple of route responding to POST requests.
class PostHandler
super Handler
redef fun post(req, res) do res.send "POST request received"
end
# POST handler.
#
# Exemple of route responding to POST requests.
# ~~~
# class PostHandler
# super Handler
#
# redef fun post(req, res) do res.send "POST request received"
# end
# ~~~
fun post(req: HttpRequest, res: HttpResponse) do end
lib/popcorn/pop_handlers.nit:137,2--147,53
redef fun post(req, res) do
var user = get_session_user(req)
var login = null
if user != null then login = user.login
var mentity = mentity_from_uri(req, res)
if mentity == null then return
var dimension = req.param("dimension")
if dimension == null then return
# Retrieve user previous rating
var previous = null
if user != null then
previous = user.find_previous_rating(config, mentity, dimension)
end
var obj = req.body.parse_json
if not obj isa JsonObject then
res.api_error(400, "Expected a JSON object")
return
end
var rating = obj["rating"]
if not rating isa Int then
res.api_error(400, "Expected a key `rating`")
return
end
if previous != null then
previous.rating = rating
previous.timestamp = get_time
config.stars.save previous
else
config.stars.save new StarRating(login, mentity.full_name, dimension, rating)
end
res.api_json(req, mentity.ratings_by_dimension(config, dimension, login))
end
src/doc/api/api_feedback.nit:135,2--170,4