eco-helpers 3.0.0 → 3.0.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: f87b772a3ca7272d32299e202d5f0a500f4e814b5281e00d2e49484a52fa42df
4
- data.tar.gz: dde02113e49cc438157123b892b5ab2e747707f824ec0b228240a1f8aacebe29
3
+ metadata.gz: c1a2d4588e054806a3ccbebd04efd0b8bdb25b750e18e26ed69a29e6f219a552
4
+ data.tar.gz: 5828f9d271d41cd18f8f0b684d4711c18c7edfaa906910566145141d8dd3c869
5
5
  SHA512:
6
- metadata.gz: 3cc9947ab00adc1881db3a69cbe0873b5a2ec1275c92d3127f5826b5acb96db5b9b72cdc4297a0658172cdd321cdd46c4f02fddb7b93f05296ad2d2be2509298
7
- data.tar.gz: '0330899821bab587d827d9079638e9cef5528f8c01e68aab5379e7d358b9de7dffb18ed6b49f12268737b953c4bb95419cbf0c4816b96dcf819d03857880d451'
6
+ metadata.gz: 2c293216d07c3553ff786c9c46019de87b5ef142a19e4b9ae709527b257c279534d7e21f737c824586263cbbc79c6983630bea7a1986d105f7665aec933b8ce4
7
+ data.tar.gz: a283d0285a0b370af02eeb3f75e1482e94a2774f58cbad3898f159a5152d999253dc8873abe1a41b6ced16238f8205f3e0d86a6d0655cd2de0a187d311acc5a5
data/.rubocop.yml CHANGED
@@ -30,6 +30,9 @@ Style/ConditionalAssignment:
30
30
  Style/BlockDelimiters:
31
31
  BracesRequiredMethods: ['log']
32
32
  AllowedPatterns: ['proc', 'new']
33
+ Style/HashSyntax:
34
+ EnforcedShorthandSyntax: either
35
+ EnforcedStyle: no_mixed_keys
33
36
  Style/ClassAndModuleChildren:
34
37
  Enabled: false
35
38
  Style/FrozenStringLiteralComment:
data/CHANGELOG.md CHANGED
@@ -2,12 +2,35 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [3.0.0] - 2024-08-01
5
+ ## [3.0.3] - 2024-08-xx
6
6
 
7
7
  ### Added
8
8
 
9
9
  ### Changed
10
10
 
11
+ ## [3.0.2] - 2024-08-09
12
+
13
+ ### Changed
14
+
15
+ - upgraded gem dependencies
16
+ - `ecoportal-api-graphql`
17
+
18
+ ## [3.0.1] - 2024-08-09
19
+
20
+ ### Added
21
+
22
+ - `GraphQLSchema` case to extract the schema in a json file
23
+
24
+ ### Changed
25
+
26
+ - `SplitCsv` case namespace
27
+
28
+ ### Fixed
29
+
30
+ - have `Eco::VERSION` defined
31
+
32
+ ## [3.0.0] - 2024-08-01
33
+
11
34
  - require `ruby 3`
12
35
 
13
36
  ### Fixed
data/eco-helpers.gemspec CHANGED
@@ -40,8 +40,8 @@ Gem::Specification.new do |spec|
40
40
  spec.add_dependency 'docx', '>= 0.8.0', '< 0.9'
41
41
  spec.add_dependency 'dotenv', '~> 3'
42
42
  spec.add_dependency 'ecoportal-api', '~> 0.10'
43
- spec.add_dependency 'ecoportal-api-graphql', '~> 0.4'
44
- spec.add_dependency 'ecoportal-api-v2', '~> 2.0'
43
+ spec.add_dependency 'ecoportal-api-graphql', '~> 0.4', '>= 0.4.1'
44
+ spec.add_dependency 'ecoportal-api-v2', '~> 2.0', '>= 2.0.8'
45
45
  spec.add_dependency 'ed25519', '~> 1.2'
46
46
  spec.add_dependency 'fast_excel', '>= 0.5.0', '< 0.6'
47
47
  spec.add_dependency 'fuzzy_match', '>= 2.1.0', '< 2.2'
