ibrain-core 0.4.0 → 0.4.3

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: 32e7f7587c35fbd6a0418ddc3a68d557d8c5e06e3108f93f83269e84f655f119
4
- data.tar.gz: 71ed276d87fe72d9a0b0ddeab4ffb326898e6339702e6cf67020e4a1ed118fa6
3
+ metadata.gz: 26a30919c92210c8aee940c6eef87714f5f32fd072af49c171af08018f532b1e
4
+ data.tar.gz: 35355d0e6193503c2d58547ac5c0919650ecadf3784a0a446c8794108c53bd30
5
5
  SHA512:
6
- metadata.gz: 20b9c68ba3d42d1a655990b88aa570a3aa67bf93c706db8182b6e0cbd8f89aa4845b004065d6de5abfb4e5ca516c1e280a1b001d49d5b8b36a31890590d5e57c
7
- data.tar.gz: 42476c629594393be8463e800646adeecf91967c3b01399632b99d7bd6d1c1dcdd8a25ac2dc40235c7f77afcb7fbe4a10646e3db3fa8c262838aeaffb8415e28
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 resolve(args)
15
- @params = ::ActionController::Parameters.new(args)
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 :<%= model_name.underscore %>, Types::Objects::<%= model_name %>Type, null: false, description: 'Record Type for mutation response'
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
- # argument :<%= model_name.underscore %>, Types::Attributes::<%= model_name %>Input, required: true
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 Repository.new(current_user, Post.new).create(args)
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
@@ -50,6 +50,9 @@ Ibrain.config do |config|
50
50
 
51
51
  # For max depth graphql
52
52
  config.graphql_max_depth = 3
53
+
54
+ # For auto append mutation to graphql
55
+ config.is_auto_append_mutation = true
53
56
  end
54
57
 
55
58
  <% if defined?(Ibrain::Api::Engine) -%>
@@ -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
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ibrain
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.3"
5
5
 
6
6
  def self.ibrain_version
7
7
  VERSION
8
8
  end
9
9
 
10
10
  def self.previous_ibrain_minor_version
11
- '0.3.9'
11
+ '0.4.2'
12
12
  end
13
13
 
14
14
  def self.ibrain_gem_version
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.0
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-08-04 00:00:00.000000000 Z
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.7
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.