-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.rb
69 lines (61 loc) · 2.32 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
require 'sinatra'
require 'mongoid'
Mongoid.load!("mongoid.yml", :developement)
class Servers
include Mongoid::Document
field :server_name, type: String
field :uri, type: String
field :creation_date, type: String
field :last_reset, type: String
field :user, type: String
end
class User
include Mongoid::Document
field :user, type: String
field :key, type: String
field :limit, type: Integer #0 = Infinit
end
post '/:action/:server' do #Available actions: get, set, delete
api_key = params[:api_key]
if api_key.empty?
"Missing API Key"
else
client = User.where(key: api_key).first
if client.empty?
"Invalid API Key"
else
server = Servers.where(server_name: :server, user: client.user).first
date = Time.strftime("%%B %%d, %%Y") #Example Date Output: August 24th, 2013
if server.empty?
"No Server found under the name, #{:server} for user: #{client.user}, creating a new one if possible"
if client.limit < Servers.where(user: client.user).count || client.limit == 0
new_uri = params[:new_uri]
if new_uri.empty?
Servers.where(server_name: :server, user: client.user, uri: "", creation_date: date, last_reset: date).create!
"Server created, please set a URI for it to use"
else
Servers.where(server_name: :server, user: client.user, uri: new_uri, creation_date: date, last_reset: date).create!
end
else
"Server amount limit reached, please delete a server to make room"
end
else
case :action
when "get"
server.uri
when "set"
new_uri = params[:new_uri]
if new_uri.empty?
"Missing new_uri param"
else
server.update(uri: new_uri, last_reset: date)
end
when "delete"
server.delete
else
"Unknown action #{:action}"
end
end
end
end
end