souls 1.19.8 → 1.20.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3bfb5aba9ee1c61c94280607df87f643dca9ca4b24a97ad098d005d10ccad65f
4
- data.tar.gz: 801641e0e9bb8fff4908f4b3febfd0f8024b836b3a16f338b2cafd1f6728aeba
3
+ metadata.gz: cd866432ec0f265187450b3387881c23c5bdff953f5055b6b457cee651e70623
4
+ data.tar.gz: deb328b90a62d79d2bfacff948de0f010bb98801df986dc02f0a1997821a5024
5
5
  SHA512:
6
- metadata.gz: eea9d1f2ce11a802eb81cfe5b43bf1db40baed767dce82da0d9fc4f845a6ed26972fcc9808a904dfdab4ec0ff9787b28a5e902cf15f7eb521f950ca4fbb56a46
7
- data.tar.gz: 38b3bea572fd8792b7e1a67e2d12930d86637aad9ea45bfeb233e89b3c1b6753212971dae8018001a7dd4f7162509b6afa0e8954a40a5d396c8abdb6858ca23c
6
+ metadata.gz: 8e370826736549cda4f68b6cac11e253cdc7b10afb535c7e70e0084af29457b3e9519dfe68970e1e38a0f86dd734e24f3ce423475d15d5aa8536486d898eb625
7
+ data.tar.gz: 3aabbaa8a7873408bfb74c254a71b8ee3b7a4703ee87f4d349509d6ef276bb067a36b966dcd3f74cd618946a71dfe41597990caaf62f9c9b5252d49f413ab3ec
@@ -1,5 +1,10 @@
1
1
  module SOULs
2
2
  class SOULsMutation < GraphQL::Schema::RelayClassicMutation
3
+ def self.post(url:, payload: {}, content_type: "application/json")
4
+ response = Faraday.post(url, payload.to_json, "Content-Type": content_type)
5
+ response.body
6
+ end
7
+
3
8
  def self.souls_check_user_permissions(user, obj, method)
4
9
  raise(StandardError, "Invalid or Missing Token") unless user
5
10
 
@@ -5,6 +5,11 @@ module SOULs
5
5
  attr_accessor :schedule
6
6
  end
7
7
 
8
+ def self.post(url:, payload: {}, content_type: "application/json")
9
+ response = Faraday.post(url, payload.to_json, "Content-Type": content_type)
10
+ response.body
11
+ end
12
+
8
13
  def self.check_user_permissions(user, obj, method)
9
14
  raise(StandardError, "Invalid or Missing Token") unless user
10
15
 
@@ -1,6 +1,6 @@
1
- require_relative "./templates/functions_env_yaml"
1
+ require_relative "./templates/functions/functions_env_yaml"
2
2
 
3
- Dir["#{SOULs::SOULS_PATH}/lib/souls/cli/create/templates/*/*.rb"].map do |f|
3
+ Dir["#{SOULs::SOULS_PATH}/lib/souls/cli/create/templates/functions/*/*.rb"].map do |f|
4
4
  require f
5
5
  end
6
6
 
@@ -47,6 +47,18 @@ module SOULs
47
47
  SOULs::Painter.create_file(file_path)
48
48
  end
49
49
  create_env_yaml(file_dir: file_dir)
50
+ endroll = <<~TEXT
51
+ ♤ Deploy Cloud Functions ♤
52
+
53
+ $ cd apps/cf-#{version_string}-#{function_name}
54
+ $ souls functions deploy
55
+
56
+ $ souls functions help
57
+
58
+
59
+ Doc: https://souls.elsoul.nl
60
+ TEXT
61
+ puts(Paint[endroll, :white])
50
62
  end
51
63
 
52
64
  private
@@ -62,7 +74,7 @@ module SOULs
62
74
  end
63
75
 
64
76
  def get_runtime_create_method(runtime:)
65
- Dir["#{SOULs::SOULS_PATH}/lib/souls/cli/create/templates/#{runtime}/*"].map do |n|
77
+ Dir["#{SOULs::SOULS_PATH}/lib/souls/cli/create/templates/functions/#{runtime}/*"].map do |n|
66
78
  n.split("/").last.gsub(".rb", "")
67
79
  end
68
80
  end
@@ -11,9 +11,21 @@ module SOULs
11
11
  end
12
12
 
13
13
  runtime = current_dir.match(/cf-(\D+\d+)-/)[1]
