arkaan 0.5.13 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 142b73f96691a9d52e690010144ae77c7b57ee90
4
- data.tar.gz: d8b65437652771af55f2f5904dea8be864099fce
3
+ metadata.gz: eebe941e4b49edb670452878122f9fdaab8f5d8a
4
+ data.tar.gz: 2499a92b741d4a6caf46a72b8cd01ea6a2cd561b
5
5
  SHA512:
6
- metadata.gz: 8f5a1442f09015e0e26c7e8674089ecbd5403ea06e708bfbc9ee2bf21f39a510958193c07a48cdbec8cbbdbb699adad44510a52571f7432f99cb4838cd448b0f
7
- data.tar.gz: 91d2b53fe56c34ff7b31ab5a5d9edd6a0c3b8bb5a4e95ec8f798a9d1778b8888d415a37425eea7af2aff6e0c704156648ed6408f58750643a99bbadf33c31cf3
6
+ metadata.gz: c707fd2f08439d13c3b309aabb506977fdfb6dfdf458ae19d850e256c577c38f92acc9857488cec7b7360990bff4ea528abb924116edc9ca76dd21ad710d3f4c
7
+ data.tar.gz: bd34382eeaa742be1e29ed5d6b839ddb954d6984aa78ddfd1778a721555138d6eeb13726b50425e2c70d179b778a3fe7a69280df10d3ba66d17dce3bb99d1920
@@ -1,6 +1,7 @@
1
1
  require 'mongoid'
2
2
  require 'active_model'
3
3
  require 'active_support'
4
+ require 'sinatra/base'
4
5
 
5
6
  # Main module of the application, holding all the subsequent classes.
6
7
  # @author Vincent Courtois <courtois.vincent@outlook.com>
@@ -11,4 +12,5 @@ module Arkaan
11
12
  autoload :Monitoring , 'arkaan/monitoring'
12
13
  autoload :OAuth , 'arkaan/oauth'
13
14
  autoload :Permissions , 'arkaan/permissions'
15
+ autoload :Utils , 'arkaan/utils'
14
16
  end
@@ -0,0 +1,7 @@
1
+ module Arkaan
2
+ # Utility classes for the different micro-services of the suite.
3
+ # @author Vincent Courtois <courtois.vincent@outlook.com>
4
+ module Utils
5
+ autoload :Controller, 'arkaan/utils/controller'
6
+ end
7
+ end
@@ -0,0 +1,30 @@
1
+ module Arkaan
2
+ module Utils
3
+ # Base controller to handle the standard error when accessing the API.
4
+ # @author Vincent Courtois <courtois.vincenet@outlook.com>
5
+ class Controller < Sinatra::Base
6
+ before do
7
+ @parameters = JSON.parse(request.body.read.to_s) rescue {}
8
+ if get_param('app_key').nil? || get_param('token').nil?
9
+ halt 400, {message: 'bad_request'}.to_json
10
+ end
11
+ gateway = Arkaan::Monitoring::Gateway.where(token: get_param('token')).first
12
+ application = Arkaan::OAuth::Application.where(key: get_param('app_key')).first
13
+ if gateway.nil?
14
+ halt 404, {message: 'gateway_not_found'}.to_json
15
+ elsif application.nil?
16
+ halt 404, {message: 'application_not_found'}.to_json
17
+ elsif !application.premium?
18
+ halt 401, {message: 'application_not_authorized'}.to_json
19
+ end
20
+ end
21
+
22
+ # Gets a parameters from the parsed body hash, or the parsed querystring hash.
23
+ # @param [String] key - the key of the parameter to get.
24
+ # @return [any] the value associated with the key.
25
+ def get_param(key)
26
+ return (params.nil? || params[key].nil? ? @parameters[key] : params[key])
27
+ end
28
+ end
29
+ end
30
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arkaan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.13
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Courtois
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-24 00:00:00.000000000 Z
11
+ date: 2017-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.6.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack-test
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: factory_girl
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +164,20 @@ dependencies:
150
164
  - - '='
151
165
  - !ruby/object:Gem::Version
152
166
  version: 3.1.11
167
+ - !ruby/object:Gem::Dependency
168
+ name: sinatra
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '='
172
+ - !ruby/object:Gem::Version
173
+ version: 2.0.0
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '='
179
+ - !ruby/object:Gem::Version
180
+ version: 2.0.0
153
181
  description: This gem holds the model layer for my table-top RPG games application.
154
182
  email: courtois.vincent@outlook.com
155
183
  executables: []
@@ -179,6 +207,8 @@ files:
179
207
  - lib/arkaan/permissions/category.rb
180
208
  - lib/arkaan/permissions/group.rb
181
209
  - lib/arkaan/permissions/right.rb
210
+ - lib/arkaan/utils.rb
211
+ - lib/arkaan/utils/controller.rb
182
212
  homepage: https://rubygems.org/gems/arkaan
183
213
  licenses:
184
214
  - MIT