ibrain-core 0.1.3 → 0.1.4
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/controllers/ibrain/graphql_controller.rb +1 -1
- data/app/graphql/ibrain/extentions/default_value.rb +0 -2
- data/app/graphql/ibrain/interfaces/record_interface.rb +0 -2
- data/app/graphql/ibrain/resolvers/base_resolver.rb +3 -3
- data/app/graphql/ibrain/types/base_node.rb +1 -1
- data/app/graphql/ibrain/types/base_object.rb +1 -1
- data/app/graphql/ibrain/types/filter_type.rb +0 -1
- data/app/models/ibrain/base.rb +18 -12
- data/app/repositories/ibrain/base_repository.rb +18 -0
- data/lib/generators/ibrain/graphql/core.rb +4 -0
- data/lib/generators/ibrain/graphql/mutation_generator.rb +4 -0
- data/lib/generators/ibrain/graphql/object_generator.rb +7 -0
- data/lib/generators/ibrain/graphql/resolver_generator.rb +4 -0
- data/lib/generators/ibrain/graphql/resolvers_generator.rb +4 -0
- data/lib/generators/ibrain/graphql/templates/aggregate.erb +1 -1
- data/lib/generators/ibrain/graphql/templates/mutation.erb +2 -1
- data/lib/generators/ibrain/graphql/templates/repository.erb +19 -0
- data/lib/generators/ibrain/graphql/templates/resolver.erb +1 -1
- data/lib/generators/ibrain/graphql/templates/resolvers.erb +1 -1
- data/lib/generators/ibrain/install/templates/graphql/app_schema.rb.tt +0 -2
- data/lib/generators/ibrain/install/templates/rubocop.yml.tt +19 -2
- data/lib/ibrain/core/controller_helpers/auth.rb +6 -2
- data/lib/ibrain/core/version.rb +2 -2
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4037e5cd9ca8b82b658114e6d61cf5376861c2d39dc0ad5b63e1a41a56ef482b
|
4
|
+
data.tar.gz: a1723cc8a56105297c25e92286d8547d9aead9936b342cf40b1adf19b156398b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5459ecaf4eb74fe6afa3a482040a3495d189f1a583344527b585be5203b58ba440bfceadcf8b14f5c7530fc3bc74f3d6ba2b093afb28c89a0d93efed8c553ad7
|
7
|
+
data.tar.gz: 3bdf0366d1c33131c247c767fe9ee8dd3c4637e453124d1ad04c93b8712b62a802276ddab578a372950db3ab5317162ff0868795ec3c9f1bc716f383a0c31ea2
|
@@ -3,9 +3,9 @@
|
|
3
3
|
module Ibrain
|
4
4
|
module Resolvers
|
5
5
|
class BaseResolver < GraphQL::Schema::Resolver
|
6
|
-
argument :filter, Ibrain::Types::FilterType, required: false, default_value: nil
|
7
|
-
argument :limit, Int, required: false, default_value: 10
|
8
|
-
argument :offset, Int, required: false, default_value: 0
|
6
|
+
argument :filter, Ibrain::Types::FilterType, required: false, default_value: nil
|
7
|
+
argument :limit, Int, required: false, default_value: 10
|
8
|
+
argument :offset, Int, required: false, default_value: 0
|
9
9
|
|
10
10
|
def current_user
|
11
11
|
context.fetch(:current_user)
|
data/app/models/ibrain/base.rb
CHANGED
@@ -5,16 +5,12 @@ class Ibrain::Base < Ibrain::ApplicationRecord
|
|
5
5
|
|
6
6
|
self.abstract_class = true
|
7
7
|
|
8
|
-
def self.adjust_date_for_cdt(datetime)
|
9
|
-
datetime.in_time_zone('UTC')
|
10
|
-
end
|
11
|
-
|
12
8
|
def string_id
|
13
9
|
try(:id).try(:to_s)
|
14
10
|
end
|
15
11
|
|
16
12
|
scope :graphql_ransack, lambda { |params|
|
17
|
-
ransack(params).result
|
13
|
+
ransack(params).result
|
18
14
|
}
|
19
15
|
|
20
16
|
scope :reverse_scope, lambda {
|
@@ -36,12 +32,22 @@ class Ibrain::Base < Ibrain::ApplicationRecord
|
|
36
32
|
time_ago_in_words(created_at)
|
37
33
|
end
|
38
34
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
35
|
+
class << self
|
36
|
+
# Provides a scope that should be included any time data
|
37
|
+
# are fetched with the intention of displaying to the user.
|
38
|
+
#
|
39
|
+
# Allows individual stores to include any active record scopes or joins
|
40
|
+
# when data are displayed.
|
41
|
+
def display_includes
|
42
|
+
where(nil)
|
43
|
+
end
|
44
|
+
|
45
|
+
def paginate(args)
|
46
|
+
limit(args[:limit]).offset(args[:offset])
|
47
|
+
end
|
48
|
+
|
49
|
+
def adjust_date_for_cdt(datetime)
|
50
|
+
datetime.in_time_zone('UTC')
|
51
|
+
end
|
46
52
|
end
|
47
53
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ibrain
|
4
|
+
class BaseRepository
|
5
|
+
def initialize(current_user, record)
|
6
|
+
@current_user = current_user
|
7
|
+
@record = record
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :current_user, :record
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def cryptor
|
15
|
+
Ibrain::Encryptor.new
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -36,6 +36,10 @@ module Ibrain
|
|
36
36
|
create_mutation_root_type
|
37
37
|
end
|
38
38
|
|
39
|
+
if options[:model].present?
|
40
|
+
system("bundle exec rails generate ibrain:graphql:object #{options[:model].downcase}")
|
41
|
+
end
|
42
|
+
|
39
43
|
template "mutation.erb", "#{options[:directory]}/mutations/#{file_name}.rb"
|
40
44
|
|
41
45
|
sentinel = /class .*MutationType\s*<\s*[^\s]+?\n/m
|
@@ -29,7 +29,10 @@ module Ibrain
|
|
29
29
|
desc: "Include the Relay Node interface"
|
30
30
|
|
31
31
|
def create_type_file
|
32
|
+
create_dir('app/repositories') unless Dir.exist?('app/repositories')
|
33
|
+
|
32
34
|
template "object.erb", "#{options[:directory]}/types/objects/#{type_file_name}.rb"
|
35
|
+
template "repository.erb", "app/repositories/#{type_name}_repository.rb"
|
33
36
|
end
|
34
37
|
|
35
38
|
def fields
|
@@ -72,6 +75,10 @@ module Ibrain
|
|
72
75
|
false
|
73
76
|
end
|
74
77
|
|
78
|
+
def model_name
|
79
|
+
type_name.capitalize
|
80
|
+
end
|
81
|
+
|
75
82
|
def klass
|
76
83
|
@klass ||= Module.const_get(type_name.camelize)
|
77
84
|
end
|
@@ -20,6 +20,10 @@ module Ibrain
|
|
20
20
|
create_resolver_root_type
|
21
21
|
end
|
22
22
|
|
23
|
+
if options[:model].present?
|
24
|
+
system("bundle exec rails generate ibrain:graphql:object #{options[:model].downcase}")
|
25
|
+
end
|
26
|
+
|
23
27
|
template "resolver.erb", "#{options[:directory]}/resolvers/#{file_name}.rb"
|
24
28
|
|
25
29
|
sentinel = /class .*QueryType\s*<\s*[^\s]+?\n/m
|
@@ -36,6 +36,10 @@ module Ibrain
|
|
36
36
|
create_resolver_root_type
|
37
37
|
end
|
38
38
|
|
39
|
+
if options[:model].present?
|
40
|
+
system("bundle exec rails generate ibrain:graphql:object #{options[:model].downcase}")
|
41
|
+
end
|
42
|
+
|
39
43
|
template "resolvers.erb", "#{options[:directory]}/resolvers/#{file_name}.rb"
|
40
44
|
template "aggregate.erb", "#{options[:directory]}/resolvers/#{file_name}_aggregate.rb"
|
41
45
|
|
@@ -6,7 +6,7 @@ module Resolvers
|
|
6
6
|
description 'Define aggregate to count total records for <%= resolver_name %>'
|
7
7
|
# define resolve method
|
8
8
|
def resolve(args)
|
9
|
-
<%= model_name.capitalize
|
9
|
+
<%= model_name.capitalize %>Repository.aggregate(args)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
<% module_namespacing_when_supported do -%>
|
4
|
+
class <%= model_name %>Repository < Ibrain::BaseRepository
|
5
|
+
def initialize(current_user, record = nil)
|
6
|
+
super(current_user, record)
|
7
|
+
end
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def find(args)
|
11
|
+
<%= model_name %>.find args[:id]
|
12
|
+
end
|
13
|
+
|
14
|
+
def aggregate(args)
|
15
|
+
<%= model_name %>.ransack(args[:filter]).result
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
<% end -%>
|
@@ -113,6 +113,7 @@ Rails/DynamicFindBy:
|
|
113
113
|
# It's okay to skip model validations to setup a spec.
|
114
114
|
Rails/SkipsModelValidations:
|
115
115
|
Exclude:
|
116
|
+
- db/seeds/**/*.rb
|
116
117
|
- '*/spec/**/*'
|
117
118
|
|
118
119
|
# We use a lot of
|
@@ -277,7 +278,7 @@ Metrics/BlockLength:
|
|
277
278
|
Metrics/CyclomaticComplexity:
|
278
279
|
Enabled: false
|
279
280
|
|
280
|
-
|
281
|
+
Layout/LineLength:
|
281
282
|
Enabled: false
|
282
283
|
|
283
284
|
Metrics/MethodLength:
|
@@ -595,4 +596,20 @@ Gemspec/RequiredRubyVersion:
|
|
595
596
|
Enabled: false
|
596
597
|
|
597
598
|
GraphQL/FieldDescription:
|
598
|
-
Enabled: false
|
599
|
+
Enabled: false
|
600
|
+
|
601
|
+
GraphQL/ObjectDescription:
|
602
|
+
Enabled: true
|
603
|
+
Exclude:
|
604
|
+
- app/graphql/policies/*.rb
|
605
|
+
- app/graphql/*.rb
|
606
|
+
|
607
|
+
GraphQL/ExtractType:
|
608
|
+
Enabled: false
|
609
|
+
|
610
|
+
Rails/UnknownEnv:
|
611
|
+
Environments:
|
612
|
+
- production
|
613
|
+
- development
|
614
|
+
- test
|
615
|
+
- staging
|
@@ -52,11 +52,15 @@ module Ibrain
|
|
52
52
|
# This one will be defined by apps looking to hook into Ibrain
|
53
53
|
# As per authentication_helpers.rb
|
54
54
|
if respond_to?(:ibrain_current_user, true)
|
55
|
-
ibrain_current_user
|
55
|
+
try(:ibrain_current_user)
|
56
56
|
# This one will be defined by Devise
|
57
57
|
elsif respond_to?(:current_ibrain_user, true)
|
58
|
-
current_ibrain_user
|
58
|
+
try(:current_ibrain_user)
|
59
59
|
end
|
60
|
+
rescue StandardError => e
|
61
|
+
Ibrain::Logger.warn e.message.to_s
|
62
|
+
|
63
|
+
nil
|
60
64
|
end
|
61
65
|
end
|
62
66
|
end
|
data/lib/ibrain/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ibrain-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tai Nguyen Van
|
@@ -210,6 +210,7 @@ files:
|
|
210
210
|
- app/models/ibrain/legacy_user.rb
|
211
211
|
- app/models/ibrain/role.rb
|
212
212
|
- app/models/ibrain/role_user.rb
|
213
|
+
- app/repositories/ibrain/base_repository.rb
|
213
214
|
- config/initializers/friendly_id.rb
|
214
215
|
- config/locales/en.yml
|
215
216
|
- config/locales/jp.yml
|
@@ -223,6 +224,7 @@ files:
|
|
223
224
|
- lib/generators/ibrain/graphql/templates/aggregate.erb
|
224
225
|
- lib/generators/ibrain/graphql/templates/mutation.erb
|
225
226
|
- lib/generators/ibrain/graphql/templates/object.erb
|
227
|
+
- lib/generators/ibrain/graphql/templates/repository.erb
|
226
228
|
- lib/generators/ibrain/graphql/templates/resolver.erb
|
227
229
|
- lib/generators/ibrain/graphql/templates/resolvers.erb
|
228
230
|
- lib/generators/ibrain/graphql/type_generator.rb
|