@@ -0,0 +1,15 @@
1
+ class Eco::API::UseCases::Default::Meta::GraphQLSchema
2
+ class Cli < Eco::API::UseCases::Cli
3
+ desc "Retrieves and stores the GraphQL Schema"
4
+
5
+ callback do |_sess, options, _case|
6
+ file = SCR.get_arg(cli_name, with_param: true)
7
+ options.deep_merge!(output: {file: {name: file}})
8
+ end
9
+
10
+ add_option("-format", "Kind of extract (definition | json | yaml )") do |options|
11
+ format = SCR.get_arg("-format", with_param: true)
12
+ options.deep_merge!(output: {format: format})
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,78 @@
1
+ class Eco::API::UseCases::Default::Meta::GraphQLSchema < Eco::API::Common::Loaders::UseCase
2
+ include Eco::API::UseCases::GraphQL::Helpers::Base
3
+
4
+ require_relative 'cli/graphql_schema_cli'
5
+
6
+ OUT_FOLDER = "sftp".freeze
7
+ OUT_TIME_FORMAT = '%Y%m%dT%H%M%S'.freeze
8
+ OUT_FILENAME = "graphql_schema".freeze
9
+
10
+ name "graphql-schema"
11
+ type :other
12
+
13
+ def main(*_args)
14
+ return unless graphql_schema
15
+
16
+ File.open(output_filename, 'wb') { |fd| fd << schema_content }
17
+ log(:info) {
18
+ "Generated file: '#{output_filename}'"
19
+ }
20
+ end
21
+
22
+ private
23
+
24
+ def schema_content
25
+ case output_format
26
+ when :definition
27
+ graphql_schema.to_definition
28
+ when :json
29
+ graphql_schema.to_json
30
+ when :yaml
31
+ graphql_schema.to_yaml
32
+ else
33
+ raise ArgumentError, "Unknown '-format' #{output_format}"
34
+ end
35
+ end
36
+
37
+ def graphql_schema
38
+ @graphql_schema ||= graphql.client.schema
39
+ end
40
+
41
+ def output_filename(name = output_basename)
42
+ File.join(output_folder, "#{timestamp}_#{enviro_name}_#{name}.#{output_extension}")
43
+ end
44
+
45
+ def enviro_name
46
+ @enviro_name ||= ''.then do
47
+ host = graphql.client.host
48
+ uri = URI.parse("https://#{host}")
49
+ uri.host.split('.')[0].gsub('-', '_')
50
+ end
51
+ end
52
+
53
+ def output_extension
54
+ case output_format
55
+ when :definition then 'graphql'
56
+ when :json then 'json'
57
+ when :yaml then 'yml'
58
+ else
59
+ 'txt'
60
+ end
61
+ end
62
+
63
+ def output_folder
64
+ "#{config.active_enviro}/#{self.class::OUT_FOLDER}"
65
+ end
66
+
67
+ def timestamp(date = Time.now)
68
+ date.strftime(self.class::OUT_TIME_FORMAT)
69
+ end
70
+
71
+ def output_basename
72
+ options.dig(:output, :file, :name) || self.class::OUT_FILENAME
73
+ end
74
+
75
+ def output_format
76
+ @output_format ||= (options.dig(:output, :format) || :definition).to_sym
77
+ end
78
+ end
@@ -0,0 +1,12 @@
1
+ module Eco
2
+ module API
3
+ class UseCases
4
+ class Default
5
+ module Meta
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require_relative 'meta/graphql_schema'
@@ -1,4 +1,4 @@
1
- class Eco::API::UseCases::Default::People::Utils::SplitCsv
1
+ class Eco::API::UseCases::Default::Utils::SplitCsv
2
2
  class Cli < Eco::API::UseCases::Cli
3
3
  desc "Splits an input file into multiple ones"
4
4
 
@@ -1,4 +1,4 @@
1
- class Eco::API::UseCases::Default::People::Utils::SplitCsv < Eco::API::Common::Loaders::UseCase
1
+ class Eco::API::UseCases::Default::Utils::SplitCsv < Eco::API::Common::Loaders::UseCase
2
2
  require_relative 'cli/split_csv_cli'
3
3
 
4
4
  MAX_ROWS = 15_000
@@ -12,6 +12,7 @@ module Eco
12
12
  end
13
13
  end
14
14
 
15
+ require_relative 'default/meta'
16
+ require_relative 'default/utils'
15
17
  require_relative 'default/people'
16
18
  require_relative 'default/locations'
17
- require_relative 'default/utils'
data/lib/eco/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eco
2
- VERSION = '3.0.0'.freeze
2
+ VERSION = '3.0.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eco-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-01 00:00:00.000000000 Z
11
+ date: 2024-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -247,6 +247,9 @@ dependencies:
247
247
  - - "~>"
248
248
  - !ruby/object:Gem::Version
249
249
  version: '0.4'
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 0.4.1
250
253
  type: :runtime
251
254
  prerelease: false
252
255
  version_requirements: !ruby/object:Gem::Requirement
@@ -254,6 +257,9 @@ dependencies:
254
257
  - - "~>"
255
258
  - !ruby/object:Gem::Version
256
259
  version: '0.4'
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: 0.4.1
257
263
  - !ruby/object:Gem::Dependency
258
264
  name: ecoportal-api-v2
259
265
  requirement: !ruby/object:Gem::Requirement
@@ -261,6 +267,9 @@ dependencies:
261
267
  - - "~>"
262
268
  - !ruby/object:Gem::Version
263
269
  version: '2.0'
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: 2.0.8
264
273
  type: :runtime
265
274
  prerelease: false
266
275
  version_requirements: !ruby/object:Gem::Requirement
@@ -268,6 +277,9 @@ dependencies:
268
277
  - - "~>"
269
278
  - !ruby/object:Gem::Version
270
279
  version: '2.0'
280
+ - - ">="
281
+ - !ruby/object:Gem::Version
282
+ version: 2.0.8
271
283
  - !ruby/object:Gem::Dependency
272
284
  name: ed25519
273
285
  requirement: !ruby/object:Gem::Requirement
@@ -658,6 +670,9 @@ files:
658
670
  - lib/eco/api/usecases/default/locations/csv_to_tree_case.rb
659
671
  - lib/eco/api/usecases/default/locations/tagtree_extract_case.rb
660
672
  - lib/eco/api/usecases/default/locations/tagtree_upload_case.rb
673
+ - lib/eco/api/usecases/default/meta.rb
674
+ - lib/eco/api/usecases/default/meta/cli/graphql_schema_cli.rb
675
+ - lib/eco/api/usecases/default/meta/graphql_schema.rb
661
676
  - lib/eco/api/usecases/default/people.rb
662
677
  - lib/eco/api/usecases/default/people/amend.rb
663
678
  - lib/eco/api/usecases/default/people/amend/clean_unknown_tags_case.rb