api_engine_base 0.1.1 → 0.2.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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +37 -6
  3. data/app/controllers/api_engine_base/admin_controller.rb +104 -0
  4. data/app/controllers/api_engine_base/application_controller.rb +45 -11
  5. data/app/controllers/api_engine_base/auth/plain_text_controller.rb +1 -1
  6. data/app/controllers/api_engine_base/inbox/message_blast_controller.rb +89 -0
  7. data/app/controllers/api_engine_base/inbox/message_controller.rb +79 -0
  8. data/app/controllers/api_engine_base/user_controller.rb +49 -0
  9. data/app/models/api_engine_base/application_record.rb +38 -0
  10. data/app/models/message.rb +30 -0
  11. data/app/models/message_blast.rb +27 -0
  12. data/app/models/user.rb +15 -4
  13. data/app/services/api_engine_base/README.md +49 -0
  14. data/app/services/api_engine_base/argument_validation/README.md +192 -0
  15. data/app/services/api_engine_base/argument_validation/class_methods.rb +2 -3
  16. data/app/services/api_engine_base/argument_validation/instance_methods.rb +13 -1
  17. data/app/services/api_engine_base/authorize/validate.rb +49 -0
  18. data/app/services/api_engine_base/inbox_service/blast/delete.rb +23 -0
  19. data/app/services/api_engine_base/inbox_service/blast/metadata.rb +26 -0
  20. data/app/services/api_engine_base/inbox_service/blast/new_user_blaster.rb +24 -0
  21. data/app/services/api_engine_base/inbox_service/blast/retrieve.rb +30 -0
  22. data/app/services/api_engine_base/inbox_service/blast/upsert.rb +67 -0
  23. data/app/services/api_engine_base/inbox_service/message/metadata.rb +35 -0
  24. data/app/services/api_engine_base/inbox_service/message/modify.rb +44 -0
  25. data/app/services/api_engine_base/inbox_service/message/retrieve.rb +36 -0
  26. data/app/services/api_engine_base/inbox_service/message/send.rb +33 -0
  27. data/app/services/api_engine_base/jwt/authenticate_user.rb +22 -7
  28. data/app/services/api_engine_base/jwt/login_create.rb +1 -1
  29. data/app/services/api_engine_base/login_strategy/plain_text/create.rb +1 -0
  30. data/app/services/api_engine_base/service_base.rb +4 -5
  31. data/app/services/api_engine_base/user_attributes/modify.rb +68 -0
  32. data/app/services/api_engine_base/user_attributes/roles.rb +27 -0
  33. data/config/routes.rb +32 -0
  34. data/db/migrate/20241117043720_create_api_engine_base_users.rb +2 -0
  35. data/db/migrate/20250223023306_create_api_engine_base_messages.rb +12 -0
  36. data/db/migrate/20250223023313_create_api_engine_base_message_blasts.rb +14 -0
  37. data/lib/api_engine_base/authorization/default.yml +42 -0
  38. data/lib/api_engine_base/authorization/entity.rb +101 -0
  39. data/lib/api_engine_base/authorization/role.rb +101 -0
  40. data/lib/api_engine_base/authorization.rb +85 -0
  41. data/lib/api_engine_base/configuration/admin/config.rb +18 -0
  42. data/lib/api_engine_base/configuration/application/config.rb +2 -2
  43. data/lib/api_engine_base/configuration/authorization/config.rb +24 -0
  44. data/lib/api_engine_base/configuration/config.rb +19 -1
  45. data/lib/api_engine_base/configuration/user/config.rb +56 -0
  46. data/lib/api_engine_base/engine.rb +38 -6
  47. data/lib/api_engine_base/error.rb +5 -0
  48. data/lib/api_engine_base/schema/admin/users.rb +15 -0
  49. data/lib/api_engine_base/schema/error/invalid_argument_response.rb +1 -1
  50. data/lib/api_engine_base/schema/inbox/blast_request.rb +15 -0
  51. data/lib/api_engine_base/schema/inbox/blast_response.rb +16 -0
  52. data/lib/api_engine_base/schema/inbox/message_blast_entity.rb +16 -0
  53. data/lib/api_engine_base/schema/inbox/message_blast_metadata.rb +16 -0
  54. data/lib/api_engine_base/schema/inbox/message_entity.rb +14 -0
  55. data/lib/api_engine_base/schema/inbox/metadata.rb +18 -0
  56. data/lib/api_engine_base/schema/inbox/modified.rb +13 -0
  57. data/lib/api_engine_base/schema/page.rb +14 -0
  58. data/lib/api_engine_base/schema/user.rb +28 -0
  59. data/lib/api_engine_base/schema.rb +13 -0
  60. data/lib/api_engine_base/spec_helper.rb +4 -3
  61. data/lib/api_engine_base/version.rb +1 -1
  62. data/lib/api_engine_base.rb +2 -2
  63. metadata +44 -5
  64. data/app/controllers/concerns/api_engine_base/schematizable.rb +0 -5
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "class_composer"
4
+
5
+ module ApiEngineBase
6
+ module Configuration
7
+ module User
8
+ class Config
9
+ include ClassComposer::Generator
10
+
11
+ ATTRIBUTES_TO_CHANGE = [
12
+ :email,
13
+ :first_name,
14
+ :last_name,
15
+ :last_known_timezone,
16
+ :username,
17
+ :verifier_token,
18
+ ]
19
+
20
+ ATTRIBUTES_TO_SHOW = [
21
+ *ATTRIBUTES_TO_CHANGE,
22
+ :id,
23
+ :roles,
24
+ :created_at,
25
+ ]
26
+
27
+ ATTRIBUTES_CHANGE_EXECUTE = Proc.new do |key, value|
28
+ ApiEngineBase::UserAttributes::Modify.assign!
29
+ end
30
+
31
+ ATTRIBUTES_SHOWN_EXECUTE = Proc.new do |key, value|
32
+ ApiEngineBase::Schema::User.assign!
33
+ end
34
+
35
+ add_composer :additional_attributes_for_change,
36
+ desc: "On top of the default attributes to change, this adds additional values for the user to change on their account",
37
+ allowed: Array,
38
+ default: [],
39
+ default_shown: "[]"
40
+
41
+ add_composer :default_attributes_for_change,
42
+ desc: "[Not Recommended for change] Default attributes that are allowed to change",
43
+ allowed: Array,
44
+ default: ATTRIBUTES_TO_CHANGE,
45
+ &ATTRIBUTES_CHANGE_EXECUTE
46
+
47
+ add_composer :default_attributes,
48
+ desc: "[Not Recommended for change] Default attributes that are shown to the user",
49
+ allowed: Array,
50
+ default_shown: ATTRIBUTES_TO_SHOW,
51
+ dynamic_default: -> (instance) { (ATTRIBUTES_TO_SHOW + instance.additional_attributes_for_change).uniq },
52
+ &ATTRIBUTES_SHOWN_EXECUTE
53
+ end
54
+ end
55
+ end
56
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "api_engine_base/authorization"
3
4
  require "api_engine_base/schema"
