itg 0.1.9 → 0.1.10

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
  SHA256:
3
- metadata.gz: c60773e9c8ca502b677976a3dcc42507f2a380c656aaa428234926cade8089c3
4
- data.tar.gz: f7b47a3d333b4213c025184f735d2c4db202c2b12baaf23d582b902180cdad64
3
+ metadata.gz: fe781750f5aa0333312d6a9fd50522d349b25d4c33459c82e9db8417c60e2ab1
4
+ data.tar.gz: 112e6866a3e64dfa33ecc755d69c40d44c4f460e8b91a8bbf0a3a19e14daacf7
5
5
  SHA512:
6
- metadata.gz: 3747664586c161f37074adba3f32a6b4f2309c2eb2b26e06f9209926d06b98f107b351a81e09c465a4b041b3d29331ecad623354187f92b4d94ecd036a0599a4
7
- data.tar.gz: 7d63370e7fc1f8169cfe8baa69263aefde490f21ee3737f5506da5520873d15ae3c9624b974142bc0255b7f66e5555678356c0aa6483d011c8f4da47e1fb0455
6
+ metadata.gz: 569b0ef8c9e406792bbe4491bf841ce1558d26b6cfa206395b4d62368170a2741048f527cde8406666f973cbf2ad9b262fbd4e4cee3d54f53d3a2f0d00c1746e
7
+ data.tar.gz: 20df9342f243bb409fd467c97ef55a781abc3e1198142739488603c1625a81a485603da738131b684ea8c4bb388a49caa88665e72829b731763f79389cd7b4cb
data/README.md CHANGED
@@ -1,4 +1,22 @@
1
- # Itg
1
+ # Itg gem
2
+
3
+ ### Context
4
+
5
+ The `Context` describes the isolated storage for the users data
6
+
7
+ Every time a user can see and manage only the data of a single `context` in which he has access
8
+
9
+ User has a list of contexts (memberships) where has access.
10
+ Each `context membership` has: `context`, `user`, `access` (`ro`, `rw`, `admin`)
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
2
20
 
3
21
  TODO: Delete this and the text below, and describe your gem
4
22
 
@@ -0,0 +1,18 @@
1
+ module Itg
2
+ module ControllerSetCurrentRequestDetails
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ before_action do
7
+ Current.request_id = request.uuid
8
+ Current.user_agent = request.user_agent
9
+ Current.ip_address = request.ip
10
+ Current.host = request.host
11
+ end
12
+ end
13
+
14
+ class_methods do
15
+
16
+ end
17
+ end
18
+ end
@@ -20,11 +20,11 @@ module Itg
20
20
  # @g_model_class = Entity
21
21
  @g_model_class = self.class.model_class
22
22
  @g_search_field = 'kind'
23
- @g_permited_params = {kind: nil, tags: nil, context: nil, attrs: {}}
23
+ @g_permitted_params = {kind: nil, tags: nil, context: nil, attrs: {}}
24
24
  end
25
25
 
26
26
  def set_model_instance
27
- puts '******** entities_controller#set_model_instance......'
27
+ # puts '******** entities_controller#set_model_instance......'
28
28
  ITG_LOGGER.info '*** [Entities.set_model_instance] ...'
29
29
  @model_instance = @g_model_class.find(params[:id])
30
30
  end
@@ -7,21 +7,22 @@ module Itg
7
7
  included do
8
8
  include Itg::Response
9
9
 
10
- before_action :g_model_class, :g_parent_model_class, :g_search_field, :g_permited_params
10
+ before_action :g_model_class, :g_parent_model_class, :g_search_field, :g_permitted_params
11
11
  # before_action :set_model_instance, only: [:show, :update, :destroy]
12
12
  before_action :require_permission
13
13
  before_action :switch_database
14
14
  after_action :reset_database
15
15
 
16
16
  def curr_user_db
17
- @current_bearer ? @current_bearer.db : 'mainaaa'
17
+ # @current_bearer ? @current_bearer.db : 'mainaaa'
18
+ # 'test'
18
19
  end
19
20
 
20
21
  def index
