souls 0.23.4 → 0.23.8

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.
@@ -1,280 +1,284 @@
1
1
  module Souls
2
2
  module Generate
3
- class << self
4
- ## Generate 4 Mutations - ["create", "update", "delete", "destroy_delete"]
5
- ## 1.Mutation - Create
6
- def create_mutation_head class_name: "user"
7
- singularized_class_name = class_name.singularize.underscore
8
- dir_name = "./app/graphql/mutations/base/#{singularized_class_name}"
9
- FileUtils.mkdir_p dir_name unless Dir.exist? dir_name
10
- file_path = "./app/graphql/mutations/base/#{singularized_class_name}/create_#{singularized_class_name}.rb"
11
- File.open(file_path, "w") do |new_line|
12
- new_line.write <<~EOS
13
- module Mutations
14
- module #{singularized_class_name.camelize}
15
- class Create#{singularized_class_name.camelize} < BaseMutation
16
- field :#{singularized_class_name}_edge, Types::#{singularized_class_name.camelize}.edge_type, null: false
17
- field :error, String, null: true
3
+ ## Generate 4 Mutations - ["create", "update", "delete", "destroy_delete"]
4
+ ## 1.Mutation - Create
5
+ def self.create_mutation_head(class_name: "user")
6
+ singularized_class_name = class_name.singularize.underscore
7
+ dir_name = "./app/graphql/mutations/base/#{singularized_class_name}"
8
+ FileUtils.mkdir_p(dir_name) unless Dir.exist?(dir_name)
9
+ file_path = "./app/graphql/mutations/base/#{singularized_class_name}/create_#{singularized_class_name}.rb"
10
+ File.open(file_path, "w") do |new_line|
11
+ new_line.write(<<~TEXT)
12
+ module Mutations
13
+ module #{singularized_class_name.camelize}
14
+ class Create#{singularized_class_name.camelize} < BaseMutation
15
+ field :#{singularized_class_name}_edge, Types::#{singularized_class_name.camelize}.edge_type, null: false
16
+ field :error, String, null: true
18
17
 
19
- EOS
20
- end
21
- file_path
18
+ TEXT
22
19
  end
20
+ file_path
21
+ end
23
22
 
24
- def create_mutation_params class_name: "souls"
25
- file_path = "./app/graphql/mutations/base/#{class_name}/create_#{class_name}.rb"
26
- path = "./db/schema.rb"
27
- @on = false
28
- @user_exist = false
29
- @relation_params = []
30
- File.open(file_path, "a") do |new_line|
31
- File.open(path, "r") do |f|
32
- f.each_line.with_index do |line, i|
33
- if @on
34
- if line.include?("end") || line.include?("t.index")
35
- if @user_exist
36
- new_line.write <<-EOS
37
-
38
- def resolve **args
39
- args[:user_id] = context[:user].id
40
- EOS
41
- else
42
- new_line.write <<-EOS
23
+ def self.create_mutation_params(class_name: "souls")
24
+ file_path = "./app/graphql/mutations/base/#{class_name}/create_#{class_name}.rb"
25
+ path = "./db/schema.rb"
26
+ @on = false
27
+ @user_exist = false
28
+ @relation_params = []
29
+ File.open(file_path, "a") do |new_line|
30
+ File.open(path, "r") do |f|
31
+ f.each_line.with_index do |line, _i|
32
+ if @on
33
+ if line.include?("end") || line.include?("t.index")
34
+ if @user_exist
35
+ new_line.write(<<-TEXT)
43
36
 
44
- def resolve **args
45
- EOS
46
- end
47
- break
48
- end
49
- field = "[String]" if line.include?("array: true")
50
- type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
51
- field ||= type_check type
52
- case name
53
- when "user_id"
54
- @user_exist = true
55
- when /$*_id\z/
56
- @relation_params << name
57
- new_line.write " argument :#{name}, String, required: false\n"
58
- when "created_at", "updated_at"
59
- next
37
+ def resolve **args
38
+ args[:user_id] = context[:user].id
39
+ TEXT
60
40
  else
61
- new_line.write " argument :#{name}, #{field}, required: false\n"
41
+ new_line.write(<<-TEXT)
42
+
43
+ def resolve **args
44
+ TEXT
62
45
  end