4
5
 
5
6
  module ApiEngineBase
@@ -8,14 +9,45 @@ module ApiEngineBase
8
9
 
9
10
  # Run after Rails loads the initializes and environment files
10
11
  # Ensures User has already set their desired config before we lock this down
11
- initializer "api_engine_base.config.instantiate", after: :load_config_initializers do |_app|
12
- # ensure defaults are instantiated and all variables are assigned
13
- ApiEngineBase.config.class_composer_assign_defaults!(children: true)
12
+ config.after_initialize do
13
+ db_rake_task = defined?(Rake) && (Rake.application.top_level_tasks.any? { |task| task =~ /db:/ } rescue nil)
14
+ if db_rake_task
15
+ # Because we call the Database during configuration setup,
16
+ # We want to skip calling the DB during a DB migration
17
+ else
18
+ # ensure defaults are instantiated and all variables are assigned
19
+ ApiEngineBase.config.class_composer_assign_defaults!(children: true)
14
20
 
15
- unless Rails.env.test?
16
- # Now that we can confirm all variables are defined, freeze all objects an their children
17
- ApiEngineBase.config.class_composer_freeze_objects!(behavior: :raise, children: true)
21
+ unless Rails.env.test?
22
+ # Now that we can confirm all variables are defined, freeze all objects an their children
23
+ ApiEngineBase.config.class_composer_freeze_objects!(behavior: :raise, children: true)
24
+ end
18
25
  end