21
- puts "[GenericController.index] current_bearer: #{@current_bearer}, current_api_key: #{@current_api_key}"
22
- puts "[GenericController.index] current_bearer.db: #{@current_bearer.db}, current_bearer.kind: #{@current_bearer.kind}"
23
- puts "[GenericController.index] curr_user_db: #{curr_user_db}, params[:filter]: #{params[:filter]}"
24
- pp "*** Api::V1::Cultivation::Chamber.count: #{Api::V1::Cultivation::Chamber.count}"
22
+ # puts "[GenericController.index] current_bearer: #{@current_bearer}, current_api_key: #{@current_api_key}"
23
+ # puts "[GenericController.index] current_bearer.db: #{@current_bearer.db}, current_bearer.kind: #{@current_bearer.kind}"
24
+ # puts "[GenericController.index] curr_user_db: #{curr_user_db}, params[:filter]: #{params[:filter]}"
25
+ # pp "*** Api::V1::Cultivation::Chamber.count: #{Api::V1::Cultivation::Chamber.count}"
25
26
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.index] params: #{params}\n params[:filter]: #{params[:filter]}\n db: #{@g_model_class.database_name}\n=========================="
26
27
  collection = get_collection
27
28
  # data = if (filter = params[:filter])
@@ -33,13 +34,13 @@ module Itg
33
34
  # collection.all
34
35
  # end
35
36
  data = if (filter = params[:filter])
36
- puts '----- with filter'
37
+ # puts '----- with filter'
37
38
  collection.where(@g_search_field => /.*#{filter}.*/i)
38
39
  else
39
- puts '----- all'
40
+ # puts '----- all'
40
41
  # pp collection.with(curr_user_db).all.count
41
- pp collection.all.count
42
- pp "*** Api::V1::Cultivation::Chamber.count: #{Api::V1::Cultivation::Chamber.count}"
42
+ # pp collection.all.count
43
+ # pp "*** Api::V1::Cultivation::Chamber.count: #{Api::V1::Cultivation::Chamber.count}"
43
44
  collection.all
44
45
  # Api::V1::Link.with(database: curr_user_db) { |klass| klass.all.to_a }
45
46
  # collection.with(database: curr_user_db) { |klass| klass.all.to_a }
@@ -48,7 +49,7 @@ module Itg
48
49
  # klass.all
49
50
  # end
50
51
  end
51
- puts ">>>> collection '#{collection}' data (#{data.count}): #{data}"
52
+ # puts ">>>> collection '#{collection}' data (#{data.count}): #{data}"
52
53
  if (view_name = params[:view])
53
54
  data = data.respond_to?(view_name) ? data.send(view_name) : "View '#{view_name}' does not exist for collection '#{collection}'"
54
55
  end
@@ -62,21 +63,21 @@ module Itg
62
63
  # data = params[:filter] ? collection.where(@g_search_field => /.*#{params[:filter]}.*/i) : collection.all
63
64
  # ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.index] data to return (#{data.count}):\n#{JSON.pretty_generate data}\n============================"
64
65
  # render json: params[:filter] ? @g_model_class.where(@g_search_field => /.*#{params[:filter]}.*/i) : @g_model_class.all
65
- puts '>>>>>>> [GenericController.index] ....'
66
- puts ">>>>>>> [GenericController.index] data (#{data.count if data})"
67
- pp data
68
- pp data
66
+ # puts '>>>>>>> [GenericController.index] ....'
67
+ # puts ">>>>>>> [GenericController.index] data (#{data.count if data})"
68
+ # pp data
69
+ # pp data
69
70
  render json: data
70
71
  end
71
72
 
72
73
  def show
73
- puts '>>>>>>> [GenericController.show] ...'
74
+ # puts '>>>>>>> [GenericController.show] ...'
74
75
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.show] params: #{params}\n params[:id]: #{params[:id]}\n db: #{@g_model_class.database_name}\n========================="
75
76
  collection = get_collection
76
77
  data = collection.find(params[:id])