46
+ break
47
+ end
48
+ field = "[String]" if line.include?("array: true")
49
+ type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
50
+ field ||= type_check(type)
51
+ case name
52
+ when "user_id"
53
+ @user_exist = true
54
+ when /$*_id\z/
55
+ @relation_params << name
56
+ new_line.write(" argument :#{name}, String, required: false\n")
57
+ when "created_at", "updated_at"
58
+ next
59
+ else
60
+ new_line.write(" argument :#{name}, #{field}, required: false\n")
63
61
  end
64
- @on = true if table_check(line: line, class_name: class_name)
65
62
  end
63
+ @on = true if table_check(line: line, class_name: class_name)
66
64
  end
67
65
  end
68
- @relation_params
69
66
  end
67
+ @relation_params
68
+ end
70
69
 
71
- def create_mutation_after_params class_name: "article", relation_params: []
72
- return false if relation_params.empty?
73
- file_path = "./app/graphql/mutations/base/#{class_name}/create_#{class_name}.rb"
74
- relation_params.each do |params_name|
75
- File.open(file_path, "a") do |new_line|
76
- new_line.write " _, args[:#{params_name}] = SoulsApiSchema.from_global_id(args[:#{params_name}])\n"
77
- end
70
+ def self.create_mutation_after_params(class_name: "article", relation_params: [])
71
+ return false if relation_params.empty?
72
+
73
+ file_path = "./app/graphql/mutations/base/#{class_name}/create_#{class_name}.rb"
74
+ relation_params.each do |params_name|
75
+ File.open(file_path, "a") do |new_line|
76
+ new_line.write(" _, args[:#{params_name}] = SoulsApiSchema.from_global_id(args[:#{params_name}])\n")
78
77
  end
79
- true
80
78
  end
79
+ true
80
+ end
81
81
 
82
- def create_mutation_end class_name: "souls"
83
- file_path = "./app/graphql/mutations/base/#{class_name}/create_#{class_name}.rb"
84
- File.open(file_path, "a") do |new_line|
85
- new_line.write <<~EOS
86
- data = ::#{class_name.camelize}.new args
87
- raise(StandardError, data.errors.full_messages) unless data.save
82
+ def self.create_mutation_end(class_name: "souls")
83
+ file_path = "./app/graphql/mutations/base/#{class_name}/create_#{class_name}.rb"
84
+ File.open(file_path, "a") do |new_line|
85
+ new_line.write(<<~TEXT)
86
+ data = ::#{class_name.camelize}.new args
87
+ raise(StandardError, data.errors.full_messages) unless data.save
88
88
 