19
26
  end
27
+
28
+
29
+ ####
30
+ # Bug: @matt-taylor
31
+ # RBAC code memoizes the controller object into a class variable
32
+ # In development when code changes, all classes get reloaded
33
+ # Inherently, this causes the `object_id` of the class to change
34
+ # This means the memoized class is no longer equal to the newly reloaded class
35
+ # NOTE: This is only a problem on reload! in development. Not an issue in Production
36
+ # Once this is fixed, it can go into a regular initializer and does not need to get re-computed on each reload
37
+ ###
38
+ # Potential solution:
39
+ # => Don't store the object as the comparison key
40
+ # => Or...When doing comparisons, convert everything to a string for comparison
41
+ # Changes to names should be infrequent/should have a full app restart
42
+
43
+ # Add all RBAC based role definitions prior to fork/loading
44
+ # Load once use forever
45
+ config.to_prepare do
46
+ ApiEngineBase::Authorization::Role.roles_reset!
47
+ ApiEngineBase::Authorization::Entity.entities_reset!
48
+ ApiEngineBase::Authorization.mapped_controllers_reset!
49
+
50
+ ApiEngineBase::Authorization.default_defined!
51
+ end
20
52
  end
21
53
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ class Error < StandardError; end
5
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "api_engine_base/schema/user"
4
+ require "api_engine_base/schema/page"
5
+
6
+ module ApiEngineBase
7
+ module Schema
8
+ module Admin
9
+ class Users < JsonSchematize::Generator
10
+ add_field name: :users, array_of_types: true, type: ApiEngineBase::Schema::User
11
+ add_field name: :pagination, type: ApiEngineBase::Schema::Page, required: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -9,7 +9,7 @@ module ApiEngineBase
9
9
  add_field name: :message, type: String, required: true
10
10
  add_field name: :status, type: String, required: true
11
11
  add_field name: :invalid_arguments, array_of_types: true, type: InvalidArgument
12
- add_field name: :invalid_argument_keys, type: Array
12
+ add_field name: :invalid_argument_keys, type: Array
13
13
  end
14
14
  end