77
- ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.show] data to return:\n#{JSON.pretty_generate data}\n============================"
78
- puts ">>>>>>> [GenericController.show] collection: #{collection}"
79
- pp data
78
+ ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.show] data to return:\n#{JSON.pretty_generate data.to_s}\n============================"
79
+ # puts ">>>>>>> [GenericController.show] collection: #{collection}"
80
+ # pp data
80
81
  if data
81
82
  render json: data
82
83
  else
@@ -85,7 +86,7 @@ module Itg
85
86
  end
86
87
 
87
88
  def create
88
- puts '>>>>>>> [GenericController.create] ...'
89
+ # puts '>>>>>>> [GenericController.create] ...'
89
90
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.create] params:\n#{JSON.pretty_generate params}\n db: #{@g_model_class.database_name}\n============================"
90
91
  # g_check_variables
91
92
  # # ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.create] model_instance_params:\n#{JSON.pretty_generate model_instance_params}\n============================"
@@ -128,7 +129,7 @@ module Itg
128
129
  end
129
130
 
130
131
  def update
131
- puts '>>>>>>> [GenericController.update] ...'
132
+ # puts '>>>>>>> [GenericController.update] ...'
132
133
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.update] params:\n#{JSON.pretty_generate params}\n db: #{@g_model_class.database_name}\n============================"
133
134
  g_check_variables
134
135
  # @model_instance.update(model_instance_params)
@@ -155,7 +156,7 @@ module Itg
155
156
 
156
157
  def destroy
157
158
  g_check_variables
158
- puts "*** [GenericController/#{@g_model_class}.destroy] params:\n#{JSON.pretty_generate params}\n db: #{@g_model_class.database_name}\n============================"
159
+ # puts "*** [GenericController/#{@g_model_class}.destroy] params:\n#{JSON.pretty_generate params}\n db: #{@g_model_class.database_name}\n============================"
159
160
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.destroy] params:\n#{JSON.pretty_generate params}\n db: #{@g_model_class.database_name}\n============================"
160
161
  if @model_instance
161
162
  @model_instance.destroy
@@ -168,7 +169,7 @@ module Itg
168
169
  private
169
170
 
170
171
  def switch_database
171
- puts ">>> [GenericController.switch_database] curr_user_db: #{curr_user_db}"
172
+ # puts ">>> [GenericController.switch_database] curr_user_db: #{curr_user_db}"
172
173
  # if params.has_key? 'test'
173
174
  # # db_name = "md-test"
174
175
  # db_name = 'itg_api_test'
@@ -187,7 +188,7 @@ module Itg
187
188
  ITG_LOGGER.info '*** [GenericController.g_check_variables] ...'
188
189
  raise '[GenericController] @g_model_class is nil!' unless @g_model_class
189
190
  raise "[GenericController/#{@g_model_class}] @g_search_field is nil!" unless @g_search_field
190
- raise "[GenericController/#{@g_model_class}] @g_permited_params is nil!" unless @g_permited_params
191
+ raise "[GenericController/#{@g_model_class}] @g_permitted_params is nil!" unless @g_permitted_params
191
192
  end
192
193
 
193
194
  def g_model_class
@@ -205,9 +206,9 @@ module Itg
205
206
  @g_search_field ||= nil
206
207
  end
207
208
 
208
- def g_permited_params
209
- ITG_LOGGER.info '*** [GenericController.g_permited_params] ...'
210
- @g_permited_params ||= nil
209
+ def g_permitted_params
210
+ ITG_LOGGER.info '*** [GenericController.g_permitted_params] ...'
211
+ @g_permitted_params ||= nil
211
212
  end
212
213
 
213
214
  def g_only_show
@@ -223,24 +224,24 @@ module Itg
223
224
  # end
224
225
 
225
226
  def model_instance_params(create = false)
226
- puts '>>>>>>> [GenericController.model_instance_params] ...'
227
+ # puts '>>>>>>> [GenericController.model_instance_params] ...'
227
228
  ITG_LOGGER.info '*** [GenericController.model_instance_params] ...'
228
229
  ITG_LOGGER.info ">>>>> params: #{params}"
