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

Property definitions

popcorn $ Handler :: post
	# 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

popcorn $ CounterAPI :: post
	redef fun post(req, res) do
		counter += 1
		res.json(json_counter)
	end
lib/popcorn/examples/angular/example_angular.nit:39,2--42,4

popcorn $ PostHandler :: post
	redef fun post(req, res) do
		var tpl = new Template
		tpl.addn "URI: {req.uri}"
		tpl.addn "Body: {req.body}"
		for name, arg in req.post_args do
			tpl.addn "{name}: {arg}"
		end
        res.send tpl
	end
lib/popcorn/examples/handlers/example_post_handler.nit:25,2--33,4

popcorn $ UserList :: post
	redef fun post(req, res) do
		var json = new JsonObject
		json["login"] = req.post_args["login"]
		json["password"] = req.post_args["password"]
		db.collection("users").insert(json)
		res.redirect("/")
	end
lib/popcorn/examples/mongodb/example_mongodb.nit:54,2--60,4

popcorn $ AppLogin :: post
	redef fun post(req, res) do
		req.session.as(not null).is_logged = true
		res.redirect("/")
	end
lib/popcorn/examples/sessions/example_session.nit:36,2--39,4

nitc $ APIDocdown :: post
	redef fun post(req, res) do
		res.html config.md_processor.process(req.body)
	end
src/doc/api/api_docdown.nit:42,2--44,4

nitc $ APILight :: post
	redef fun post(req, res) do
		var hl = new HtmlightVisitor
		var hlcode = hl.highlightcode(req.body)
		res.api_json(req, hlcode)
	end
src/doc/api/api_light.nit:31,2--35,4

nitc $ APIStarsDimension :: post
	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