souls 1.18.1 → 1.18.2

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: 50c61510de150fa0ac46e4852e8d6af59668deb2fc8a7c0c2491910774c50a20
4
- data.tar.gz: a39e77bc5fef8a251082200229dee2c8352dc6f2eb4d7df2aba2fee8fad9b83d
3
+ metadata.gz: 76cf8f87a732809e9d391db6d649b6f432811c43e27c8958e35588be10345d82
4
+ data.tar.gz: f5d261beee788956c05c8a1f18b92ba00e54e676ff8d80407e5b778f56808e81
5
5
  SHA512:
6
- metadata.gz: 3b41685999a25ea62021d66639b23a7bba886d1e6cb98cdbdcf93cb7f02afe763cbd0089ca0f68f734f46edf964669092972f32983157691b66aec0576bf14c8
7
- data.tar.gz: 5636763a73025f379157d0750f1a83136c1589fd58849be747ca5711da11e22b08ec3ef5ec6979ea2d785bd65541c4e02df0c6008deca2148ca5e8f59e408896
6
+ metadata.gz: 680a29548c55d7862cd76b1bb68c47386e7416d71084f3559a7a6fbb2847d287e6df099d4612e4fb5c9bf15e2a0bc25335b16f852561ea051e7d79ff6ce84341
7
+ data.tar.gz: d2e6906c5eacb6745cedbdef3428f37d8f13eee75a21e199f2f5e7e7762e0ae233033bd7c2030783d4e18dc47fd68243901f8fe1f766ebcf2c9c038e6cfecedb
@@ -1,6 +1,15 @@
1
1
  module SOULs
2
2
  class SOULsMutation < GraphQL::Schema::RelayClassicMutation
3
- def souls_fb_auth(token:)
3
+ def self.souls_check_user_permissions(user, obj, method)
4
+ raise(StandardError, "Invalid or Missing Token") unless user
5
+
6
+ policy_class = obj.class.name + "Policy"
7
+ policy_clazz = policy_class.constantize.new(user, obj)
8
+ permission = policy_clazz.public_send(method)
9
+ raise(Pundit::NotAuthorizedError, "permission error!") unless permission
10
+ end
11
+
12
+ def self.souls_fb_auth(token:)
4
13
  FirebaseIdToken::Certificates.request!
5
14
  sleep(3) if ENV["RACK_ENV"] == "development"
6
15
  user = FirebaseIdToken::Signature.verify(token)
@@ -9,13 +18,13 @@ module SOULs
9
18
  user
10
19
  end
11
20
 
12
- def publish_pubsub_queue(topic_name: "send-mail-job", message: "text!")
21
+ def self.souls_publish_pubsub_queue(topic_name: "send-mail-job", message: "text!")
13
22
  pubsub = Google::Cloud::Pubsub.new(project: ENV["SOULS_GCP_PROJECT_ID"])
14
23
  topic = pubsub.topic(topic_name)
15
24
  topic.publish(message)
16
25
  end
17
26
 
18
- def make_graphql_query(query: "newCommentMailer", args: {})
27
+ def self.souls_make_graphql_query(query: "newCommentMailer", args: {})
19
28
  if args.blank?
