t2_airtime 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 92cd20affff2288194c6f7681b323a04e0946c34
4
- data.tar.gz: 75258f2aa81696aa6c97674cb9dc6054cd7efeda
3
+ metadata.gz: a33b32f6117f54b21e350b54f9f3461f53359495
4
+ data.tar.gz: c31db0708c59d67c6d0c1b28277d33900fd02e27
5
5
  SHA512:
6
- metadata.gz: 37c27cef4a6493cad9c43cb86f4ef8d091988dfdf9be16f22c789cb96d1d15815928f82ece33f717ef9b7ca82b8a88847578c32775d2b8438c56d6d703c659b7
7
- data.tar.gz: 388eeb722ee1c7e5591dbe3f033e9cca3b2c6e91dbf9539336903179dfbf1f09b04d82f0277ed32feab4c31f806c862e9bdb80c762a768480af389774bf92a3e
6
+ metadata.gz: 9c6f3fdc030c82eb68f61bbd1d55a72e49af2e2c780f8467d24e4c1648f9b1887db7794184f3ccda3a478ef57ce717db46b3b0978b5607a62730fe0d6968fa21
7
+ data.tar.gz: 8fbd8c31394916b96ea4eb960ee1491d9d01edf95cdc89a5fc807b8755012b835cc29ce1f87c0a40c3a3b71851e2fca26611f5976f4cd9049d1ea242dfa35faa
data/README.md CHANGED
@@ -18,28 +18,42 @@ T2-Airtime is a Ruby gem providing a proxy cache and a REST API to [TransferTo](
18
18
  ``` sh
19
19
  gem install t2_airtime
20
20
  ```
21
+ ### Setup Transfer-To credentials
21
22
 
22
- ### Using Docker - alternative if you don't install ruby or installation not work for you
23
-
24
- Download image:
25
-
26
- ```
27
- docker pull voxbox/t2_airtime
28
- ```
29
-
30
- Export your secrets:
23
+ 1. Make sure you are a registered user of [Transfer-To](https://www.transfer-to.com/home).
24
+ 2. Enable Two Factor Authentication (2FA) in your [Transfer-To Shop](https://shop.transferto.com) Security Center section
25
+ 2. Retrieve API key (token) created by Transfer-To Shop.
26
+ 3. Export your secrets as an environment variables:
31
27
 
32
28
  ```sh
33
29
  export T2_SHOP_USER=<your_username>
34
30
  export T2_AIRTIME_KEY=<your_token>
35
31
  ```
36
32
 
37
- Export the host allowed to access the API (CORS):
33
+ 4. Export the host allowed to access the API (CORS):
38
34
  ```sh
39
35
  export CORS_ORIGIN=<your_frontend_address>
40
36
  ```
41
37
 
42
- Run:
38
+ 5. Export your API secrets:
39
+
40
+ ```sh
41
+ export API_KEY=<t2_airtime_key>
42
+ export API_TOKEN=<t2_airtime_token>
43
+ ```
44
+
45
+
46
+ ### Using Docker
47
+
48
+ 1. Download image:
49
+
50
+ ```
51
+ docker pull voxbox/t2_airtime
52
+ ```
53
+
54
+ 2. Export your secrets in env (see previous step)
55
+
56
+ 3. Run:
43
57
 
44
58
  ```sh
45
59
  docker run -d \
@@ -47,22 +61,10 @@ docker run -d \
47
61
  -p 3000:3000 \
48
62
  -e T2_SHOP_USER \
49
63
  -e T2_AIRTIME_KEY \
64
+ -e API_KEY \
65
+ -e API_TOKEN \
50
66
  -e CORS_ORIGIN \
51
67
  voxbox/t2_airtime
52
- docker logs t2_airtime -f
53
- ```
54
-
55
-
56
- ### Setup Transfer-To credentials
57
-
58
- 1. Make sure you are a registered user of [Transfer-To](https://www.transfer-to.com/home).
59
- 2. Enable Two Factor Authentication (2FA) in your [Transfer-To Shop](https://shop.transferto.com) Security Center section
60
- 2. Retrieve API key (token) created by Transfer-To Shop.
61
- 3. Export your secrets as an environment variables:
62
-
63
- ```sh
64
- export T2_SHOP_USER=<your_username>
65
- export T2_AIRTIME_KEY=<your_token>
66
68
  ```
67
69
 
68
70
  ## Development
@@ -94,6 +96,13 @@ Inside the `t2_airtime` repository directory run:
94
96
  $ bundle exec rspec
95
97
  ```
96
98
 
99
+ To start a development server:
100
+
101
+ ```sh
102
+ $ cd spec/dummy
103
+ $ puma -C config/puma.rb
104
+ ```
105
+
97
106
 
98
107
  ## License
99
108
 
@@ -1,8 +1,39 @@
1
1
  module T2Airtime
2
2
  # Entry point
3
3
  class ApplicationController < ActionController::API
4
+
5
+ include ActionController::HttpAuthentication::Token::ControllerMethods
6
+ before_action :authenticate
7
+
4
8
  protected
5
9
 
10
+ def authenticate
11
+ authenticate_token || render_unauthorized
12
+ end
13
+
14
+ def authenticate_token
15
+ authenticate_with_http_token do |token, options|
16
+ tokenHash === token
17
+ end
18
+ end
19
+
20
+ def tokenHash
21
+ OpenSSL::HMAC.hexdigest 'sha256',
22
+ ENV['API_KEY'],
23
+ ENV['API_TOKEN']
24
+ end
25
+
26
+ def render_unauthorized
27
+ self.headers['WWW-Authenticate'] = 'Token realm="Application"'
28
+ render json: {
29
+ errors: [{
30
+ code: 401,
31
+ detail: 'Invalid Token',
32
+ title: 'Unauthorized!'
33
+ }]
34
+ },
35
+ status: :unauthorized
36
+ end
6
37
 
7
38
  def filter_params
8
39
  begin
@@ -19,7 +50,8 @@ module T2Airtime
19
50
  'record-count' => data.length
20
51
  },
21
52
  status: :ok
22
- }
53
+ },
54
+ status: :ok
23
55
  end
24
56
 
25
57
  def render_one(type)
@@ -29,7 +61,8 @@ module T2Airtime
29
61
  id: params[:id]
30
62
  },
31
63
  status: :ok
32
- }
64
+ },
65
+ status: :ok
33
66
  end
34
67
 
35
68
  def render_error(response)
@@ -42,7 +75,8 @@ module T2Airtime
42
75
  title: 'Error!'
43
76
  }],
44
77
  status: :bad_request
45
- }
78
+ },
79
+ status: :bad_request
46
80
  end
47
81
  end
48
82
  end
@@ -1,3 +1,3 @@
1
1
  module T2Airtime
2
- VERSION = '0.5.2'.freeze
2
+ VERSION = '0.6.0'.freeze
3
3
  end
@@ -13175,3 +13175,719 @@ Processing by T2Airtime::CountriesController#index as JSON
13175
13175
  Completed 200 OK in 39ms (Views: 34.9ms)
13176
13176
 
13177
13177
 
13178
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 10:45:42 +0200
13179
+ Processing by T2Airtime::CountriesController#index as JSON
13180
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13181
+ Completed 500 Internal Server Error in 47ms
13182
+
13183
+
13184
+
13185
+ NoMethodError (undefined method `authenticate_with_http_token' for #<T2Airtime::CountriesController:0x0000000003626620>
13186
+ Did you mean? authenticate_token):
13187
+
13188
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:14:in `authenticate_token'
13189
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:10:in `authenticate'
13190
+ activesupport (5.1.4) lib/active_support/callbacks.rb:413:in `block in make_lambda'
13191
+ activesupport (5.1.4) lib/active_support/callbacks.rb:197:in `block (2 levels) in halting'
13192
+ actionpack (5.1.4) lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in <module:Callbacks>'
13193
+ activesupport (5.1.4) lib/active_support/callbacks.rb:198:in `block in halting'
13194
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `block in invoke_before'
13195
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `each'
13196
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `invoke_before'
13197
+ activesupport (5.1.4) lib/active_support/callbacks.rb:130:in `run_callbacks'
13198
+ actionpack (5.1.4) lib/abstract_controller/callbacks.rb:19:in `process_action'
13199
+ actionpack (5.1.4) lib/action_controller/metal/rescue.rb:20:in `process_action'
13200
+ actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
13201
+ activesupport (5.1.4) lib/active_support/notifications.rb:166:in `block in instrument'
13202
+ activesupport (5.1.4) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
13203
+ activesupport (5.1.4) lib/active_support/notifications.rb:166:in `instrument'
13204
+ actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
13205
+ actionpack (5.1.4) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
13206
+ actionpack (5.1.4) lib/abstract_controller/base.rb:124:in `process'
13207
+ actionpack (5.1.4) lib/action_controller/metal.rb:189:in `dispatch'
13208
+ actionpack (5.1.4) lib/action_controller/metal.rb:253:in `dispatch'
13209
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
13210
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:31:in `serve'
13211
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
13212
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `each'
13213
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `serve'
13214
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:834:in `call'
13215
+ railties (5.1.4) lib/rails/engine.rb:522:in `call'
13216
+ railties (5.1.4) lib/rails/railtie.rb:185:in `public_send'
13217
+ railties (5.1.4) lib/rails/railtie.rb:185:in `method_missing'
13218
+ actionpack (5.1.4) lib/action_dispatch/routing/mapper.rb:17:in `block in <class:Constraints>'
13219
+ actionpack (5.1.4) lib/action_dispatch/routing/mapper.rb:46:in `serve'
13220
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
13221
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `each'
13222
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `serve'
13223
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:834:in `call'
13224
+ rack (2.0.3) lib/rack/etag.rb:25:in `call'
13225
+ rack (2.0.3) lib/rack/conditional_get.rb:25:in `call'
13226
+ rack (2.0.3) lib/rack/head.rb:12:in `call'
13227
+ actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
13228
+ activesupport (5.1.4) lib/active_support/callbacks.rb:97:in `run_callbacks'
13229
+ actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
13230
+ actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
13231
+ actionpack (5.1.4) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
13232
+ actionpack (5.1.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
13233
+ railties (5.1.4) lib/rails/rack/logger.rb:36:in `call_app'
13234
+ railties (5.1.4) lib/rails/rack/logger.rb:24:in `block in call'
13235
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `block in tagged'
13236
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:26:in `tagged'
13237
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `tagged'
13238
+ railties (5.1.4) lib/rails/rack/logger.rb:24:in `call'
13239
+ actionpack (5.1.4) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
13240
+ actionpack (5.1.4) lib/action_dispatch/middleware/request_id.rb:25:in `call'
13241
+ rack (2.0.3) lib/rack/runtime.rb:22:in `call'
13242
+ activesupport (5.1.4) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
13243
+ actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
13244
+ actionpack (5.1.4) lib/action_dispatch/middleware/static.rb:125:in `call'
13245
+ rack (2.0.3) lib/rack/sendfile.rb:111:in `call'
13246
+ rack-cors (1.0.1) lib/rack/cors.rb:93:in `call'
13247
+ railties (5.1.4) lib/rails/engine.rb:522:in `call'
13248
+ puma (3.10.0) lib/puma/configuration.rb:225:in `call'
13249
+ puma (3.10.0) lib/puma/server.rb:605:in `handle_request'
13250
+ puma (3.10.0) lib/puma/server.rb:437:in `process_client'
13251
+ puma (3.10.0) lib/puma/server.rb:301:in `block in run'
13252
+ puma (3.10.0) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
13253
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 10:47:15 +0200
13254
+ Processing by T2Airtime::CountriesController#index as JSON
13255
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13256
+ Filter chain halted as :authenticate rendered or redirected
13257
+ Completed 401 Unauthorized in 2ms (Views: 0.5ms)
13258
+
13259
+
13260
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 10:48:54 +0200
13261
+ Processing by T2Airtime::CountriesController#index as JSON
13262
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13263
+ Completed 200 OK in 13303ms (Views: 17.9ms)
13264
+
13265
+
13266
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:02:23 +0200
13267
+ Processing by T2Airtime::CountriesController#index as JSON
13268
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13269
+ Filter chain halted as :authenticate rendered or redirected
13270
+ Completed 401 Unauthorized in 2ms (Views: 0.2ms)
13271
+
13272
+
13273
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:05:28 +0200
13274
+ Processing by T2Airtime::CountriesController#index as JSON
13275
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13276
+ Filter chain halted as :authenticate rendered or redirected
13277
+ Completed 200 OK in 2ms (Views: 0.7ms)
13278
+
13279
+
13280
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:05:45 +0200
13281
+ Processing by T2Airtime::CountriesController#index as JSON
13282
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13283
+ Filter chain halted as :authenticate rendered or redirected
13284
+ Completed 200 OK in 1ms (Views: 0.4ms)
13285
+
13286
+
13287
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:08:33 +0200
13288
+ Processing by T2Airtime::CountriesController#index as JSON
13289
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13290
+ Filter chain halted as :authenticate rendered or redirected
13291
+ Completed 401 Unauthorized in 2ms (Views: 0.5ms)
13292
+
13293
+
13294
+ Started GET "/transactions?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:09:23 +0200
13295
+ Processing by T2Airtime::TransactionsController#index as JSON
13296
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "transaction"=>{}}
13297
+ Filter chain halted as :authenticate rendered or redirected
13298
+ Completed 401 Unauthorized in 2ms (Views: 0.6ms)
13299
+
13300
+
13301
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:09:26 +0200
13302
+ Processing by T2Airtime::CountriesController#index as JSON
13303
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13304
+ Filter chain halted as :authenticate rendered or redirected
13305
+ Completed 401 Unauthorized in 1ms (Views: 0.5ms)
13306
+
13307
+
13308
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:09:27 +0200
13309
+ Processing by T2Airtime::CountriesController#index as JSON
13310
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13311
+ Filter chain halted as :authenticate rendered or redirected
13312
+ Completed 401 Unauthorized in 4ms (Views: 2.0ms)
13313
+
13314
+
13315
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:12:47 +0200
13316
+ Processing by T2Airtime::CountriesController#index as JSON
13317
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13318
+ Filter chain halted as :authenticate rendered or redirected
13319
+ Completed 401 Unauthorized in 3ms (Views: 0.5ms)
13320
+
13321
+
13322
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:17:38 +0200
13323
+ Processing by T2Airtime::CountriesController#index as JSON
13324
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13325
+ Filter chain halted as :authenticate rendered or redirected
13326
+ Completed 401 Unauthorized in 11ms (Views: 0.8ms)
13327
+
13328
+
13329
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:19:49 +0200
13330
+ Processing by T2Airtime::CountriesController#index as JSON
13331
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13332
+ Filter chain halted as :authenticate rendered or redirected
13333
+ Completed 401 Unauthorized in 2ms (Views: 0.5ms)
13334
+
13335
+
13336
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:23:26 +0200
13337
+ Processing by T2Airtime::CountriesController#index as JSON
13338
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13339
+ Filter chain halted as :authenticate rendered or redirected
13340
+ Completed 401 Unauthorized in 16ms (Views: 0.6ms)
13341
+
13342
+
13343
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:23:49 +0200
13344
+ Processing by T2Airtime::CountriesController#index as JSON
13345
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13346
+ Filter chain halted as :authenticate rendered or redirected
13347
+ Completed 401 Unauthorized in 3ms (Views: 1.9ms)
13348
+
13349
+
13350
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:08 +0200
13351
+ Processing by T2Airtime::CountriesController#index as JSON
13352
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13353
+ Filter chain halted as :authenticate rendered or redirected
13354
+ Completed 401 Unauthorized in 2ms (Views: 0.8ms)
13355
+
13356
+
13357
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:10 +0200
13358
+ Processing by T2Airtime::CountriesController#index as JSON
13359
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13360
+ Filter chain halted as :authenticate rendered or redirected
13361
+ Completed 401 Unauthorized in 2ms (Views: 0.5ms)
13362
+
13363
+
13364
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:13 +0200
13365
+ Processing by T2Airtime::CountriesController#index as JSON
13366
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13367
+ Filter chain halted as :authenticate rendered or redirected
13368
+ Completed 401 Unauthorized in 1ms (Views: 0.3ms)
13369
+
13370
+
13371
+ Started GET "/transactions?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:14 +0200
13372
+ Processing by T2Airtime::TransactionsController#index as JSON
13373
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "transaction"=>{}}
13374
+ Filter chain halted as :authenticate rendered or redirected
13375
+ Completed 401 Unauthorized in 0ms (Views: 0.2ms)
13376
+
13377
+
13378
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:16 +0200
13379
+ Processing by T2Airtime::CountriesController#index as JSON
13380
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13381
+ Filter chain halted as :authenticate rendered or redirected
13382
+ Completed 401 Unauthorized in 2ms (Views: 1.1ms)
13383
+
13384
+
13385
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:20 +0200
13386
+ Processing by T2Airtime::CountriesController#index as JSON
13387
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13388
+ Filter chain halted as :authenticate rendered or redirected
13389
+ Completed 401 Unauthorized in 1ms (Views: 0.4ms)
13390
+
13391
+
13392
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:21 +0200
13393
+ Processing by T2Airtime::CountriesController#index as JSON
13394
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13395
+ Filter chain halted as :authenticate rendered or redirected
13396
+ Completed 401 Unauthorized in 1ms (Views: 0.4ms)
13397
+
13398
+
13399
+ Started GET "/transactions?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:22 +0200
13400
+ Processing by T2Airtime::TransactionsController#index as JSON
13401
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "transaction"=>{}}
13402
+ Filter chain halted as :authenticate rendered or redirected
13403
+ Completed 401 Unauthorized in 2ms (Views: 1.0ms)
13404
+
13405
+
13406
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:24:23 +0200
13407
+ Processing by T2Airtime::CountriesController#index as JSON
13408
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13409
+ Filter chain halted as :authenticate rendered or redirected
13410
+ Completed 401 Unauthorized in 2ms (Views: 0.7ms)
13411
+
13412
+
13413
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:28:11 +0200
13414
+ Processing by T2Airtime::CountriesController#index as JSON
13415
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13416
+ Filter chain halted as :authenticate rendered or redirected
13417
+ Completed 401 Unauthorized in 3ms (Views: 0.5ms)
13418
+
13419
+
13420
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:28:59 +0200
13421
+ Processing by T2Airtime::CountriesController#index as JSON
13422
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13423
+ Filter chain halted as :authenticate rendered or redirected
13424
+ Completed 401 Unauthorized in 15ms (Views: 1.8ms)
13425
+
13426
+
13427
+ Started GET "/transactions?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:31:51 +0200
13428
+ Processing by T2Airtime::TransactionsController#index as JSON
13429
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "transaction"=>{}}
13430
+ Filter chain halted as :authenticate rendered or redirected
13431
+ Completed 401 Unauthorized in 4ms (Views: 1.4ms)
13432
+
13433
+
13434
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:32:10 +0200
13435
+ Processing by T2Airtime::CountriesController#index as JSON
13436
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13437
+ Filter chain halted as :authenticate rendered or redirected
13438
+ Completed 401 Unauthorized in 2ms (Views: 0.8ms)
13439
+
13440
+
13441
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:32:21 +0200
13442
+ Processing by T2Airtime::CountriesController#index as JSON
13443
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13444
+ Filter chain halted as :authenticate rendered or redirected
13445
+ Completed 401 Unauthorized in 2ms (Views: 0.8ms)
13446
+
13447
+
13448
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:33:22 +0200
13449
+ Processing by T2Airtime::CountriesController#index as JSON
13450
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13451
+ Filter chain halted as :authenticate rendered or redirected
13452
+ Completed 401 Unauthorized in 9ms (Views: 0.6ms)
13453
+
13454
+
13455
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:42:25 +0200
13456
+ Processing by T2Airtime::CountriesController#index as JSON
13457
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13458
+ Filter chain halted as :authenticate rendered or redirected
13459
+ Completed 401 Unauthorized in 74ms (Views: 48.3ms)
13460
+
13461
+
13462
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:43:02 +0200
13463
+ Processing by T2Airtime::CountriesController#index as JSON
13464
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13465
+ Filter chain halted as :authenticate rendered or redirected
13466
+ Completed 401 Unauthorized in 9ms (Views: 1.1ms)
13467
+
13468
+
13469
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:47:33 +0200
13470
+ Processing by T2Airtime::CountriesController#index as JSON
13471
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13472
+ Filter chain halted as :authenticate rendered or redirected
13473
+ Completed 401 Unauthorized in 12ms (Views: 0.6ms)
13474
+
13475
+
13476
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:48:11 +0200
13477
+ Processing by T2Airtime::CountriesController#index as JSON
13478
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13479
+ Filter chain halted as :authenticate rendered or redirected
13480
+ Completed 401 Unauthorized in 1ms (Views: 0.4ms)
13481
+
13482
+
13483
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:48:14 +0200
13484
+ Processing by T2Airtime::CountriesController#index as JSON
13485
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13486
+ Filter chain halted as :authenticate rendered or redirected
13487
+ Completed 401 Unauthorized in 1ms (Views: 0.3ms)
13488
+
13489
+
13490
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:48:16 +0200
13491
+ Processing by T2Airtime::CountriesController#index as JSON
13492
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13493
+ Filter chain halted as :authenticate rendered or redirected
13494
+ Completed 401 Unauthorized in 2ms (Views: 0.4ms)
13495
+
13496
+
13497
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:54:42 +0200
13498
+ Processing by T2Airtime::CountriesController#index as JSON
13499
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13500
+ Filter chain halted as :authenticate rendered or redirected
13501
+ Completed 401 Unauthorized in 5ms (Views: 2.2ms)
13502
+
13503
+
13504
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:54:43 +0200
13505
+ Processing by T2Airtime::CountriesController#index as JSON
13506
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13507
+ Filter chain halted as :authenticate rendered or redirected
13508
+ Completed 401 Unauthorized in 1ms (Views: 0.3ms)
13509
+
13510
+
13511
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:54:45 +0200
13512
+ Processing by T2Airtime::CountriesController#index as JSON
13513
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13514
+ Filter chain halted as :authenticate rendered or redirected
13515
+ Completed 401 Unauthorized in 2ms (Views: 0.5ms)
13516
+
13517
+
13518
+ Started GET "/transactions?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:55:04 +0200
13519
+ Processing by T2Airtime::TransactionsController#index as JSON
13520
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "transaction"=>{}}
13521
+ Filter chain halted as :authenticate rendered or redirected
13522
+ Completed 401 Unauthorized in 3ms (Views: 0.5ms)
13523
+
13524
+
13525
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:56:32 +0200
13526
+ Processing by T2Airtime::CountriesController#index as JSON
13527
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13528
+ Filter chain halted as :authenticate rendered or redirected
13529
+ Completed 401 Unauthorized in 3ms (Views: 0.8ms)
13530
+
13531
+
13532
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:56:39 +0200
13533
+ Processing by T2Airtime::CountriesController#index as JSON
13534
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13535
+ Completed 200 OK in 15027ms (Views: 13.9ms)
13536
+
13537
+
13538
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:57:33 +0200
13539
+ Processing by T2Airtime::CountriesController#index as JSON
13540
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13541
+ Completed 200 OK in 41ms (Views: 35.5ms)
13542
+
13543
+
13544
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 11:58:14 +0200
13545
+ Processing by T2Airtime::CountriesController#index as JSON
13546
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13547
+ Completed 200 OK in 124ms (Views: 94.5ms)
13548
+
13549
+
13550
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:58:33 +0200
13551
+ Processing by T2Airtime::CountriesController#index as JSON
13552
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13553
+ Completed 200 OK in 73ms (Views: 67.8ms)
13554
+
13555
+
13556
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 11:59:18 +0200
13557
+ Processing by T2Airtime::CountriesController#index as JSON
13558
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13559
+ Completed 200 OK in 109ms (Views: 100.5ms)
13560
+
13561
+
13562
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:00:01 +0200
13563
+ Processing by T2Airtime::CountriesController#index as JSON
13564
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13565
+ Completed 200 OK in 77ms (Views: 74.1ms)
13566
+
13567
+
13568
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:00:32 +0200
13569
+ Processing by T2Airtime::CountriesController#index as JSON
13570
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13571
+ Completed 200 OK in 112ms (Views: 107.4ms)
13572
+
13573
+
13574
+ Started GET "/msisdn_info?destination_number=%2B393801524729" for 192.168.18.1 at 2017-09-20 12:01:29 +0200
13575
+ Processing by T2Airtime::TopupsController#msisdn_info as JSON
13576
+ Parameters: {"destination_number"=>"+393801524729", "topup"=>{}}
13577
+ Filter chain halted as :authenticate rendered or redirected
13578
+ Completed 401 Unauthorized in 3ms (Views: 1.1ms)
13579
+
13580
+
13581
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 12:33:36 +0200
13582
+ Processing by T2Airtime::CountriesController#index as JSON
13583
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13584
+ Completed 200 OK in 86ms (Views: 38.7ms)
13585
+
13586
+
13587
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 12:33:49 +0200
13588
+ Processing by T2Airtime::CountriesController#index as JSON
13589
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13590
+ Filter chain halted as :authenticate rendered or redirected
13591
+ Completed 401 Unauthorized in 15ms (Views: 1.6ms)
13592
+
13593
+
13594
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:38:11 +0200
13595
+ Processing by T2Airtime::CountriesController#index as JSON
13596
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13597
+ Completed 500 Internal Server Error in 0ms
13598
+
13599
+
13600
+
13601
+ TypeError (no implicit conversion of nil into String):
13602
+
13603
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:21:in `hexdigest'
13604
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:21:in `tokenHash'
13605
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:16:in `block in authenticate_token'
13606
+ actionpack (5.1.4) lib/action_controller/metal/http_authentication.rb:444:in `authenticate'
13607
+ actionpack (5.1.4) lib/action_controller/metal/http_authentication.rb:419:in `authenticate_with_http_token'
13608
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:15:in `authenticate_token'
13609
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:11:in `authenticate'
13610
+ activesupport (5.1.4) lib/active_support/callbacks.rb:413:in `block in make_lambda'
13611
+ activesupport (5.1.4) lib/active_support/callbacks.rb:197:in `block (2 levels) in halting'
13612
+ actionpack (5.1.4) lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in <module:Callbacks>'
13613
+ activesupport (5.1.4) lib/active_support/callbacks.rb:198:in `block in halting'
13614
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `block in invoke_before'
13615
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `each'
13616
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `invoke_before'
13617
+ activesupport (5.1.4) lib/active_support/callbacks.rb:130:in `run_callbacks'
13618
+ actionpack (5.1.4) lib/abstract_controller/callbacks.rb:19:in `process_action'
13619
+ actionpack (5.1.4) lib/action_controller/metal/rescue.rb:20:in `process_action'
13620
+ actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
13621
+ activesupport (5.1.4) lib/active_support/notifications.rb:166:in `block in instrument'
13622
+ activesupport (5.1.4) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
13623
+ activesupport (5.1.4) lib/active_support/notifications.rb:166:in `instrument'
13624
+ actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
13625
+ actionpack (5.1.4) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
13626
+ actionpack (5.1.4) lib/abstract_controller/base.rb:124:in `process'
13627
+ actionpack (5.1.4) lib/action_controller/metal.rb:189:in `dispatch'
13628
+ actionpack (5.1.4) lib/action_controller/metal.rb:253:in `dispatch'
13629
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
13630
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:31:in `serve'
13631
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
13632
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `each'
13633
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `serve'
13634
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:834:in `call'
13635
+ railties (5.1.4) lib/rails/engine.rb:522:in `call'
13636
+ railties (5.1.4) lib/rails/railtie.rb:185:in `public_send'
13637
+ railties (5.1.4) lib/rails/railtie.rb:185:in `method_missing'
13638
+ actionpack (5.1.4) lib/action_dispatch/routing/mapper.rb:17:in `block in <class:Constraints>'
13639
+ actionpack (5.1.4) lib/action_dispatch/routing/mapper.rb:46:in `serve'
13640
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
13641
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `each'
13642
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `serve'
13643
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:834:in `call'
13644
+ rack (2.0.3) lib/rack/etag.rb:25:in `call'
13645
+ rack (2.0.3) lib/rack/conditional_get.rb:25:in `call'
13646
+ rack (2.0.3) lib/rack/head.rb:12:in `call'
13647
+ actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
13648
+ activesupport (5.1.4) lib/active_support/callbacks.rb:97:in `run_callbacks'
13649
+ actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
13650
+ actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
13651
+ actionpack (5.1.4) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
13652
+ actionpack (5.1.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
13653
+ railties (5.1.4) lib/rails/rack/logger.rb:36:in `call_app'
13654
+ railties (5.1.4) lib/rails/rack/logger.rb:24:in `block in call'
13655
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `block in tagged'
13656
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:26:in `tagged'
13657
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `tagged'
13658
+ railties (5.1.4) lib/rails/rack/logger.rb:24:in `call'
13659
+ actionpack (5.1.4) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
13660
+ actionpack (5.1.4) lib/action_dispatch/middleware/request_id.rb:25:in `call'
13661
+ rack (2.0.3) lib/rack/runtime.rb:22:in `call'
13662
+ activesupport (5.1.4) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
13663
+ actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
13664
+ actionpack (5.1.4) lib/action_dispatch/middleware/static.rb:125:in `call'
13665
+ rack (2.0.3) lib/rack/sendfile.rb:111:in `call'
13666
+ rack-cors (1.0.1) lib/rack/cors.rb:93:in `call'
13667
+ railties (5.1.4) lib/rails/engine.rb:522:in `call'
13668
+ puma (3.10.0) lib/puma/configuration.rb:225:in `call'
13669
+ puma (3.10.0) lib/puma/server.rb:605:in `handle_request'
13670
+ puma (3.10.0) lib/puma/server.rb:437:in `process_client'
13671
+ puma (3.10.0) lib/puma/server.rb:301:in `block in run'
13672
+ puma (3.10.0) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
13673
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:39:18 +0200
13674
+ Processing by T2Airtime::CountriesController#index as JSON
13675
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13676
+ Completed 500 Internal Server Error in 1ms
13677
+
13678
+
13679
+
13680
+ TypeError (no implicit conversion of nil into String):
13681
+
13682
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:21:in `hexdigest'
13683
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:21:in `tokenHash'
13684
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:16:in `block in authenticate_token'
13685
+ actionpack (5.1.4) lib/action_controller/metal/http_authentication.rb:444:in `authenticate'
13686
+ actionpack (5.1.4) lib/action_controller/metal/http_authentication.rb:419:in `authenticate_with_http_token'
13687
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:15:in `authenticate_token'
13688
+ /src/gem/t2_airtime/app/controllers/t2_airtime/application_controller.rb:11:in `authenticate'
13689
+ activesupport (5.1.4) lib/active_support/callbacks.rb:413:in `block in make_lambda'
13690
+ activesupport (5.1.4) lib/active_support/callbacks.rb:197:in `block (2 levels) in halting'
13691
+ actionpack (5.1.4) lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in <module:Callbacks>'
13692
+ activesupport (5.1.4) lib/active_support/callbacks.rb:198:in `block in halting'
13693
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `block in invoke_before'
13694
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `each'
13695
+ activesupport (5.1.4) lib/active_support/callbacks.rb:507:in `invoke_before'
13696
+ activesupport (5.1.4) lib/active_support/callbacks.rb:130:in `run_callbacks'
13697
+ actionpack (5.1.4) lib/abstract_controller/callbacks.rb:19:in `process_action'
13698
+ actionpack (5.1.4) lib/action_controller/metal/rescue.rb:20:in `process_action'
13699
+ actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
13700
+ activesupport (5.1.4) lib/active_support/notifications.rb:166:in `block in instrument'
13701
+ activesupport (5.1.4) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
13702
+ activesupport (5.1.4) lib/active_support/notifications.rb:166:in `instrument'
13703
+ actionpack (5.1.4) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
13704
+ actionpack (5.1.4) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
13705
+ actionpack (5.1.4) lib/abstract_controller/base.rb:124:in `process'
13706
+ actionpack (5.1.4) lib/action_controller/metal.rb:189:in `dispatch'
13707
+ actionpack (5.1.4) lib/action_controller/metal.rb:253:in `dispatch'
13708
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
13709
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:31:in `serve'
13710
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
13711
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `each'
13712
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `serve'
13713
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:834:in `call'
13714
+ railties (5.1.4) lib/rails/engine.rb:522:in `call'
13715
+ railties (5.1.4) lib/rails/railtie.rb:185:in `public_send'
13716
+ railties (5.1.4) lib/rails/railtie.rb:185:in `method_missing'
13717
+ actionpack (5.1.4) lib/action_dispatch/routing/mapper.rb:17:in `block in <class:Constraints>'
13718
+ actionpack (5.1.4) lib/action_dispatch/routing/mapper.rb:46:in `serve'
13719
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'
13720
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `each'
13721
+ actionpack (5.1.4) lib/action_dispatch/journey/router.rb:33:in `serve'
13722
+ actionpack (5.1.4) lib/action_dispatch/routing/route_set.rb:834:in `call'
13723
+ rack (2.0.3) lib/rack/etag.rb:25:in `call'
13724
+ rack (2.0.3) lib/rack/conditional_get.rb:25:in `call'
13725
+ rack (2.0.3) lib/rack/head.rb:12:in `call'
13726
+ actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
13727
+ activesupport (5.1.4) lib/active_support/callbacks.rb:97:in `run_callbacks'
13728
+ actionpack (5.1.4) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
13729
+ actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
13730
+ actionpack (5.1.4) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
13731
+ actionpack (5.1.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
13732
+ railties (5.1.4) lib/rails/rack/logger.rb:36:in `call_app'
13733
+ railties (5.1.4) lib/rails/rack/logger.rb:24:in `block in call'
13734
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `block in tagged'
13735
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:26:in `tagged'
13736
+ activesupport (5.1.4) lib/active_support/tagged_logging.rb:69:in `tagged'
13737
+ railties (5.1.4) lib/rails/rack/logger.rb:24:in `call'
13738
+ actionpack (5.1.4) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
13739
+ actionpack (5.1.4) lib/action_dispatch/middleware/request_id.rb:25:in `call'
13740
+ rack (2.0.3) lib/rack/runtime.rb:22:in `call'
13741
+ activesupport (5.1.4) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
13742
+ actionpack (5.1.4) lib/action_dispatch/middleware/executor.rb:12:in `call'
13743
+ actionpack (5.1.4) lib/action_dispatch/middleware/static.rb:125:in `call'
13744
+ rack (2.0.3) lib/rack/sendfile.rb:111:in `call'
13745
+ rack-cors (1.0.1) lib/rack/cors.rb:93:in `call'
13746
+ railties (5.1.4) lib/rails/engine.rb:522:in `call'
13747
+ puma (3.10.0) lib/puma/configuration.rb:225:in `call'
13748
+ puma (3.10.0) lib/puma/server.rb:605:in `handle_request'
13749
+ puma (3.10.0) lib/puma/server.rb:437:in `process_client'
13750
+ puma (3.10.0) lib/puma/server.rb:301:in `block in run'
13751
+ puma (3.10.0) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
13752
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:41:06 +0200
13753
+ Processing by T2Airtime::CountriesController#index as JSON
13754
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13755
+ Completed 200 OK in 107ms (Views: 98.5ms)
13756
+
13757
+
13758
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 12:41:08 +0200
13759
+ Processing by T2Airtime::CountriesController#index as JSON
13760
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13761
+ Completed 200 OK in 17ms (Views: 14.3ms)
13762
+
13763
+
13764
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:42:11 +0200
13765
+ Processing by T2Airtime::CountriesController#index as JSON
13766
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13767
+ Completed 200 OK in 24ms (Views: 21.0ms)
13768
+
13769
+
13770
+ Started GET "/msisdn_info?destination_number=%2B393801524729" for 192.168.18.1 at 2017-09-20 12:42:19 +0200
13771
+ Processing by T2Airtime::TopupsController#msisdn_info as JSON
13772
+ Parameters: {"destination_number"=>"+393801524729", "topup"=>{}}
13773
+ Filter chain halted as :authenticate rendered or redirected
13774
+ Completed 401 Unauthorized in 0ms (Views: 0.3ms)
13775
+
13776
+
13777
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:48:36 +0200
13778
+ Processing by T2Airtime::CountriesController#index as JSON
13779
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13780
+ Completed 200 OK in 148ms (Views: 114.5ms)
13781
+
13782
+
13783
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:49:59 +0200
13784
+ Processing by T2Airtime::CountriesController#index as JSON
13785
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13786
+ Completed 200 OK in 52ms (Views: 49.4ms)
13787
+
13788
+
13789
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:50:58 +0200
13790
+ Processing by T2Airtime::CountriesController#index as JSON
13791
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13792
+ Completed 200 OK in 103ms (Views: 98.6ms)
13793
+
13794
+
13795
+ Started GET "/msisdn_info?destination_number=%2B393801524729" for 192.168.18.1 at 2017-09-20 12:51:05 +0200
13796
+ Processing by T2Airtime::TopupsController#msisdn_info as */*
13797
+ Parameters: {"destination_number"=>"+393801524729", "topup"=>{}}
13798
+ Unpermitted parameter: :topup
13799
+ Completed 200 OK in 2257ms (Views: 1.0ms)
13800
+
13801
+
13802
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:52:22 +0200
13803
+ Processing by T2Airtime::CountriesController#index as JSON
13804
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13805
+ Completed 200 OK in 46ms (Views: 42.2ms)
13806
+
13807
+
13808
+ Started GET "/msisdn_info?destination_number=%2B393801524729" for 192.168.18.1 at 2017-09-20 12:52:33 +0200
13809
+ Processing by T2Airtime::TopupsController#msisdn_info as */*
13810
+ Parameters: {"destination_number"=>"+393801524729", "topup"=>{}}
13811
+ Unpermitted parameter: :topup
13812
+ Completed 200 OK in 11ms (Views: 0.7ms)
13813
+
13814
+
13815
+ Started GET "/products?page%5Boffset%5D=0&page%5Blimit%5D=1000&filter%5Boperator_id%5D=734&sort=-id" for 192.168.18.1 at 2017-09-20 12:52:35 +0200
13816
+ Processing by T2Airtime::ProductsController#index as JSON
13817
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "filter"=>{"operator_id"=>"734"}, "sort"=>"-id", "product"=>{}}
13818
+ Completed 200 OK in 4833ms (Views: 2.4ms)
13819
+
13820
+
13821
+ Started GET "/reserve_id" for 192.168.18.1 at 2017-09-20 12:52:44 +0200
13822
+ Processing by T2Airtime::TopupsController#reserve_id as JSON
13823
+ Parameters: {"topup"=>{}}
13824
+ Filter chain halted as :authenticate rendered or redirected
13825
+ Completed 401 Unauthorized in 1ms (Views: 0.7ms)
13826
+
13827
+
13828
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:53:13 +0200
13829
+ Processing by T2Airtime::CountriesController#index as JSON
13830
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13831
+ Completed 200 OK in 80ms (Views: 73.2ms)
13832
+
13833
+
13834
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:53:22 +0200
13835
+ Processing by T2Airtime::CountriesController#index as JSON
13836
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13837
+ Completed 200 OK in 53ms (Views: 42.1ms)
13838
+
13839
+
13840
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:54:05 +0200
13841
+ Processing by T2Airtime::CountriesController#index as JSON
13842
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13843
+ Completed 200 OK in 132ms (Views: 122.3ms)
13844
+
13845
+
13846
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=1000&sort=-id" for 192.168.18.1 at 2017-09-20 12:55:08 +0200
13847
+ Processing by T2Airtime::CountriesController#index as JSON
13848
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "sort"=>"-id", "country"=>{}}
13849
+ Completed 200 OK in 114ms (Views: 104.4ms)
13850
+
13851
+
13852
+ Started GET "/msisdn_info?destination_number=%2B393801524729" for 192.168.18.1 at 2017-09-20 12:55:17 +0200
13853
+ Processing by T2Airtime::TopupsController#msisdn_info as */*
13854
+ Parameters: {"destination_number"=>"+393801524729", "topup"=>{}}
13855
+ Unpermitted parameter: :topup
13856
+ Completed 200 OK in 3ms (Views: 0.4ms)
13857
+
13858
+
13859
+ Started GET "/products?page%5Boffset%5D=0&page%5Blimit%5D=1000&filter%5Boperator_id%5D=734&sort=-id" for 192.168.18.1 at 2017-09-20 12:55:18 +0200
13860
+ Processing by T2Airtime::ProductsController#index as JSON
13861
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"1000"}, "filter"=>{"operator_id"=>"734"}, "sort"=>"-id", "product"=>{}}
13862
+ Completed 200 OK in 7ms (Views: 3.0ms)
13863
+
13864
+
13865
+ Started GET "/reserve_id" for 192.168.18.1 at 2017-09-20 12:55:19 +0200
13866
+ Processing by T2Airtime::TopupsController#reserve_id as */*
13867
+ Parameters: {"topup"=>{}}
13868
+ Completed 200 OK in 1904ms (Views: 0.4ms)
13869
+
13870
+
13871
+ Started POST "/topup?msisdn=%2B932343324&destination_number=%2B393801524729&product=5&method=simulation&reserved_id=585174050&send_sms=false&sms=undefined&cid1=undefined&cid2=undefined&cid3=undefined" for 192.168.18.1 at 2017-09-20 12:55:29 +0200
13872
+ Processing by T2Airtime::TopupsController#topup as */*
13873
+ Parameters: {"msisdn"=>"+932343324", "destination_number"=>"+393801524729", "product"=>"5", "method"=>"simulation", "reserved_id"=>"585174050", "send_sms"=>"false", "sms"=>"undefined", "cid1"=>"undefined", "cid2"=>"undefined", "cid3"=>"undefined", "topup"=>{}}
13874
+ Unpermitted parameter: :topup
13875
+ Unpermitted parameter: :topup
13876
+ Unpermitted parameter: :topup
13877
+ Unpermitted parameter: :topup
13878
+ Unpermitted parameter: :topup
13879
+ Unpermitted parameter: :topup
13880
+ Unpermitted parameter: :topup
13881
+ Unpermitted parameter: :topup
13882
+ Unpermitted parameter: :topup
13883
+ Unpermitted parameter: :topup
13884
+ Unpermitted parameter: :topup
13885
+ Completed 200 OK in 2955ms (Views: 1.0ms)
13886
+
13887
+
13888
+ Started GET "/countries?page%5Boffset%5D=0&page%5Blimit%5D=10&sort=-id" for 192.168.18.1 at 2017-09-20 12:55:35 +0200
13889
+ Processing by T2Airtime::CountriesController#index as JSON
13890
+ Parameters: {"page"=>{"offset"=>"0", "limit"=>"10"}, "sort"=>"-id", "country"=>{}}
13891
+ Completed 200 OK in 53ms (Views: 41.3ms)
13892
+
13893
+