ibrain-core 0.4.0 → 0.4.3
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/app/graphql/ibrain/mutations/base_mutation.rb +29 -3
- data/app/graphql/ibrain/types/base_object.rb +10 -0
- data/lib/generators/ibrain/graphql/mutation_generator.rb +1 -0
- data/lib/generators/ibrain/graphql/resolver_generator.rb +1 -0
- data/lib/generators/ibrain/graphql/resolvers_generator.rb +1 -0
- data/lib/generators/ibrain/graphql/templates/mutation.erb +24 -3
- data/lib/generators/ibrain/install/templates/config/initializers/ibrain.rb.tt +3 -0
- data/lib/ibrain/app_configuration.rb +2 -0
- data/lib/ibrain/core/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26a30919c92210c8aee940c6eef87714f5f32fd072af49c171af08018f532b1e
|
4
|
+
data.tar.gz: 35355d0e6193503c2d58547ac5c0919650ecadf3784a0a446c8794108c53bd30
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc5f54d06be873dc940b18819bb5490fcd58c0a7582b08853694e3b508a94f154a5288894e43e2d96f9b9cdb9601a18149b2538ca7d3427ff4078f351d79935a
|
7
|
+
data.tar.gz: d82ae0620f53243f1958d79e0b80ed81c55403d94a3138c7307a44043f0e8a6aa6edfdabc4c99fb0c2033c172fe27572ff5bf52c9a28ceec359bb16156243b13
|
@@ -11,13 +11,17 @@ module Ibrain
|
|
11
11
|
argument :attribute, Types::AttributeType, required: false
|
12
12
|
argument :attributes, [Types::AttributeType], required: false
|
13
13
|
|
14
|
-
def
|
15
|
-
@params =
|
14
|
+
def ready?(args)
|
15
|
+
@params = ActionController::Parameters.new(
|
16
|
+
args.to_h.with_indifferent_access.transform_keys(&:underscore)
|
17
|
+
)
|
18
|
+
@resource = load_resource
|
19
|
+
true
|
16
20
|
end
|
17
21
|
|
18
22
|
protected
|
19
23
|
|
20
|
-
attr_reader :params
|
24
|
+
attr_reader :params, :resource
|
21
25
|
|
22
26
|
def upload_permitted
|
23
27
|
%i[content_type headers original_filename tempfile]
|
@@ -42,6 +46,28 @@ module Ibrain
|
|
42
46
|
def request
|
43
47
|
context[:request]
|
44
48
|
end
|
49
|
+
|
50
|
+
def graphql_return
|
51
|
+
{
|
52
|
+
returning: resource.reload
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
def success_response
|
57
|
+
{
|
58
|
+
success: true
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
def id_from_params
|
63
|
+
params[:id]
|
64
|
+
end
|
65
|
+
|
66
|
+
def attribute_params
|
67
|
+
params[:attributes].to_params
|
68
|
+
rescue StandardError
|
69
|
+
ActionController::Parameters.new({})
|
70
|
+
end
|
45
71
|
end
|
46
72
|
end
|
47
73
|
end
|
@@ -11,6 +11,16 @@ module Ibrain
|
|
11
11
|
field_class ::Ibrain::Types::BaseField
|
12
12
|
|
13
13
|
field :name, String, null: true
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
def loader
|
18
|
+
Ibrain::Loaders::AssociationLoader
|
19
|
+
end
|
20
|
+
|
21
|
+
def current_user
|
22
|
+
context.try(:fetch, :current_user)
|
23
|
+
end
|
14
24
|
end
|
15
25
|
end
|
16
26
|
end
|
@@ -42,6 +42,7 @@ module Ibrain
|
|
42
42
|
end
|
43
43
|
|
44
44
|
template "mutation.erb", "#{options[:directory]}/mutations/#{file_name}.rb"
|
45
|
+
return unless ::Ibrain::Config.is_auto_append_mutation
|
45
46
|
|
46
47
|
in_root do
|
47
48
|
gsub_file "#{options[:directory]}/types/mutation_type.rb", / \# TODO: Add Mutations as fields\s*\n/m, ""
|
@@ -25,6 +25,7 @@ module Ibrain
|
|
25
25
|
end
|
26
26
|
|
27
27
|
template "resolver.erb", "#{options[:directory]}/resolvers/#{file_name}.rb"
|
28
|
+
return unless ::Ibrain::Config.is_auto_append_mutation
|
28
29
|
|
29
30
|
in_root do
|
30
31
|
gsub_file "#{options[:directory]}/types/query_type.rb", / \# TODO: Add Resolvers as fields\s*\n/m, ""
|
@@ -43,6 +43,7 @@ module Ibrain
|
|
43
43
|
|
44
44
|
template "resolvers.erb", "#{options[:directory]}/resolvers/#{file_name}.rb"
|
45
45
|
template "aggregate.erb", "#{options[:directory]}/resolvers/#{file_name}_aggregate.rb"
|
46
|
+
return unless ::Ibrain::Config.is_auto_append_mutation
|
46
47
|
|
47
48
|
in_root do
|
48
49
|
gsub_file "#{options[:directory]}/types/query_type.rb", / \# TODO: Add Resolvers as fields\s*\n/m, ""
|
@@ -7,16 +7,37 @@ module Mutations
|
|
7
7
|
# description
|
8
8
|
|
9
9
|
# TODO: define return fields
|
10
|
-
field
|
10
|
+
field :returning, Types::Objects::<%= model_name %>Type, null: true, description: 'Record Type for mutation response'
|
11
11
|
|
12
12
|
# TODO: define arguments
|
13
13
|
# argument :name, String, required: true
|
14
|
-
|
14
|
+
argument :attributes, Types::Attributes::<%= model_name %>Input, required: true
|
15
|
+
# argument :id, ID, required: true
|
15
16
|
|
16
17
|
# TODO: define resolve method
|
17
18
|
def resolve(args)
|
18
19
|
# TODO: define logic inside repository
|
19
|
-
# Something like
|
20
|
+
# Something like
|
21
|
+
# if resource.blank?
|
22
|
+
# raise GraphQL::ExecutionError, I18n.t("activerecord.errors.models.job.attributes.id.could_not_find")
|
23
|
+
# end
|
24
|
+
|
25
|
+
# repo.update(normalize_parameters)
|
26
|
+
graphql_return
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def normalize_parameters
|
32
|
+
# attribute_params.permit(:name, :status)
|
33
|
+
end
|
34
|
+
|
35
|
+
def load_resource
|
36
|
+
# <%= model_name %>.find_by(id: id_from_params)
|
37
|
+
end
|
38
|
+
|
39
|
+
def repo
|
40
|
+
# <%= model_name %>Repository.new(current_user, resource)
|
20
41
|
end
|
21
42
|
end
|
22
43
|
end
|
@@ -55,6 +55,8 @@ module Ibrain
|
|
55
55
|
|
56
56
|
preference :graphql_max_depth, :integer, default: 3
|
57
57
|
|
58
|
+
preference :is_auto_append_mutation, :boolean, default: true
|
59
|
+
|
58
60
|
def static_model_preferences
|
59
61
|
@static_model_preferences ||= Ibrain::Preferences::StaticModelPreferences.new
|
60
62
|
end
|
data/lib/ibrain/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ibrain-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tai Nguyen Van
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord-session_store
|
@@ -308,7 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
308
308
|
- !ruby/object:Gem::Version
|
309
309
|
version: '0'
|
310
310
|
requirements: []
|
311
|
-
rubygems_version: 3.3.
|
311
|
+
rubygems_version: 3.3.20
|
312
312
|
signing_key:
|
313
313
|
specification_version: 4
|
314
314
|
summary: Its Core is an sso authen gem for Ruby on Rails.
|