// retoor <retoor@molodetz.nl>
import "web" for Application, Response, View
import "json" for Json
class HelloView is View {
get(request) {
return Response.text("Hello, World!")
}
}
class ApiView is View {
get(request) {
var data = {"message": "API response", "method": "GET"}
return Response.json(data)
}
post(request) {
var body = request.json
var data = {"message": "Data received", "received": body}
return Response.json(data)
}
}
class UserView is View {
get(request) {
var userId = request.params["id"]
return Response.json({"user_id": userId, "action": "get"})
}
}
var app = Application.new()
app.get("/", Fn.new { |req|
return Response.html("<h1>Welcome to Wren Web!</h1><p>A simple web framework.</p>")
})
app.addView("/hello", HelloView)
app.addView("/api", ApiView)
app.addView("/users/:id", UserView)
app.get("/greet/:name", Fn.new { |req|
var name = req.params["name"]
return Response.text("Hello, " + name + "!")
})
app.get("/session", Fn.new { |req|
var count = req.session["count"]
if (count == null) count = 0
count = count + 1
req.session["count"] = count
return Response.json({"visit_count": count})
})
app.static_("/static", "./static")
System.print("Starting server...")
app.run("0.0.0.0", 8080)