Class: GaptoolServer
- Inherits:
-
Sinatra::Application
- Object
- Sinatra::Application
- GaptoolServer
- Defined in:
- lib/app.rb,
lib/routes.rb
Instance Method Summary collapse
- #check_version(server, client) ⇒ Object
- #error_response(msg = '') ⇒ Object
- #invalid_version(server, client) ⇒ Object
- #require_parameters(required_keys, data) ⇒ Object
- #unauthenticated ⇒ Object
Instance Method Details
#check_version(server, client) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/app.rb', line 40 def check_version(server, client) @@client_versions ||= {} cl_v = @@client_versions[client] if cl_v.nil? begin @@client_versions[client] = Versionomy.parse(client) cl_v = @@client_versions[client] rescue return false end end cl_v.major == server.major && cl_v.minor == server.minor end |
#error_response(msg = '') ⇒ Object
20 21 22 23 24 |
# File 'lib/app.rb', line 20 def error_response msg='' = env['sinatra_error'].nil? ? "" : " #{env['sinatra.error'].}" = "#{msg}#{}" unless msg.empty? json result: 'error', message: end |
#invalid_version(server, client) ⇒ Object
54 55 56 |
# File 'lib/app.rb', line 54 def invalid_version(server, client) halt(400, error_response("Invalid version #{client} (server: #{server})")) end |
#require_parameters(required_keys, data) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/routes.rb', line 8 def require_parameters(required_keys, data) data = data.delete_if { |k,v| v.nil? } required_keys = [*required_keys].to_set unless required_keys.is_a? Set keys = data.keys.to_set unless keys >= required_keys raise BadRequest, "Missing required_parameters: #{(required_keys - keys).to_a.join(" ")}" end data end |
#unauthenticated ⇒ Object
36 37 38 |
# File 'lib/app.rb', line 36 def unauthenticated halt(401, error_response("Unauthenticated")) end |