15
15
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ module Schema
5
+ module Inbox
6
+ class BlastRequest < JsonSchematize::Generator
7
+ add_field name: :existing_users, type: JsonSchematize::Boolean
8
+ add_field name: :new_users, type: JsonSchematize::Boolean
9
+ add_field name: :title, type: String
10
+ add_field name: :text, type: String
11
+ add_field name: :id, type: Integer, required: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ module Schema
5
+ module Inbox
6
+ class BlastResponse < JsonSchematize::Generator
7
+ add_field name: :created_by, type: ApiEngineBase::Schema::User
8
+ add_field name: :existing_users, type: JsonSchematize::Boolean
9
+ add_field name: :new_users, type: JsonSchematize::Boolean
10
+ add_field name: :title, type: String
11
+ add_field name: :text, type: String
12
+ add_field name: :id, type: Integer, required: false
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ module Schema
5
+ module Inbox
6
+ class MessageBlastEntity < JsonSchematize::Generator
7
+ add_field name: :created_by, type: ApiEngineBase::Schema::User, required: false # to allow metadata call to be fast
8
+ add_field name: :text, type: String, required: false # to allow metadata call to be fast
9
+ add_field name: :title, type: String
10
+ add_field name: :id, type: Integer
11
+ add_field name: :existing_users, type: JsonSchematize::Boolean
12
+ add_field name: :new_users, type: JsonSchematize::Boolean
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "api_engine_base/schema/inbox/message_blast_entity"
4
+ require "api_engine_base/schema/page"
5
+
6
+ module ApiEngineBase
7
+ module Schema
8
+ module Inbox
9
+ class MessageBlastMetadata < JsonSchematize::Generator
10
+ add_field name: :entities, array_of_types: true, type: ApiEngineBase::Schema::Inbox::MessageBlastEntity, required: false
11
+ add_field name: :count, type: Integer
12
+ add_field name: :pagination, type: ApiEngineBase::Schema::Page, required: false
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ module Schema
5
+ module Inbox
6
+ class MessageEntity < JsonSchematize::Generator
7
+ add_field name: :title, type: String
8
+ add_field name: :id, type: Integer
9
+ add_field name: :text, type: String, required: false
10
+ add_field name: :viewed, type: JsonSchematize::Boolean
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "api_engine_base/schema/inbox/message_entity"
4
+ require "api_engine_base/schema/page"
5
+
6
+ module ApiEngineBase
7
+ module Schema
8
+ module Inbox
9
+ class Metadata < JsonSchematize::Generator
10
+ # schema_default option: :dig_type, value: :string
11
+
12
+ add_field name: :entities, array_of_types: true, type: ApiEngineBase::Schema::Inbox::MessageEntity, required: false
13
+ add_field name: :count, type: Integer
14
+ add_field name: :pagination, type: ApiEngineBase::Schema::Page, required: false
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ module Schema
5
+ module Inbox
6
+ class Modified < JsonSchematize::Generator
7
+ add_field name: :type, type: Symbol
8
+ add_field name: :ids, type: Array
9
+ add_field name: :count, type: Integer
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ module Schema
5
+ class Page < JsonSchematize::Generator
6
+ schema_default option: :dig_type, value: :string
7
+
8
+ add_field name: :count, type: Integer
9
+ add_field name: :cursor, type: Integer
10
+ add_field name: :limit, type: Integer
11
+ add_field name: :next, type: String
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApiEngineBase
4
+ module Schema
5
+ class User < JsonSchematize::Generator
6
+ schema_default option: :dig_type, value: :string
7
+
8
+ def self.convert_user_object(user:)
9
+ attributes = ApiEngineBase.config.user.default_attributes.map(&:to_s)
10
+ object = user.attributes.slice(*attributes)
11
+
12
+ new(object)
13
+ end
14
+
15
+ # Gets assigned during configuration phase via
16
+ # lib/api_engine_base/configuration/user/config.rb
17
+ def self.assign!
18
+ attributes = ApiEngineBase.config.user.default_attributes
19
+ attributes.each do |attribute|
20
+ if metadata = ::User.attribute_to_type_mapping[attribute]
21
+ type = metadata[:serialized_type] ? metadata[:serialized_type] : metadata[:base]
22
+ add_field(name: attribute, type:)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -21,5 +21,18 @@ module ApiEngineBase
21
21
 
22
22
  require "api_engine_base/schema/plain_text/login_request"
23
23
  require "api_engine_base/schema/plain_text/login_response"
24
+
25
+ require "api_engine_base/schema/admin/users"
26
+
27
+ require "api_engine_base/schema/user"
28
+ require "api_engine_base/schema/page"
29
+
30
+ require "api_engine_base/schema/inbox/metadata"
31
+ require "api_engine_base/schema/inbox/message_entity"
32
+ require "api_engine_base/schema/inbox/modified"
33
+ require "api_engine_base/schema/inbox/blast_response"
34
+ require "api_engine_base/schema/inbox/blast_request"
35
+ require "api_engine_base/schema/inbox/message_blast_entity"
36
+ require "api_engine_base/schema/inbox/message_blast_metadata"
24
37
  end
25
38
  end
@@ -2,17 +2,18 @@
2
2
 
3
3
  module ApiEngineBase
4
4
  module SpecHelper
5
- def set_jwt_token!(user:, token: nil)
5
+ def set_jwt_token!(user:, with_reset: false, token: nil)
6
6
  if token.nil?
7
7
  result = ApiEngineBase::Jwt::LoginCreate.(user:)
8
8
  token = result.token
9
9
  end
10
10
 
