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.
- checksums.yaml +4 -4
- data/README.md +37 -6
- data/app/controllers/api_engine_base/admin_controller.rb +104 -0
- data/app/controllers/api_engine_base/application_controller.rb +45 -11
- data/app/controllers/api_engine_base/auth/plain_text_controller.rb +1 -1
- data/app/controllers/api_engine_base/inbox/message_blast_controller.rb +89 -0
- data/app/controllers/api_engine_base/inbox/message_controller.rb +79 -0
- data/app/controllers/api_engine_base/user_controller.rb +49 -0
- data/app/models/api_engine_base/application_record.rb +38 -0
- data/app/models/message.rb +30 -0
- data/app/models/message_blast.rb +27 -0
- data/app/models/user.rb +15 -4
- data/app/services/api_engine_base/README.md +49 -0
- data/app/services/api_engine_base/argument_validation/README.md +192 -0
- data/app/services/api_engine_base/argument_validation/class_methods.rb +2 -3
- data/app/services/api_engine_base/argument_validation/instance_methods.rb +13 -1
- data/app/services/api_engine_base/authorize/validate.rb +49 -0
- data/app/services/api_engine_base/inbox_service/blast/delete.rb +23 -0
- data/app/services/api_engine_base/inbox_service/blast/metadata.rb +26 -0
- data/app/services/api_engine_base/inbox_service/blast/new_user_blaster.rb +24 -0
- data/app/services/api_engine_base/inbox_service/blast/retrieve.rb +30 -0
- data/app/services/api_engine_base/inbox_service/blast/upsert.rb +67 -0
- data/app/services/api_engine_base/inbox_service/message/metadata.rb +35 -0
- data/app/services/api_engine_base/inbox_service/message/modify.rb +44 -0
- data/app/services/api_engine_base/inbox_service/message/retrieve.rb +36 -0
- data/app/services/api_engine_base/inbox_service/message/send.rb +33 -0
- data/app/services/api_engine_base/jwt/authenticate_user.rb +22 -7
- data/app/services/api_engine_base/jwt/login_create.rb +1 -1
- data/app/services/api_engine_base/login_strategy/plain_text/create.rb +1 -0
- data/app/services/api_engine_base/service_base.rb +4 -5
- data/app/services/api_engine_base/user_attributes/modify.rb +68 -0
- data/app/services/api_engine_base/user_attributes/roles.rb +27 -0
- data/config/routes.rb +32 -0
- data/db/migrate/20241117043720_create_api_engine_base_users.rb +2 -0
- data/db/migrate/20250223023306_create_api_engine_base_messages.rb +12 -0
- data/db/migrate/20250223023313_create_api_engine_base_message_blasts.rb +14 -0
- data/lib/api_engine_base/authorization/default.yml +42 -0
- data/lib/api_engine_base/authorization/entity.rb +101 -0
- data/lib/api_engine_base/authorization/role.rb +101 -0
- data/lib/api_engine_base/authorization.rb +85 -0
- data/lib/api_engine_base/configuration/admin/config.rb +18 -0
- data/lib/api_engine_base/configuration/application/config.rb +2 -2
- data/lib/api_engine_base/configuration/authorization/config.rb +24 -0
- data/lib/api_engine_base/configuration/config.rb +19 -1
- data/lib/api_engine_base/configuration/user/config.rb +56 -0
- data/lib/api_engine_base/engine.rb +38 -6
- data/lib/api_engine_base/error.rb +5 -0
- data/lib/api_engine_base/schema/admin/users.rb +15 -0
- data/lib/api_engine_base/schema/error/invalid_argument_response.rb +1 -1
- data/lib/api_engine_base/schema/inbox/blast_request.rb +15 -0
- data/lib/api_engine_base/schema/inbox/blast_response.rb +16 -0
- data/lib/api_engine_base/schema/inbox/message_blast_entity.rb +16 -0
- data/lib/api_engine_base/schema/inbox/message_blast_metadata.rb +16 -0
- data/lib/api_engine_base/schema/inbox/message_entity.rb +14 -0
- data/lib/api_engine_base/schema/inbox/metadata.rb +18 -0
- data/lib/api_engine_base/schema/inbox/modified.rb +13 -0
- data/lib/api_engine_base/schema/page.rb +14 -0
- data/lib/api_engine_base/schema/user.rb +28 -0
- data/lib/api_engine_base/schema.rb +13 -0
- data/lib/api_engine_base/spec_helper.rb +4 -3
- data/lib/api_engine_base/version.rb +1 -1
- data/lib/api_engine_base.rb +2 -2
- metadata +44 -5
- 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
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
16
|
-
|
17
|
-
|
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,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,
|
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::
|
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::
|
16
|
+
@request.headers[ApiEngineBase::ApplicationController::AUTHENTICATION_HEADER] = nil
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
data/lib/api_engine_base.rb
CHANGED
@@ -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.
|
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-
|
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.
|
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.
|
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
|