229
230
  ITG_LOGGER.info ">>>>> @g_model_class: #{@g_model_class}"
230
231
  # params_model_sym = @g_model_class.name.parameterize.underscore.to_sym
231
232
  params_model_sym = @g_model_class.name.underscore.gsub('/', '_').to_sym
232
233
  ITG_LOGGER.info ">>>>> params_model_sym: #{params_model_sym}"
233
- ITG_LOGGER.info ">>>>> @g_permited_params: #{@g_permited_params}"
234
- # ITG_LOGGER.info "*** [GenericController.model_instance_params] g_permited_params:\n#{@g_permited_params}"
235
- # ret = params.require(@g_model_class.name.underscore.to_sym).permit(*@g_permited_params)
234
+ ITG_LOGGER.info ">>>>> @g_permitted_params: #{@g_permitted_params}"
235
+ # ITG_LOGGER.info "*** [GenericController.model_instance_params] g_permitted_params:\n#{@g_permitted_params}"
236
+ # ret = params.require(@g_model_class.name.underscore.to_sym).permit(*@g_permitted_params)
236
237
 
237
- case @g_permited_params
238
+ case @g_permitted_params
238
239
  when Array
239
- ret = params.require(params_model_sym).permit(*@g_permited_params)
240
+ ret = params.require(params_model_sym).permit(*@g_permitted_params)
240
241
  when Hash
241
- ret = params.require(params_model_sym).permit(*@g_permited_params, **@g_permited_params)
242
+ ret = params.require(params_model_sym).permit(*@g_permitted_params, **@g_permitted_params)
242
243
  else
243
- raise "[GenericController.model_instance_params] unhandled @g_permited_params: #{@g_permited_params.inspect}"
244
+ raise "[GenericController.model_instance_params] unhandled @g_permitted_params: #{@g_permitted_params.inspect}"
244
245
  end
245
246
 
246
247
  ITG_LOGGER.info "*** [GenericController.model_instance_params] return:\n#{ret}"
@@ -261,12 +262,12 @@ module Itg
261
262
  end
262
263
 
263
264
  def get_collection
264
- puts "*** [GenericController/#{@g_model_class}.get_collection] params: #{params}"
265
+ # puts "*** [GenericController/#{@g_model_class}.get_collection] params: #{params}"
265
266
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.get_collection] params: #{params}"
266
267
  g_check_variables
267
268
  if @g_parent_model_class
268
269
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.index] With parent: #{@g_parent_model_class}"
269
- puts "*** [GenericController/#{@g_model_class}.index] With parent: #{@g_parent_model_class}"
270
+ # puts "*** [GenericController/#{@g_model_class}.index] With parent: #{@g_parent_model_class}"
270
271
  collection_name = @g_model_class.to_s.parameterize.pluralize
271
272
  parent_field_id = @g_parent_model_class.to_s.parameterize + '_id'
272
273
  parent_id = params[parent_field_id.to_sym]
@@ -282,7 +283,7 @@ module Itg
282
283
  end
283
284
  else
284
285
  ITG_LOGGER.info "*** [GenericController/#{@g_model_class}.index] NO parent...."
285
- puts "*** [GenericController/#{@g_model_class}.index] NO parent...."
286
+ # puts "*** [GenericController/#{@g_model_class}.index] NO parent...."
286
287
  collection = @g_model_class
287
288
  # data = params[:filter] ? @g_model_class.where(@g_search_field => /.*#{params[:filter]}.*/i) : @g_model_class.all
288
289
  end
@@ -291,12 +292,12 @@ module Itg
291
292
 
292
293
  def require_permission
293
294
  if @g_model_class.attribute_names.include?('owner_id')
294
- puts "******** generic_controller#require_permission @model_instance.owner: #{@model_instance&.owner}, @model_instance: #{@model_instance}"
295
+ # puts "******** generic_controller#require_permission @model_instance.owner: #{@model_instance&.owner}, @model_instance: #{@model_instance}"
295
296
  if @model_instance && @model_instance.owner_id != @current_bearer.id
296
297
  json_response('Not allowed!', :forbidden)
297
298
  end
298
299
  else