11
- @request.headers[ApiEngineBase::ApplicationController::AUTHORIZATION_HEADER] = "Bearer: #{token}"
11
+ @request.headers[ApiEngineBase::ApplicationController::AUTHENTICATION_HEADER] = "Bearer: #{token}"
12
+ @request.headers[ApiEngineBase::ApplicationController::AUTHENTICATION_WITH_RESET] = "true" if with_reset
12
13
  end
13
14
 
14
15
  def unset_jwt_token!
15
- @request.headers[ApiEngineBase::ApplicationController::AUTHORIZATION_HEADER] = nil
16
+ @request.headers[ApiEngineBase::ApplicationController::AUTHENTICATION_HEADER] = nil
16
17
  end
17
18
  end
18
19
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ApiEngineBase
4
- VERSION = "0.1.1"
4
+ VERSION = "0.2.0"
5
5
  end
@@ -1,10 +1,10 @@
1
+ require "api_engine_base/error"
2
+
1
3
  require "api_engine_base/version"
2
4
  require "api_engine_base/engine"
3
5
  require "api_engine_base/configuration/config"
4
6
 
5
7
  module ApiEngineBase
6
- class Error < StandardError; end
7
-
8
8
  def self.config
9
9
  @config ||= Configuration::Config.new
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_engine_base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - matt-taylor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-02 00:00:00.000000000 Z
11
+ date: 2025-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rotp
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0.10'
103
+ version: '0.11'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0.10'
110
+ version: '0.11'
111
111
  description: ApiEngineBase is the Base API to handle all the things you don't want
112
112
  to for a Rails API only backend serving a Dedicated frontend
113
113
  email:
@@ -119,21 +119,38 @@ files:
119
119
  - MIT-LICENSE
120
120
  - README.md
121
121
  - Rakefile
122
+ - app/controllers/api_engine_base/admin_controller.rb
122
123
  - app/controllers/api_engine_base/application_controller.rb
123
124
  - app/controllers/api_engine_base/auth/plain_text_controller.rb
125
+ - app/controllers/api_engine_base/inbox/message_blast_controller.rb
126
+ - app/controllers/api_engine_base/inbox/message_controller.rb
127
+ - app/controllers/api_engine_base/user_controller.rb
124
128
  - app/controllers/api_engine_base/username_controller.rb
125
- - app/controllers/concerns/api_engine_base/schematizable.rb
126
129
  - app/helpers/api_engine_base/application_helper.rb
127
130
  - app/helpers/api_engine_base/schema_helper.rb
128
131
  - app/jobs/api_engine_base/application_job.rb
129
132
  - app/mailers/api_engine_base/application_mailer.rb
130
133
  - app/mailers/api_engine_base/email_verification_mailer.rb
131
134
  - app/models/api_engine_base/application_record.rb
135
+ - app/models/message.rb
136
+ - app/models/message_blast.rb
132
137
  - app/models/user.rb
133
138
  - app/models/user_secret.rb
139
+ - app/services/api_engine_base/README.md
134
140
  - app/services/api_engine_base/argument_validation.rb
141
+ - app/services/api_engine_base/argument_validation/README.md
135
142
  - app/services/api_engine_base/argument_validation/class_methods.rb
136
143
  - app/services/api_engine_base/argument_validation/instance_methods.rb
144
+ - app/services/api_engine_base/authorize/validate.rb
145
+ - app/services/api_engine_base/inbox_service/blast/delete.rb
146
+ - app/services/api_engine_base/inbox_service/blast/metadata.rb
147
+ - app/services/api_engine_base/inbox_service/blast/new_user_blaster.rb
148
+ - app/services/api_engine_base/inbox_service/blast/retrieve.rb
149
+ - app/services/api_engine_base/inbox_service/blast/upsert.rb
150
+ - app/services/api_engine_base/inbox_service/message/metadata.rb
151
+ - app/services/api_engine_base/inbox_service/message/modify.rb
152
+ - app/services/api_engine_base/inbox_service/message/retrieve.rb
153
+ - app/services/api_engine_base/inbox_service/message/send.rb
137
154
  - app/services/api_engine_base/jwt/authenticate_user.rb
138
155
  - app/services/api_engine_base/jwt/decode.rb
139
156
  - app/services/api_engine_base/jwt/encode.rb