20
29
  query_string = %(query { #{query.to_s.underscore.camelize(:lower)} { response } })
21
30
  else
@@ -33,20 +42,20 @@ module SOULs
33
42
  query_string
34
43
  end
35
44
 
36
- def post_to_dev(worker_name: "", query_string: "")
45
+ def self.souls_post_to_dev(worker_name: "", query_string: "")
37
46
  app = SOULs.configuration.app
38
- port = get_worker(worker_name: "souls-#{app}-#{worker_name}")[0][:port]
47
+ port = souls_get_worker(worker_name: "souls-#{app}-#{worker_name}")[0][:port]
39
48
  endpoint = SOULs.configuration.endpoint
40
49
  res = Net::HTTP.post_form(URI.parse("http://localhost:#{port}#{endpoint}"), { query: query_string })
41
50
  res.body
42
51
  end
43
52
 
44
- def get_worker(worker_name: "")
53
+ def self.souls_get_worker(worker_name: "")
45
54
  workers = SOULs.configuration.workers
46
55
  workers.filter { |n| n[:name] == worker_name }
47
56
  end
48
57
 
49
- def auth_check(context)
58
+ def self.souls_auth_check(context)
50
59
  raise(GraphQL::ExecutionError, "You need to sign in!!") if context[:user].nil?
51
60
  end
52
61
 
@@ -5,6 +5,15 @@ module SOULs
5
5
  attr_accessor :schedule
6
6
  end
7
7
 
8
+ def self.check_user_permissions(user, obj, method)
9
+ raise(StandardError, "Invalid or Missing Token") unless user
10
+
11
+ policy_class = obj.class.name + "Policy"
12
+ policy_clazz = policy_class.constantize.new(user, obj)
13
+ permission = policy_clazz.public_send(method)
14
+ raise(Pundit::NotAuthorizedError, "permission error!") unless permission
15
+ end
16
+
8
17
  def self.cron(schedule)
9
18
  self.schedule = schedule
10
19
  end
@@ -3,6 +3,17 @@ module SOULs
3
3
  class BaseObject < GraphQL::Schema::Object
4
4
  field_class SOULs::Types::BaseField
5
5
  connection_type_class SOULs::SOULsConnection
6
+
7
+ def self.get_tables
8
+ path = "./db/schema.rb"
9
+ tables = []
10
+ File.open(path, "r") do |f|
11
+ f.each_line.with_index do |line, _i|
12
+ tables << line.split("\"")[1] if line.include?("create_table")
13
+ end
14
+ end
15
+ tables
16
+ end
6
17
  end
7
18
  end
8
19
  end
@@ -0,0 +1,29 @@
1
+ module SOULs
2
+ module Types
3
+ class MutationObject < SOULs::Types::BaseObject
4
+ get_tables.each do |t|
5
+ %w[create update delete destroy_delete].each do |a|
6
+ field "#{a}_#{t.singularize.underscore}".to_sym,
7
+ mutation: Object.const_get(
8
+ "Mutations::Base::#{t.singularize.camelize}::#{a.camelize}#{t.singularize.camelize}"
9
+ )
10
+ end
11
+ end
12
+ managers =
13
+ Dir["./app/graphql/mutations/managers/*_manager/*.rb"].map do |file|
14
+ dir_name = file.scan(%r{managers/(.+?)_manager}).flatten[0]
15
+ file_name = file.scan(%r{/([^/]+)/?$}).flatten[0].gsub(".rb", "")
16
+ {
17
+ class: dir_name,
18
+ name: file_name
19
+ }
20
+ end
21
+ managers.each do |file|
22
+ field file[:name].underscore.to_s.to_sym,
23
+ mutation: Object.const_get(
24
+ "Mutations::Managers::#{file[:class].singularize.camelize}Manager::#{file[:name].singularize.camelize}"
25
+ )
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,16 @@
1
+ module SOULs
2
+ module Types
3
+ class QueryObject < SOULs::Types::BaseObject
4
+ add_field(GraphQL::Types::Relay::NodeField)
5
+ add_field(GraphQL::Types::Relay::NodesField)
6
+ get_tables.each do |t|
7
+ field t.singularize.underscore.to_s.to_sym, resolver: Object.const_get("Queries::#{t.singularize.camelize}")
8
+ field "#{t.singularize.underscore}_search".to_sym,
9
+ resolver: Object.const_get("Resolvers::#{t.singularize.camelize}Search")
10
+ field t.pluralize.underscore.to_s.to_sym,
11
+ Object.const_get("Types::#{t.singularize.camelize}Type").connection_type,
12
+ null: true
13
+ end
14
+ end
15
+ end
16
+ end
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module SOULs
2
- VERSION = "1.18.1".freeze
2
+ VERSION = "1.18.2".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 1.18.1
1
+ 1.18.2
@@ -1 +1 @@
1
- 1.18.1
1
+ 1.18.2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: souls
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.1
4
+ version: 1.18.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI
@@ -167,6 +167,8 @@ files:
167
167
  - lib/souls/app/graphql/types/base_scalar.rb
168
168
  - lib/souls/app/graphql/types/base_union.rb
169
169
  - lib/souls/app/graphql/types/index.rb
170
+ - lib/souls/app/graphql/types/mutation_object.rb
171
+ - lib/souls/app/graphql/types/query_object.rb
170
172
  - lib/souls/app/index.rb
171
173
  - lib/souls/app/utils/firebase_id_token.rb
172
174
  - lib/souls/app/utils/painter.rb