299
- puts "******** generic_controller#require_permission @current_bearer: #{@current_bearer.inspect}, @model_instance: #{@model_instance.inspect}"
300
+ # puts "******** generic_controller#require_permission @current_bearer: #{@current_bearer.inspect}, @model_instance: #{@model_instance.inspect}"
300
301
  unless @current_bearer.kind == 'one'
301
302
  json_response('Not allowed!', :forbidden)
302
303
  end
@@ -15,11 +15,13 @@ module Itg
15
15
  # code when API key authentication fails
16
16
  def authenticate_with_api_key!
17
17
  @current_bearer = authenticate_or_request_with_http_token(&method(:authenticator))
18
+ Current.user = @current_bearer
18
19
  end
19
20
 
20
21
  # Use this for optional API key authentication
21
22
  def authenticate_with_api_key
22
23
  @current_bearer = authenticate_with_http_token(&method(:authenticator))
24
+ Current.user = @current_bearer
23
25
  end
24
26
 
25
27
  private
@@ -0,0 +1,27 @@
1
+ module Itg
2
+ module CurrentBase
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ attribute :user
7
+ attribute :context
8
+ attribute :config
9
+ attribute :request_id, :user_agent, :ip_address, :host
10
+
11
+ def to_s
12
+ ret_hash = {}
13
+ ret_hash[:user] = user.username if user
14
+ ret_hash[:request_id] = request_id if request_id
15
+ ret_hash[:user_agent] = user_agent if user_agent
16
+ ret_hash[:host] = host if host
17
+ ret_hash[:ip_address] = ip_address if ip_address
18
+ if ret_hash.empty?
19
+ "Current singleton is empty"
20
+ else
21
+ # ret_hash.to_a.join(', ')
22
+ "Current is #{ret_hash.inspect}"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -8,7 +8,8 @@ module Itg
8
8
  included do
9
9
  def itg_print(header: nil, prefix: '', allow_nested: true)
10
10
  puts header if header
11
- puts "#{prefix}print item....."
11
+ # puts "#{prefix}print item....."
12
+ puts "#{prefix}#{self.to_s}"
12
13
  end
13
14
  end
14
15
 
data/lib/itg/itg_sec.rb CHANGED
@@ -19,12 +19,12 @@ module Itg
19
19
 
20
20
  included do
21
21
  begin
22
- puts ">>>>>> itg_sec - include it....."
22
+ # puts ">>>>>> itg_sec - include it....."
23
23
  unless Rails.env.test?
24
24
  store_in database: DB_NAME, client: CLIENT_NAME
25
- puts "[itg_sec] set db details: #{DB_NAME}, #{CLIENT_NAME}"
25
+ # puts "[itg_sec] set db details: #{DB_NAME}, #{CLIENT_NAME}"
26
26
  end
27
- self.itg_print_db_info
27
+ # self.itg_print_db_info
28
28
  rescue NameError => e
29
29
  # Ignored - Used only because the gem does not have the Rails initialized!
30
30
  raise if e.message != "uninitialized constant Itg::Sec::Rails"
@@ -11,10 +11,20 @@ module Itg
11
11
  field :code, type: String
12
12
  field :name, type: String
13
13
  field :descr, type: String
14
- field :db, type: String
14
+ field :db_name, type: String
15
+ field :db_client, type: String, default: "default"
15
16
 
16
17
  validates_presence_of(:code, :name)
17
18
  validates_uniqueness_of :code
19
+
20
+ def to_s
21
+ [code, name, descr]
22
+ end
23
+
24
+ # def itg_print(header: nil, prefix: '', allow_nested: true)
25
+ # puts header if header
26
+ # puts "#{prefix}#{[attrs['name'] || attrs['descr'] || attrs['code']]}"
27
+ # end
18
28
  end
19
29
  end
20
30
  end
@@ -19,8 +19,10 @@ module Itg
19
19
 
20
20
  validates_presence_of :kind
21
21
  validates_presence_of :attrs
22
+ validates_presence_of :context
22
23
 
