Files
bit/app/routes.cr
2025-03-23 12:10:12 +01:00

45 lines
924 B
Crystal

require "./controllers/**"
require "kemal"
add_handler App::Middlewares::CORSHandler.new
add_handler App::Middlewares::Auth.new
module App
get "/:slug", &App::Controllers::ClickController.redirect_handler
# Namespace /api
get "/api/ping" do |env|
Controllers::PingController.new(env).ping
end
get "/api/links" do |env|
Controllers::LinkController.new(env).list_all
end
get "/api/links/:id" do |env|
Controllers::LinkController.new(env).get
end
get "/api/links/:id/clicks" do |env|
Controllers::LinkController.new(env).list_clicks
end
post "/api/links" do |env|
Controllers::LinkController.new(env).create
end
put "/api/links/:id" do |env|
Controllers::LinkController.new(env).update
end
delete "/api/links/:id" do |env|
Controllers::LinkController.new(env).delete
end
error 500 do |env|
App::InternalServerErrorException.new(env)
""
end
end