@@ -151,13 +168,23 @@ files:
151
168
  - app/services/api_engine_base/secrets/verify.rb
152
169
  - app/services/api_engine_base/service_base.rb
153
170
  - app/services/api_engine_base/service_logging.rb
171
+ - app/services/api_engine_base/user_attributes/modify.rb
172
+ - app/services/api_engine_base/user_attributes/roles.rb
154
173
  - app/services/api_engine_base/username/available.rb
155
174
  - app/views/api_engine_base/email_verification_mailer/verify_email.html.erb
156
175
  - config/routes.rb
157
176
  - db/migrate/20241117043720_create_api_engine_base_users.rb
158
177
  - db/migrate/20241204065708_create_api_engine_base_user_secrets.rb
178
+ - db/migrate/20250223023306_create_api_engine_base_messages.rb
179
+ - db/migrate/20250223023313_create_api_engine_base_message_blasts.rb
159
180
  - lib/api_engine_base.rb
181
+ - lib/api_engine_base/authorization.rb
182
+ - lib/api_engine_base/authorization/default.yml
183
+ - lib/api_engine_base/authorization/entity.rb
184
+ - lib/api_engine_base/authorization/role.rb
185
+ - lib/api_engine_base/configuration/admin/config.rb
160
186
  - lib/api_engine_base/configuration/application/config.rb
187
+ - lib/api_engine_base/configuration/authorization/config.rb
161
188
  - lib/api_engine_base/configuration/base.rb
162
189
  - lib/api_engine_base/configuration/config.rb
163
190
  - lib/api_engine_base/configuration/email/config.rb
@@ -167,13 +194,24 @@ files:
167
194
  - lib/api_engine_base/configuration/login/strategy/plain_text/email_verify.rb
168
195
  - lib/api_engine_base/configuration/login/strategy/plain_text/lockable.rb
169
196
  - lib/api_engine_base/configuration/otp/config.rb
197
+ - lib/api_engine_base/configuration/user/config.rb
170
198
  - lib/api_engine_base/configuration/username/check.rb
171
199
  - lib/api_engine_base/configuration/username/config.rb
172
200
  - lib/api_engine_base/engine.rb
201
+ - lib/api_engine_base/error.rb
173
202
  - lib/api_engine_base/schema.rb
203
+ - lib/api_engine_base/schema/admin/users.rb
174
204
  - lib/api_engine_base/schema/error/base.rb
175
205
  - lib/api_engine_base/schema/error/invalid_argument.rb
176
206
  - lib/api_engine_base/schema/error/invalid_argument_response.rb
207
+ - lib/api_engine_base/schema/inbox/blast_request.rb
208
+ - lib/api_engine_base/schema/inbox/blast_response.rb
209
+ - lib/api_engine_base/schema/inbox/message_blast_entity.rb
210
+ - lib/api_engine_base/schema/inbox/message_blast_metadata.rb
211
+ - lib/api_engine_base/schema/inbox/message_entity.rb
212
+ - lib/api_engine_base/schema/inbox/metadata.rb
213
+ - lib/api_engine_base/schema/inbox/modified.rb
214
+ - lib/api_engine_base/schema/page.rb
177
215
  - lib/api_engine_base/schema/plain_text/create_user_request.rb
178
216
  - lib/api_engine_base/schema/plain_text/create_user_response.rb
179
217
  - lib/api_engine_base/schema/plain_text/email_verify_request.rb
@@ -182,6 +220,7 @@ files:
182
220
  - lib/api_engine_base/schema/plain_text/email_verify_send_response.rb
183
221
  - lib/api_engine_base/schema/plain_text/login_request.rb
184
222
  - lib/api_engine_base/schema/plain_text/login_response.rb
223
+ - lib/api_engine_base/schema/user.rb
185
224
  - lib/api_engine_base/spec_helper.rb
186
225
  - lib/api_engine_base/version.rb
187
226
  - lib/generators/api_engine_base/configure/USAGE
@@ -1,5 +0,0 @@
1
- module ApiEngineBase
2
- class Schematizable
3
- end
4
- end
5
-