89
- { #{class_name}_edge: { node: data } }
90
- rescue StandardError => error
91
- GraphQL::ExecutionError.new error
92
- end
89
+ { #{class_name}_edge: { node: data } }
90
+ rescue StandardError => error
91
+ GraphQL::ExecutionError.new error
93
92
  end
94
93
  end
95
94
  end
96
- EOS
97
- end
98
- file_path
95
+ end
96
+ TEXT
99
97
  end
98
+ file_path
99
+ end
100
100
 
101
- ## 2.Mutation - Update
102
- def update_mutation_head class_name: "souls"
103
- file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
104
- File.open(file_path, "w") do |new_line|
105
- new_line.write <<~EOS
106
- module Mutations
107
- module #{class_name.camelize}
108
- class Update#{class_name.camelize} < BaseMutation
109
- field :#{class_name}_edge, Types::#{class_name.camelize}.edge_type, null: false
101
+ ## 2.Mutation - Update
102
+ def self.update_mutation_head(class_name: "souls")
103
+ file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
104
+ File.open(file_path, "w") do |new_line|
105
+ new_line.write(<<~TEXT)
106
+ module Mutations
107
+ module #{class_name.camelize}
108
+ class Update#{class_name.camelize} < BaseMutation
109
+ field :#{class_name}_edge, Types::#{class_name.camelize}.edge_type, null: false
110
110
 
111
- argument :id, String, required: true
112
- EOS
113
- end
114
- file_path
111
+ argument :id, String, required: true
112
+ TEXT
115
113
  end
114
+ file_path
115
+ end
116
116
 
117
- def update_mutation_params class_name: "souls"
118
- file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
119
- path = "./db/schema.rb"
120
- @on = false
121
- @user_exist = false
122
- @relation_params = []
123
- File.open(file_path, "a") do |new_line|
124
- File.open(path, "r") do |f|
125
- f.each_line.with_index do |line, i|
126
- if @on
127
- if line.include?("end") || line.include?("t.index")
128
- if @user_exist
129
- new_line.write <<-EOS
130
-
131
- def resolve **args
132
- args[:user_id] = context[:user].id
133
- _, args[:id] = SoulsApiSchema.from_global_id(args[:id])
134
- EOS
135
- else
136
- new_line.write <<-EOS
117
+ def self.update_mutation_params(class_name: "souls")
118
+ file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
119
+ path = "./db/schema.rb"
120
+ @on = false
121
+ @user_exist = false
122
+ @relation_params = []
123
+ File.open(file_path, "a") do |new_line|
124
+ File.open(path, "r") do |f|
125
+ f.each_line.with_index do |line, _i|
126
+ if @on
127
+ if line.include?("end") || line.include?("t.index")
128
+ if @user_exist
129
+ new_line.write(<<-TEXT)
137
130
 
138
- def resolve **args
139
- _, args[:id] = SoulsApiSchema.from_global_id(args[:id])
140
- EOS
141
- end
142
- break
143
- end
144
- field = "[String]" if line.include?("array: true")
145
- type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
146
- field ||= type_check type
147
- case name
148
- when "user_id"
149
- @user_exist = true
150
- when /$*_id\z/
151
- @relation_params << name
152
- new_line.write " argument :#{name}, String, required: false\n"
153
- when "created_at", "updated_at"
154
- next
131
+ def resolve **args
132
+ args[:user_id] = context[:user].id
133
+ _, args[:id] = SoulsApiSchema.from_global_id(args[:id])
134
+ TEXT
155
135
  else
156
- new_line.write " argument :#{name}, #{field}, required: false\n"
136
+ new_line.write(<<-TEXT)
137
+
138
+ def resolve **args
139
+ _, args[:id] = SoulsApiSchema.from_global_id(args[:id])
140
+ TEXT
157
141
  end
142
+ break
143
+ end
144
+ field = "[String]" if line.include?("array: true")
145
+ type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
146
+ field ||= type_check(type)
147
+ case name
148
+ when "user_id"
149
+ @user_exist = true
150
+ when /$*_id\z/
151
+ @relation_params << name
152
+ new_line.write(" argument :#{name}, String, required: false\n")
153
+ when "created_at", "updated_at"
154
+ next
155
+ else
156
+ new_line.write(" argument :#{name}, #{field}, required: false\n")
158
157
  end
159
- @on = true if table_check(line: line, class_name: class_name)
160
158
  end
159
+ @on = true if table_check(line: line, class_name: class_name)
161
160
  end
162
161
  end
163
- @relation_params
164
162
  end
163
+ @relation_params
164
+ end
165
165
 
166
- def update_mutation_after_params class_name: "article", relation_params: []
167
- return false if relation_params.empty?
168
- file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
169
- relation_params.each do |params_name|
170
- File.open(file_path, "a") do |new_line|
171
- new_line.write " _, args[:#{params_name}] = SoulsApiSchema.from_global_id(args[:#{params_name}])\n"
172
- end
166
+ def self.update_mutation_after_params(class_name: "article", relation_params: [])
167
+ return false if relation_params.empty?
168
+
169
+ file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
170
+ relation_params.each do |params_name|
171
+ File.open(file_path, "a") do |new_line|
172
+ new_line.write(" _, args[:#{params_name}] = SoulsApiSchema.from_global_id(args[:#{params_name}])\n")
173
173
  end
174
- true
175
174
  end
175
+ true
176
+ end
176
177
 
177
- def update_mutation_end class_name: "souls"
178
- file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
179
- File.open(file_path, "a") do |new_line|
180
- new_line.write <<~EOS
181
- #{class_name} = ::#{class_name.camelize}.find args[:id]
182
- #{class_name}.update args
183
- { #{class_name}_edge: { node: ::#{class_name.camelize}.find(args[:id]) } }
184
- rescue StandardError => error
185
- GraphQL::ExecutionError.new error
186
- end
178
+ def self.update_mutation_end(class_name: "souls")
179
+ file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
180
+ File.open(file_path, "a") do |new_line|
181
+ new_line.write(<<~TEXT)
182
+ #{class_name} = ::#{class_name.camelize}.find args[:id]
183
+ #{class_name}.update args
184
+ { #{class_name}_edge: { node: ::#{class_name.camelize}.find(args[:id]) } }
185
+ rescue StandardError => error
186
+ GraphQL::ExecutionError.new error
187
187
  end
188
188
  end
189
189
  end
190
- EOS
191
- end
192
- file_path
190
+ end
191
+ TEXT
193
192
  end
193
+ file_path
194
+ end
194
195
 
195
- def update_mutation class_name: "souls"
196
- file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
197
- return "Mutation already exist! #{file_path}" if File.exist? file_path
198
- update_mutation_head class_name: class_name
199
- relation_params = update_mutation_params class_name: class_name
200
- update_mutation_after_params class_name: class_name, relation_params: relation_params
201
- update_mutation_end class_name: class_name
202
- end
196
+ def self.update_mutation(class_name: "souls")
197
+ file_path = "./app/graphql/mutations/base/#{class_name}/update_#{class_name}.rb"
198
+ return "Mutation already exist! #{file_path}" if File.exist?(file_path)
199
+
200
+ update_mutation_head(class_name: class_name)
201
+ relation_params = update_mutation_params(class_name: class_name)
202
+ update_mutation_after_params(class_name: class_name, relation_params: relation_params)
203
+ update_mutation_end(class_name: class_name)
204
+ end
205
+
206
+ # 3. Mutation - Delete
207
+ def self.delete_mutation(class_name: "souls")
208
+ file_path = "./app/graphql/mutations/base/#{class_name}/delete_#{class_name}.rb"
209
+ return "Mutation already exist! #{file_path}" if File.exist?(file_path)
203
210
 
204
- # 3. Mutation - Delete
205
- def delete_mutation class_name: "souls"
206
- file_path = "./app/graphql/mutations/base/#{class_name}/delete_#{class_name}.rb"
207
- return "Mutation already exist! #{file_path}" if File.exist? file_path
208
- File.open(file_path, "w") do |f|
209
- f.write <<~EOS
210
- module Mutations
211
- module #{class_name.camelize}
212
- class Delete#{class_name.camelize} < BaseMutation
213
- field :#{class_name}, Types::#{class_name.camelize}Type, null: false
214
- argument :id, String, required: true
211
+ File.open(file_path, "w") do |f|
212
+ f.write(<<~TEXT)
213
+ module Mutations
214
+ module #{class_name.camelize}
215
+ class Delete#{class_name.camelize} < BaseMutation
216
+ field :#{class_name}, Types::#{class_name.camelize}Type, null: false
217
+ argument :id, String, required: true
215
218
 
216
- def resolve **args
217
- _, data_id = SoulsApiSchema.from_global_id args[:id]
218
- #{class_name} = ::#{class_name.camelize}.find data_id
219
- #{class_name}.update(is_deleted: true)
220
- { #{class_name}: ::#{class_name.camelize}.find(data_id) }
221
- rescue StandardError => error
222
- GraphQL::ExecutionError.new error
223
- end
219
+ def resolve **args
220
+ _, data_id = SoulsApiSchema.from_global_id args[:id]
221
+ #{class_name} = ::#{class_name.camelize}.find data_id
222
+ #{class_name}.update(is_deleted: true)
223
+ { #{class_name}: ::#{class_name.camelize}.find(data_id) }
224
+ rescue StandardError => error
225
+ GraphQL::ExecutionError.new error
224
226
  end
225
227
  end
226
228
  end
227
- EOS
228
- end
229
- file_path
229
+ end
230
+ TEXT
230
231
  end
232
+ file_path
233
+ end
234
+
235
+ # 4. Mutation - Destroy Delete
236
+ def self.destroy_delete_mutation(class_name: "souls")
237
+ file_path = "./app/graphql/mutations/base/#{class_name}/destroy_delete_#{class_name}.rb"
238
+ return "Mutation already exist! #{file_path}" if File.exist?(file_path)
231
239
 
232
- # 4. Mutation - Destroy Delete
233
- def destroy_delete_mutation class_name: "souls"
234
- file_path = "./app/graphql/mutations/base/#{class_name}/destroy_delete_#{class_name}.rb"
235
- return "Mutation already exist! #{file_path}" if File.exist? file_path
236
- File.open(file_path, "w") do |f|
237
- f.write <<~EOS
238
- module Mutations
239
- module #{class_name.camelize}
240
- class DestroyDelete#{class_name.camelize} < BaseMutation
241
- field :#{class_name}, Types::#{class_name.camelize}Type, null: false
242
- argument :id, String, required: true
240
+ File.open(file_path, "w") do |f|
241
+ f.write(<<~TEXT)
242
+ module Mutations
243
+ module #{class_name.camelize}
244
+ class DestroyDelete#{class_name.camelize} < BaseMutation
245
+ field :#{class_name}, Types::#{class_name.camelize}Type, null: false
246
+ argument :id, String, required: true
243
247
 
244
- def resolve **args
245
- _, data_id = SoulsApiSchema.from_global_id args[:id]
246
- #{class_name} = ::#{class_name.camelize}.find data_id
247
- #{class_name}.destroy
248
- { #{class_name}: #{class_name} }
249
- rescue StandardError => error
250
- GraphQL::ExecutionError.new error
251
- end
248
+ def resolve **args
249
+ _, data_id = SoulsApiSchema.from_global_id args[:id]
250
+ #{class_name} = ::#{class_name.camelize}.find data_id
251
+ #{class_name}.destroy
252
+ { #{class_name}: #{class_name} }
253
+ rescue StandardError => error
254
+ GraphQL::ExecutionError.new error
252
255
  end
253
256
  end
254
257
  end
255
- EOS
256
- end
257
- file_path
258
- rescue StandardError => error
259
- puts error
258
+ end
259
+ TEXT
260
260
  end
261
+ file_path
262
+ rescue StandardError => e
263
+ puts(e)
264
+ end
261
265
 
262
- def mutation class_name: "souls"
263
- singularized_class_name = class_name.singularize
264
- file_path = "./app/graphql/mutations/base/#{singularized_class_name}/create_#{singularized_class_name}.rb"
265
- return "Mutation already exist! #{file_path}" if File.exist? file_path
266
- create_mutation_head class_name: singularized_class_name
267
- relation_params = create_mutation_params class_name: singularized_class_name
268
- create_mutation_after_params class_name: singularized_class_name, relation_params: relation_params
269
- create_mutation_end(class_name: singularized_class_name)
270
- update_mutation(class_name: singularized_class_name)
271
- delete_mutation(class_name: singularized_class_name)
272
- destroy_delete_mutation(class_name: singularized_class_name)
273
- puts Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }]
274
- file_path
275
- rescue StandardError => e
276
- raise StandardError, e
277
- end
266
+ def self.mutation(class_name: "souls")
267
+ singularized_class_name = class_name.singularize
268
+ file_path = "./app/graphql/mutations/base/#{singularized_class_name}/create_#{singularized_class_name}.rb"
269
+ return "Mutation already exist! #{file_path}" if File.exist?(file_path)
270
+
271
+ create_mutation_head(class_name: singularized_class_name)
272
+ relation_params = create_mutation_params(class_name: singularized_class_name)
273
+ create_mutation_after_params(class_name: singularized_class_name, relation_params: relation_params)
274
+ create_mutation_end(class_name: singularized_class_name)
275
+ update_mutation(class_name: singularized_class_name)
276
+ delete_mutation(class_name: singularized_class_name)
277
+ destroy_delete_mutation(class_name: singularized_class_name)
278
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
279
+ file_path
280
+ rescue StandardError => e
281
+ raise(StandardError, e)
278
282
  end
279
283
  end
280
284
  end