-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.rb
55 lines (49 loc) · 1.07 KB
/
app.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
require_relative "helpers"
redis = Redis.new
get "/" do
erb :index
end
post "/" do
if params[:url] and not params[:url].empty?
shortcode = encode(params[:url])
redis_save_url(redis, shortcode, params[:url])
@base_url = toURL(request.host_with_port, shortcode)
end
erb :index
end
get "/v1/:shortcode" do
@url = redis_read_url(redis, params[:shortcode])
redirect @url || "/"
end
post "/api/compress" do
content_type :json
params = parse(request.body)
if params[:url]
shortcode = encode(params[:url])
redis_save_url(redis, shortcode, params[:url])
url = toURL(request.host_with_port, shortcode)
{
:shortcode => shortcode,
:url => url,
}.to_json
else
{
:error => "No URL provided.",
}.to_json
end
end
post "/api/expand" do
content_type :json
params = parse(request.body)
if params[:shortcode]
url = redis_read_url(redis, params[:shortcode])
{
:url => url,
:shortcode => params[:shortcode],
}.to_json
else
{
:error => "No shortcode provided.",
}.to_json
end
end