graphql_scaffold_fan 0.1.4 → 0.1.7
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/Gemfile.lock +129 -1
- data/README.md +9 -2
- data/graphql_scaffold_fan.gemspec +2 -1
- data/lib/generators/graphql_scaffold/init_generator.rb +17 -1
- data/lib/generators/templates/admin_controller.haml +1 -9
- data/lib/generators/templates/admin_schema.haml +1 -1
- data/lib/generators/templates/mutation_create.haml +1 -1
- data/lib/graphql_scaffold_fan/version.rb +1 -1
- metadata +31 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 72714862b9f0922c1836a6ff8e70f4c19d7a758cad55cbd41e239dcb2e609486
|
|
4
|
+
data.tar.gz: 01a8cf74e2319f31611ff818d63e6c58b27f746b63d12546533647593e62b81c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a5fc720f4825e05623c0e81a511778a9b05664920455063fb2ac859f411df0fb5c92504060c17f85efd8cba09b7d4fb30013379b737a0a0d7cdca100d71c16d2
|
|
7
|
+
data.tar.gz: 9281a9f5d78e069f7f76e6761c49a874450a318898358147f8b4c1801b346228a9e006ba1f71295195a6d8f5298a2b99d0ba6937ad89b8abc8f16c79586db148
|
data/Gemfile.lock
CHANGED
|
@@ -1,17 +1,145 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
graphql_scaffold_fan (0.1.
|
|
4
|
+
graphql_scaffold_fan (0.1.7)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
+
actioncable (6.1.6.1)
|
|
10
|
+
actionpack (= 6.1.6.1)
|
|
11
|
+
activesupport (= 6.1.6.1)
|
|
12
|
+
nio4r (~> 2.0)
|
|
13
|
+
websocket-driver (>= 0.6.1)
|
|
14
|
+
actionmailbox (6.1.6.1)
|
|
15
|
+
actionpack (= 6.1.6.1)
|
|
16
|
+
activejob (= 6.1.6.1)
|
|
17
|
+
activerecord (= 6.1.6.1)
|
|
18
|
+
activestorage (= 6.1.6.1)
|
|
19
|
+
activesupport (= 6.1.6.1)
|
|
20
|
+
mail (>= 2.7.1)
|
|
21
|
+
actionmailer (6.1.6.1)
|
|
22
|
+
actionpack (= 6.1.6.1)
|
|
23
|
+
actionview (= 6.1.6.1)
|
|
24
|
+
activejob (= 6.1.6.1)
|
|
25
|
+
activesupport (= 6.1.6.1)
|
|
26
|
+
mail (~> 2.5, >= 2.5.4)
|
|
27
|
+
rails-dom-testing (~> 2.0)
|
|
28
|
+
actionpack (6.1.6.1)
|
|
29
|
+
actionview (= 6.1.6.1)
|
|
30
|
+
activesupport (= 6.1.6.1)
|
|
31
|
+
rack (~> 2.0, >= 2.0.9)
|
|
32
|
+
rack-test (>= 0.6.3)
|
|
33
|
+
rails-dom-testing (~> 2.0)
|
|
34
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
35
|
+
actiontext (6.1.6.1)
|
|
36
|
+
actionpack (= 6.1.6.1)
|
|
37
|
+
activerecord (= 6.1.6.1)
|
|
38
|
+
activestorage (= 6.1.6.1)
|
|
39
|
+
activesupport (= 6.1.6.1)
|
|
40
|
+
nokogiri (>= 1.8.5)
|
|
41
|
+
actionview (6.1.6.1)
|
|
42
|
+
activesupport (= 6.1.6.1)
|
|
43
|
+
builder (~> 3.1)
|
|
44
|
+
erubi (~> 1.4)
|
|
45
|
+
rails-dom-testing (~> 2.0)
|
|
46
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
47
|
+
activejob (6.1.6.1)
|
|
48
|
+
activesupport (= 6.1.6.1)
|
|
49
|
+
globalid (>= 0.3.6)
|
|
50
|
+
activemodel (6.1.6.1)
|
|
51
|
+
activesupport (= 6.1.6.1)
|
|
52
|
+
activerecord (6.1.6.1)
|
|
53
|
+
activemodel (= 6.1.6.1)
|
|
54
|
+
activesupport (= 6.1.6.1)
|
|
55
|
+
activestorage (6.1.6.1)
|
|
56
|
+
actionpack (= 6.1.6.1)
|
|
57
|
+
activejob (= 6.1.6.1)
|
|
58
|
+
activerecord (= 6.1.6.1)
|
|
59
|
+
activesupport (= 6.1.6.1)
|
|
60
|
+
marcel (~> 1.0)
|
|
61
|
+
mini_mime (>= 1.1.0)
|
|
62
|
+
activesupport (6.1.6.1)
|
|
63
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
64
|
+
i18n (>= 1.6, < 2)
|
|
65
|
+
minitest (>= 5.1)
|
|
66
|
+
tzinfo (~> 2.0)
|
|
67
|
+
zeitwerk (~> 2.3)
|
|
68
|
+
builder (3.2.4)
|
|
69
|
+
concurrent-ruby (1.1.10)
|
|
70
|
+
crass (1.0.6)
|
|
71
|
+
erubi (1.10.0)
|
|
72
|
+
globalid (1.0.0)
|
|
73
|
+
activesupport (>= 5.0)
|
|
74
|
+
graphql (2.0.11)
|
|
75
|
+
graphql_playground-rails (2.1.0)
|
|
76
|
+
rails (>= 5.1.0)
|
|
77
|
+
i18n (1.12.0)
|
|
78
|
+
concurrent-ruby (~> 1.0)
|
|
79
|
+
loofah (2.18.0)
|
|
80
|
+
crass (~> 1.0.2)
|
|
81
|
+
nokogiri (>= 1.5.9)
|
|
82
|
+
mail (2.7.1)
|
|
83
|
+
mini_mime (>= 0.1.1)
|
|
84
|
+
marcel (1.0.2)
|
|
85
|
+
method_source (1.0.0)
|
|
86
|
+
mini_mime (1.1.2)
|
|
87
|
+
minitest (5.16.2)
|
|
88
|
+
nio4r (2.5.8)
|
|
89
|
+
nokogiri (1.13.7-x86_64-darwin)
|
|
90
|
+
racc (~> 1.4)
|
|
91
|
+
racc (1.6.0)
|
|
92
|
+
rack (2.2.4)
|
|
93
|
+
rack-test (2.0.2)
|
|
94
|
+
rack (>= 1.3)
|
|
95
|
+
rails (6.1.6.1)
|
|
96
|
+
actioncable (= 6.1.6.1)
|
|
97
|
+
actionmailbox (= 6.1.6.1)
|
|
98
|
+
actionmailer (= 6.1.6.1)
|
|
99
|
+
actionpack (= 6.1.6.1)
|
|
100
|
+
actiontext (= 6.1.6.1)
|
|
101
|
+
actionview (= 6.1.6.1)
|
|
102
|
+
activejob (= 6.1.6.1)
|
|
103
|
+
activemodel (= 6.1.6.1)
|
|
104
|
+
activerecord (= 6.1.6.1)
|
|
105
|
+
activestorage (= 6.1.6.1)
|
|
106
|
+
activesupport (= 6.1.6.1)
|
|
107
|
+
bundler (>= 1.15.0)
|
|
108
|
+
railties (= 6.1.6.1)
|
|
109
|
+
sprockets-rails (>= 2.0.0)
|
|
110
|
+
rails-dom-testing (2.0.3)
|
|
111
|
+
activesupport (>= 4.2.0)
|
|
112
|
+
nokogiri (>= 1.6)
|
|
113
|
+
rails-html-sanitizer (1.4.3)
|
|
114
|
+
loofah (~> 2.3)
|
|
115
|
+
railties (6.1.6.1)
|
|
116
|
+
actionpack (= 6.1.6.1)
|
|
117
|
+
activesupport (= 6.1.6.1)
|
|
118
|
+
method_source
|
|
119
|
+
rake (>= 12.2)
|
|
120
|
+
thor (~> 1.0)
|
|
9
121
|
rake (13.0.6)
|
|
122
|
+
sprockets (4.1.1)
|
|
123
|
+
concurrent-ruby (~> 1.0)
|
|
124
|
+
rack (> 1, < 3)
|
|
125
|
+
sprockets-rails (3.4.2)
|
|
126
|
+
actionpack (>= 5.2)
|
|
127
|
+
activesupport (>= 5.2)
|
|
128
|
+
sprockets (>= 3.0.0)
|
|
129
|
+
thor (1.2.1)
|
|
130
|
+
tzinfo (2.0.4)
|
|
131
|
+
concurrent-ruby (~> 1.0)
|
|
132
|
+
websocket-driver (0.7.5)
|
|
133
|
+
websocket-extensions (>= 0.1.0)
|
|
134
|
+
websocket-extensions (0.1.5)
|
|
135
|
+
zeitwerk (2.6.0)
|
|
10
136
|
|
|
11
137
|
PLATFORMS
|
|
12
138
|
x86_64-darwin-20
|
|
13
139
|
|
|
14
140
|
DEPENDENCIES
|
|
141
|
+
graphql
|
|
142
|
+
graphql_playground-rails
|
|
15
143
|
graphql_scaffold_fan!
|
|
16
144
|
rake (~> 13.0)
|
|
17
145
|
|
data/README.md
CHANGED
|
@@ -9,7 +9,6 @@ TODO: Delete this and the text above, and describe your gem
|
|
|
9
9
|
Add this line to your application's Gemfile:
|
|
10
10
|
|
|
11
11
|
```ruby
|
|
12
|
-
gem 'graphql'
|
|
13
12
|
gem 'graphql_scaffold_fan'
|
|
14
13
|
```
|
|
15
14
|
|
|
@@ -25,10 +24,18 @@ Or install it yourself as:
|
|
|
25
24
|
|
|
26
25
|
Run `rails generate -h` to see if the GraphqlScaffold genertors have been loaded correctly
|
|
27
26
|
Example commands:
|
|
28
|
-
`rails generate graphql_scaffold:init <ProjectName>`
|
|
27
|
+
`rails generate graphql_scaffold:init <ProjectName>`
|
|
28
|
+
|
|
29
29
|
`rails generate graphql_scaffold:mutation <MutationName>`
|
|
30
|
+
|
|
30
31
|
`rails generate graphql_scaffold:type <TypeName>`
|
|
31
32
|
|
|
33
|
+
If you ever found mutation not loading in schema: pls check the following code
|
|
34
|
+
`config.load_defaults 6.1`
|
|
35
|
+
`# config.autoloader = :zeitwerk`
|
|
36
|
+
Reference link:
|
|
37
|
+
https://guides.rubyonrails.org/classic_to_zeitwerk_howto.html
|
|
38
|
+
|
|
32
39
|
|
|
33
40
|
## Development
|
|
34
41
|
|
|
@@ -23,7 +23,8 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
|
|
24
24
|
# Uncomment to register a new dependency of your gem
|
|
25
25
|
# spec.add_dependency "example-gem", "~> 1.0"
|
|
26
|
-
|
|
26
|
+
spec.add_development_dependency 'graphql_playground-rails'
|
|
27
|
+
spec.add_development_dependency 'graphql'
|
|
27
28
|
# For more information and examples about making a new gem, checkout our
|
|
28
29
|
# guide at: https://bundler.io/guides/creating_gem.html
|
|
29
30
|
end
|
|
@@ -30,7 +30,6 @@ module GraphqlScaffold
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def create_admin_controller_file
|
|
33
|
-
@top_folder_name = File.basename(Dir.getwd)
|
|
34
33
|
dir_path = 'app/controllers'
|
|
35
34
|
file_path = dir_path + '/admin_graphql_controller.rb'
|
|
36
35
|
FileUtils.mkdir_p(dir_path) unless File.exist?(dir_path)
|
|
@@ -41,6 +40,23 @@ module GraphqlScaffold
|
|
|
41
40
|
template 'admin_controller.haml', file_path
|
|
42
41
|
end
|
|
43
42
|
end
|
|
43
|
+
|
|
44
|
+
def add_route
|
|
45
|
+
route_dir_path = 'config'
|
|
46
|
+
route_file_path = route_dir_path + '/routes.rb'
|
|
47
|
+
|
|
48
|
+
FileUtils.mkdir_p(route_dir_path) unless File.exist?(route_dir_path)
|
|
49
|
+
|
|
50
|
+
if File.exist?(route_file_path)
|
|
51
|
+
file = File.open(route_file_path)
|
|
52
|
+
file_data = file.read
|
|
53
|
+
new_file_data = file_data.insert(-6, "\n mount GraphqlPlayground::Rails::Engine, at: '/graphiql_admin', graphql_path: 'api/admin/graphql', as: :admin_graphiql\n post 'api/admin/graphql', to: 'graphql_admin#execute'")
|
|
54
|
+
File.write(file, new_file_data)
|
|
55
|
+
p 'Write to routes.rb successfully'
|
|
56
|
+
else
|
|
57
|
+
p 'Please create routes.rb file under config folder firstly'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
44
60
|
end
|
|
45
61
|
end
|
|
46
62
|
end
|
|
@@ -7,7 +7,6 @@ class AdminGraphqlController < ApplicationController
|
|
|
7
7
|
# This allows for outside API access while preventing CSRF attacks,
|
|
8
8
|
# but you'll have to authenticate your user separately
|
|
9
9
|
protect_from_forgery with: :null_session
|
|
10
|
-
after_action :track_action
|
|
11
10
|
|
|
12
11
|
def execute
|
|
13
12
|
variables = prepare_variables(params[:variables])
|
|
@@ -18,7 +17,7 @@ class AdminGraphqlController < ApplicationController
|
|
|
18
17
|
|
|
19
18
|
@current_resource = context[:current_resource]
|
|
20
19
|
|
|
21
|
-
result = <%=
|
|
20
|
+
result = <%= class_name %>AdminSchema.execute(query, variables: variables, context: context, operation_name: operation_name)
|
|
22
21
|
render json: result
|
|
23
22
|
rescue StandardError => e
|
|
24
23
|
raise e unless Rails.env.development?
|
|
@@ -54,11 +53,4 @@ class AdminGraphqlController < ApplicationController
|
|
|
54
53
|
|
|
55
54
|
render json: { errors: [{ message: err.message, backtrace: err.backtrace }], data: {} }, status: :internal_server_error
|
|
56
55
|
end
|
|
57
|
-
|
|
58
|
-
def track_action
|
|
59
|
-
variables = prepare_variables(params[:variables])
|
|
60
|
-
query = params[:query]
|
|
61
|
-
operation_name = params[:operationName]
|
|
62
|
-
ahoy.track 'Admin Portal', query: query, variables: variables, operation_name: operation_name
|
|
63
|
-
end
|
|
64
56
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class <%=
|
|
1
|
+
class <%= class_name %>AdminSchema < GraphQL::Schema
|
|
2
2
|
use GraphQL::Tracing::NewRelicTracing, set_transaction_name: true
|
|
3
3
|
use GraphqlDevise::SchemaPlugin.new(
|
|
4
4
|
query: Types::Query::AdminUserQueryType,
|
|
@@ -6,7 +6,7 @@ module Mutations
|
|
|
6
6
|
|
|
7
7
|
def resolve(**args)
|
|
8
8
|
<%= class_name.underscore %> = <%= class_name %>.new(args)
|
|
9
|
-
if
|
|
9
|
+
if <%= class_name.underscore %>.save
|
|
10
10
|
<%= class_name.underscore %>
|
|
11
11
|
else
|
|
12
12
|
context.add_error(GraphQL::ExecutionError.new( <%= class_name.underscore %>.errors.full_messages.join(', ')))
|
metadata
CHANGED
|
@@ -1,15 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: graphql_scaffold_fan
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fan Zhang
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
12
|
-
dependencies:
|
|
11
|
+
date: 2022-07-18 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: graphql_playground-rails
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: graphql
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
13
41
|
description: Helping creating graphql files
|
|
14
42
|
email:
|
|
15
43
|
- fan.zhang@pixelforce.com.au
|