23
- belongs_to :owner, class_name: 'User'
24
+ # belongs_to :owner, class_name: 'User'
25
+ belongs_to :owner, class_name: User
24
26
 
25
27
  def to_s
26
28
  attrs['name'] || attrs['descr'] || attrs['code']
@@ -44,9 +44,9 @@ module Itg
44
44
 
45
45
  field :email, type: String
46
46
  # field :password_digest, type: String
47
- field :db, type: String
47
+ # field :db, type: String
48
48
  field :kind, type: String, default: 'user'
49
- field :contexts, type: Object, default: {}
49
+ # field :contexts, type: Object, default: {}
50
50
 
51
51
  index({ email: 1 }, { unique: true, name: 'email_index' })
52
52
 
@@ -67,19 +67,20 @@ module Itg
67
67
  super
68
68
  end
69
69
 
70
- def add_context(context, role: :user)
71
- if context.persisted?
72
- unless contexts.keys.include?(context.code.to_sym)
73
- contexts[context.code.to_sym] = {role: role.to_sym}
74
- contexts[context.code.to_sym][:name] = context[:name] if context[:name]
75
- contexts[context.code.to_sym][:descr] = context[:descr] if context[:descr]
76
- contexts[context.code.to_sym][:db] = context[:db] if context[:db]
77
- end
78
- end
79
- end
70
+ # def add_context(context, role: :user)
71
+ # if context.persisted?
72
+ # unless contexts.keys.include?(context.code.to_sym)
73
+ # contexts[context.code.to_sym] = {role: role.to_sym}
74
+ # contexts[context.code.to_sym][:name] = context[:name] if context[:name]
75
+ # contexts[context.code.to_sym][:descr] = context[:descr] if context[:descr]
76
+ # contexts[context.code.to_sym][:db] = context[:db] if context[:db]
77
+ # end
78
+ # end
79
+ # end
80
80
 
81
81
  def to_s
82
- attributes.symbolize_keys.slice(:_id, :email, :db, :role).to_s
82
+ # attributes.symbolize_keys.slice(:_id, :email, :db, :role).to_s
83
+ attributes.symbolize_keys.slice(:_id, :email, :role).to_s
83
84
  end
84
85
 
85
86
  def itg_print(header: nil, prefix: '', allow_nested: true)
data/lib/itg/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Itg
4
- VERSION = "0.1.9"
5
- DATE = "18/2/2024"
4
+ VERSION = "0.1.10"
5
+ DATE = "21/3/2024"
6
6
 
7
7
  def self.version_info
8
8
  "Itg gem v.#{VERSION} #{DATE}"
data/lib/itg.rb CHANGED
@@ -10,9 +10,11 @@ require_relative "itg/itg_mongo_base"
10
10
  require_relative "itg/itg_printable"
11
11
  require_relative "itg/itg_api_key_authenticatable"
12
12
  require_relative "itg/itg_response"
13
+ require_relative "itg/itg_current_base"
13
14
  require_relative "itg/controllers/itg_generic_controller_base"
14
15
  require_relative "itg/controllers/itg_api_keys_controller_base"
15
16
  require_relative "itg/controllers/itg_entities_controller_base"
17
+ require_relative "itg/controllers/itg_controller_set_current_request_details"
16
18
  require_relative "itg/itg_sec"
17
19
 
18
20
  module Itg
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - aAon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-18 00:00:00.000000000 Z
11
+ date: 2024-03-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -30,9 +30,11 @@ files:
30
30
  - itg.gemspec
31
31
  - lib/itg.rb
32
32
  - lib/itg/controllers/itg_api_keys_controller_base.rb
33
+ - lib/itg/controllers/itg_controller_set_current_request_details.rb
33
34
  - lib/itg/controllers/itg_entities_controller_base.rb
34
35
  - lib/itg/controllers/itg_generic_controller_base.rb
35
36
  - lib/itg/itg_api_key_authenticatable.rb
37
+ - lib/itg/itg_current_base.rb
36
38
  - lib/itg/itg_mongo_base.rb
37
39
  - lib/itg/itg_printable.rb
38
40
  - lib/itg/itg_response.rb