mirror of
https://github.com/hkalexling/Mango.git
synced 2026-04-30 00:00:43 -04:00
Split routes in server.cr into small files
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
require "./router"
|
||||
|
||||
class MainRouter < Router
|
||||
def setup
|
||||
get "/login" do |env|
|
||||
render "src/views/login.ecr"
|
||||
end
|
||||
|
||||
get "/logout" do |env|
|
||||
begin
|
||||
cookie = env.request.cookies
|
||||
.find { |c| c.name == "token" }.not_nil!
|
||||
@context.storage.logout cookie.value
|
||||
rescue e
|
||||
@context.error "Error when attempting to log out: #{e}"
|
||||
ensure
|
||||
env.redirect "/login"
|
||||
end
|
||||
end
|
||||
|
||||
post "/login" do |env|
|
||||
begin
|
||||
username = env.params.body["username"]
|
||||
password = env.params.body["password"]
|
||||
token = @context.storage.verify_user(username, password)
|
||||
.not_nil!
|
||||
|
||||
cookie = HTTP::Cookie.new "token", token
|
||||
env.response.cookies << cookie
|
||||
env.redirect "/"
|
||||
rescue
|
||||
env.redirect "/login"
|
||||
end
|
||||
end
|
||||
get "/" do |env|
|
||||
titles = @context.library.titles
|
||||
username = get_username env
|
||||
percentage = titles.map &.load_percetage username
|
||||
layout "index"
|
||||
end
|
||||
|
||||
get "/book/:title" do |env|
|
||||
begin
|
||||
title = (@context.library.get_title env.params.url["title"])
|
||||
.not_nil!
|
||||
username = get_username env
|
||||
percentage = title.entries.map { |e|
|
||||
title.load_percetage username, e.title }
|
||||
layout "title"
|
||||
rescue e
|
||||
@context.error e
|
||||
env.response.status_code = 404
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user