diff --git a/app.rb b/app.rb index f437352..fbc0383 100644 --- a/app.rb +++ b/app.rb @@ -1,8 +1,12 @@ require 'roda' require 'securerandom' require 'json' +require 'sequel' +require 'logger' class App < Roda + DB = Sequel.sqlite('db/url_shortener.db') + links = DB[:links] plugin :render, escape: true route do |r| r.root do @@ -10,10 +14,15 @@ class App < Roda end r.get String do | url_code | - "redirect to url" + link = links.filter(:code => url_code).first[:url] + r.redirect link end r.post "create" do + url = r.params['url'] + code = SecureRandom.urlsafe_base64 4 + links.insert(url: url, code: code) + @new_link = 'http://' + request.env['HTTP_HOST'] + '/' + links.filter(:url => url).first[:code] view :create end end diff --git a/db/url_shortener.db b/db/url_shortener.db deleted file mode 100644 index 1562d33..0000000 Binary files a/db/url_shortener.db and /dev/null differ diff --git a/views/create.erb b/views/create.erb index e69de29..b70ceb7 100644 --- a/views/create.erb +++ b/views/create.erb @@ -0,0 +1,2 @@ +Home +

<%= @new_link %>