added links route for API interactions

pull/21/head
Adam Townsend 2023-10-12 11:42:43 -07:00
parent 5ee9351362
commit ac3e9f14cd
1 changed files with 21 additions and 2 deletions

25
app.rb
View File

@ -41,10 +41,29 @@ class App < Roda
code = links.filter(:url => url).first[:code] code = links.filter(:url => url).first[:code]
@message ||= "Link exists" @message ||= "Link exists"
@new_link = 'http://' + request.env['HTTP_HOST'] + '/' + code @new_link = 'http://' + request.env['HTTP_HOST'] + '/' + code
if 'application/json' == r.headers['CONTENT_TYPE']
return {url: url, code: code, link: @new_link}.to_json
end
view :create view :create
end end
r.on "links" do
r.post do
if 'application/json' != r.headers['CONTENT_TYPE']
return {message: "Not a valid JSON request"}.to_json
end
url = r.params['url']
if url.nil? or url.empty?
response.status = 400
return {message: "Please enter a valid URL"}
end
if links.filter(:url => url).first.nil?
code = SecureRandom.urlsafe_base64 4
links.insert(url: url, code: code)
end
code = links.filter(:url => url).first[:code]
@new_link = 'http://' + request.env['HTTP_HOST'] + '/' + code
return {url: url, code: code, link: @new_link}.to_json
end
end
end end
end end