From 1ae6c0247212a18a6353606906f34ac574fc2825 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Thu, 12 Oct 2023 18:20:56 -0700 Subject: [PATCH] rescue BadURIError for invalid URL format --- app.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app.rb b/app.rb index b8501a6..6bd5136 100644 --- a/app.rb +++ b/app.rb @@ -2,6 +2,7 @@ require 'roda' require 'securerandom' require 'json' require 'sequel' +require 'open-uri' class App < Roda plugin :sessions, secret: ENV.delete('APP_SESSION_SECRET') @@ -60,6 +61,14 @@ class App < Roda return {message: "invalid url parameter"}.to_json end + begin + OpenURI.open_uri(url) + rescue URI::BadURIError + response.status = 400 + return {message: "invalid url parameter"}.to_json + end + + if links.filter(:url => url).first.nil? code = SecureRandom.urlsafe_base64 4 links.insert(url: url, code: code)