14
+ runtime_lang = current_dir.match(/^cf-(\D+)\d+-/)[1]
15
+ entry_point =
16
+ case runtime_lang
17
+ when "nodejs"
18
+ current_dir.underscore.camelize(:lower)
19
+ when "python"
20
+ current_dir.underscore
21
+ when "go"
22
+ current_dir.underscore.camelize
23
+ else
24
+ current_dir
25
+ end
14
26
  system(
15
27
  "
16
- gcloud functions deploy #{current_dir} --project=#{project_id} \
28
+ gcloud functions deploy #{current_dir} --entry-point='#{entry_point}' --project=#{project_id} \
17
29
  --runtime #{runtime} --trigger-http --allow-unauthenticated --env-vars-file .env.yaml
18
30
  "
19
31
  )
@@ -35,7 +47,7 @@ module SOULs
35
47
  Dir.chdir(SOULs.get_mother_path.to_s) do
36
48
  FileUtils.rm_rf("apps/#{name}")
37
49
  end
38
- SOULs::Painter.success("Deleted #{name} functions!")
50
+ SOULs::Painter.warning("Deleted #{name} functions!", "✨")
39
51
  end
40
52
 
41
53
  desc "url", "Get SOULs Functions URL"
@@ -1,12 +1,11 @@
1
1
  module SOULs
2
2
  class CloudScheduler < Thor
3
- desc "awake", "Set Ping Every 15min by Google Cloud Scheduler"
4
- method_option :url, default: "https://souls.souls.nl", aliases: "--url", desc: "Set URL"
5
- def awake
3
+ desc "awake [url]", "Set Ping Every 15min by Google Cloud Scheduler"
4
+ def awake(url)
6
5
  app_name = SOULs.configuration.app
7
6
  system(
8
7
  "gcloud scheduler jobs create http #{app_name}-awake
9
- --schedule '0,10,20,30,40,50 * * * *' --uri #{options[:url]} --http-method GET"
8
+ --schedule '0,10,20,30,40,50 * * * *' --uri #{url} --http-method GET"
10
9
  )
11
10
  end
12
11
 
@@ -18,11 +17,11 @@ module SOULs
18
17
  project_id = SOULs.configuration.project_id
19
18
 
20
19
  schedules_list = current_schedules
21
- worker_name = FileUtils.pwd.split("/").last
20
+ worker_name = FileUtils.pwd.split("/").last.underscore
22
21
  Queries::BaseQuery.all_schedules.each do |k, v|
23
22
  worker_name = FileUtils.pwd.split("/").last
24
- job_name = "souls_#{worker_name}_#{k.to_s.underscore}".to_sym
25
- topic = "souls_#{worker_name}_#{k.to_s.underscore}"
23
+ job_name = "souls-#{worker_name}-#{k.to_s.underscore}".to_sym
24
+ topic = "souls-#{worker_name}-#{k.to_s.underscore}"
26
25
  message_body = "query { #{k.to_s.camelize(:lower)} { response }}"
27
26
 
28
27
  if schedules_list.include?(job_name)
@@ -43,7 +42,7 @@ module SOULs
43
42
  end
44
43
 
45
44
  schedules_list.each do |k, _|
