t2_airtime 0.5.2 → 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: 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
+