46
- next unless k.match?(/^souls_#{worker_name}/)
45
+ next unless k.match?(/^souls-#{worker_name}/)
47
46
 
48
47
  system("gcloud scheduler jobs delete #{k} -q >/dev/null 2>&1")
49
48
  end
@@ -13,19 +13,41 @@ module SOULs
13
13
 
14
14
  zone = "#{region}-b"
15
15
  system("gcloud config set project #{project_id} >/dev/null 2>&1")
16
- Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
17
- system(
18
- "gcloud sql instances create #{instance_name} \
16
+ system(
17
+ "gcloud sql instances create #{instance_name} \
19
18
  --database-version=#{db_type} --cpu=1 --memory=4096MB --zone=#{zone} \
20
19
  --root-password='#{password}' --database-flags cloudsql.iam_authentication=on"
21
- )
22
- SOULs::Sql.new.env(password: password)
23
- SOULs::Github.new.secret_set
24
- Whirly.status = Paint["Cloud SQL #{instance_name} is successfully created! You can push to deploy!", :green]
25
- end
20
+ )
21
+ SOULs::Sql.new.env(password: password)
22
+ SOULs::Github.new.secret_set
23
+ SOULs::Painter.success("Cloud SQL #{instance_name} is successfully created! You can push to deploy!")
26
24
  true
27
25
  end
28
26
 
27
+ desc "stop", "Stop Cloud SQL Instance"
28
+ def stop
29
+ project_id = SOULs.configuration.project_id
30
+ instance_name = SOULs.configuration.instance_name
31
+ system("gcloud sql instances patch #{instance_name} --project=#{project_id} --activation-policy=NEVER")
32
+ SOULs::Painter.warning("Cloud SQL #{instance_name} is stopped!")
33
+ end
34
+
35
+ desc "restart", "Restart Cloud SQL Instance"
36
+ def restart
37
+ project_id = SOULs.configuration.project_id
38
+ instance_name = SOULs.configuration.instance_name
39
+ system("gcloud sql instances restart #{instance_name} --project=#{project_id}")
40
+ SOULs::Painter.success("Cloud SQL #{instance_name} is restarted!")
41
+ end
42
+
43
+ desc "delete", "Delete Cloud SQL Instance"
44
+ def delete
45
+ project_id = SOULs.configuration.project_id
46
+ instance_name = SOULs.configuration.instance_name
47
+ system("gcloud sql instances delete #{instance_name} --project=#{project_id}")
48
+ SOULs::Painter.warning("Cloud SQL #{instance_name} is deleted!", "✨")
49
+ end
50
+
29
51
  desc "env", "Generate .env.production file to deploy"
30
52
  def env(password: "Password")
31
53
  require(SOULs.get_mother_path.to_s + "/config/souls")
@@ -5,6 +5,8 @@ module SOULs
5
5
  desc "release", "Release Gem"
6
6
  def release
7
7
  SOULs::Painter.error("hey! It's Broken!") unless system("rspec")
8
+ FileUtils.rm("apps/api/Gemfile.lock") if File.exist?("apps/api/Gemfile.lock")
9
+ FileUtils.rm("apps/worker/Gemfile.lock") if File.exist?("apps/worker/Gemfile.lock")
8
10
 
9
11
  system("gem install souls")
10
12
  sleep(3)
@@ -40,7 +40,6 @@ module SOULs
40
40
  value = worker_file_names[file_name.to_sym] || 0
41
41
  worker_file_names[file_name.to_sym] = value - 1
42
42
  end
43
- puts(worker_file_names)
44
43
 
45
44
  if worker_file_names.blank?
46
45
  return if souls_topics.blank?
@@ -109,7 +108,7 @@ module SOULs
109
108
  end
110
109
  workers.delete("base_query")
111
110
  workers.each do |file|
112
- response[:"souls_#{worker_name}_#{file}"] = 1
111
+ response["souls_#{worker_name.underscore}_#{file}".to_sym] = 1
113
112
  end
114
113
  response
115
114
  end
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module SOULs
2
- VERSION = "1.19.8".freeze
2
+ VERSION = "1.20.2".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 1.19.8
1
+ 1.20.2
@@ -1 +1 @@
1
- 1.19.8
1
+ 1.20.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.19.8
4
+ version: 1.20.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-01-06 00:00:00.000000000 Z
13
+ date: 2022-01-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -190,15 +190,15 @@ files:
190
190
  - lib/souls/cli/console/index.rb
191
191
  - lib/souls/cli/create/functions.rb
192
192
  - lib/souls/cli/create/index.rb
193
- - lib/souls/cli/create/templates/functions_env_yaml.rb
194
- - lib/souls/cli/create/templates/go/function.rb
195
- - lib/souls/cli/create/templates/go/go.rb
196
- - lib/souls/cli/create/templates/nodejs/index.rb
197
- - lib/souls/cli/create/templates/nodejs/package.rb
198
- - lib/souls/cli/create/templates/python/main.rb
199
- - lib/souls/cli/create/templates/python/requirements.rb
200
- - lib/souls/cli/create/templates/ruby/app.rb
201
- - lib/souls/cli/create/templates/ruby/gemfile.rb
193
+ - lib/souls/cli/create/templates/functions/functions_env_yaml.rb
194
+ - lib/souls/cli/create/templates/functions/go/function.rb
195
+ - lib/souls/cli/create/templates/functions/go/go.rb
196
+ - lib/souls/cli/create/templates/functions/nodejs/index.rb
197
+ - lib/souls/cli/create/templates/functions/nodejs/package.rb
198
+ - lib/souls/cli/create/templates/functions/python/main.rb
199
+ - lib/souls/cli/create/templates/functions/python/requirements.rb
200
+ - lib/souls/cli/create/templates/functions/ruby/app.rb
201
+ - lib/souls/cli/create/templates/functions/ruby/gemfile.rb
202
202
  - lib/souls/cli/db/create_migration.rb
203
203
  - lib/souls/cli/db/create_migration_rbs.rb
204
204
  - lib/souls/cli/db/index.rb