workato-connector-sdk 1.1.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/VERSION +1 -0
  4. data/lib/workato/cli/edit_command.rb +3 -1
  5. data/lib/workato/cli/exec_command.rb +103 -17
  6. data/lib/workato/cli/generate_command.rb +2 -2
  7. data/lib/workato/cli/main.rb +17 -10
  8. data/lib/workato/cli/multi_auth_selected_fallback.rb +33 -0
  9. data/lib/workato/cli/oauth2_command.rb +50 -12
  10. data/lib/workato/cli/push_command.rb +2 -2
  11. data/lib/workato/cli/schema_command.rb +2 -2
  12. data/lib/workato/connector/sdk/account_properties.rb +2 -2
  13. data/lib/workato/connector/sdk/action.rb +20 -70
  14. data/lib/workato/connector/sdk/block_invocation_refinements.rb +2 -10
  15. data/lib/workato/connector/sdk/connection.rb +115 -30
  16. data/lib/workato/connector/sdk/connector.rb +71 -81
  17. data/lib/workato/connector/sdk/core.rb +62 -0
  18. data/lib/workato/connector/sdk/dsl/aws.rb +8 -5
  19. data/lib/workato/connector/sdk/dsl/call.rb +1 -1
  20. data/lib/workato/connector/sdk/dsl/csv_package.rb +133 -0
  21. data/lib/workato/connector/sdk/dsl/execution_context.rb +45 -0
  22. data/lib/workato/connector/sdk/dsl/http.rb +1 -1
  23. data/lib/workato/connector/sdk/dsl/reinvoke_after.rb +84 -0
  24. data/lib/workato/connector/sdk/dsl/stream_package.rb +65 -0
  25. data/lib/workato/connector/sdk/dsl/time.rb +0 -14
  26. data/lib/workato/connector/sdk/dsl/workato_package.rb +146 -0
  27. data/lib/workato/connector/sdk/dsl.rb +64 -10
  28. data/lib/workato/connector/sdk/errors.rb +37 -9
  29. data/lib/workato/connector/sdk/lookup_tables.rb +3 -1
  30. data/lib/workato/connector/sdk/operation.rb +33 -10
  31. data/lib/workato/connector/sdk/request.rb +149 -69
  32. data/lib/workato/connector/sdk/schema/field/convertors.rb +2 -2
  33. data/lib/workato/connector/sdk/schema/type/unicode_string.rb +1 -1
  34. data/lib/workato/connector/sdk/schema.rb +12 -8
  35. data/lib/workato/connector/sdk/settings.rb +14 -3
  36. data/lib/workato/connector/sdk/stream.rb +243 -0
  37. data/lib/workato/connector/sdk/streams.rb +71 -0
  38. data/lib/workato/connector/sdk/summarize.rb +2 -2
  39. data/lib/workato/connector/sdk/trigger.rb +23 -15
  40. data/lib/workato/connector/sdk/version.rb +1 -1
  41. data/lib/workato/connector/sdk.rb +21 -47
  42. data/lib/workato/extension/array.rb +2 -0
  43. data/lib/workato/extension/case_sensitive_headers.rb +0 -26
  44. data/lib/workato/extension/content_encoding_decoder.rb +69 -0
  45. data/lib/workato/extension/currency/countries.rb +79 -0
  46. data/lib/workato/extension/currency/countries.yml +18433 -0
  47. data/lib/workato/extension/currency/currencies.rb +55 -0
  48. data/lib/workato/extension/currency/currencies.yml +479 -0
  49. data/lib/workato/extension/currency.rb +73 -5
  50. data/lib/workato/extension/enumerable.rb +2 -2
  51. data/lib/workato/extension/extra_chain_cert.rb +0 -14
  52. data/lib/workato/extension/hash_with_indifferent_access.rb +19 -0
  53. data/lib/workato/extension/metadata_fix_wrap_kw_args.rb +11 -0
  54. data/lib/workato/extension/string.rb +16 -112
  55. data/lib/workato/testing/vcr_encrypted_cassette_serializer.rb +2 -0
  56. data/lib/workato/types/binary.rb +55 -0
  57. data/lib/workato/{connector/sdk → utilities}/xml.rb +4 -4
  58. metadata +61 -64
  59. data/lib/workato/connector/sdk/dsl/workato_code_lib.rb +0 -160
@@ -0,0 +1,79 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Workato
5
+ module Extension
6
+ module Currency
7
+ class Countries
8
+ extend T::Sig
9
+
10
+ include Singleton
11
+
12
+ class << self
13
+ extend T::Sig
14
+
15
+ sig { params(value: ::String).returns(T.nilable(Country)) }
16
+ def find_country(value)
17
+ instance.find_country(value)
18
+ end
19
+ end
20
+
21
+ class State < T::Struct
22
+ const :name, ::String
23
+ const :names, T::Array[::String]
24
+ end
25
+
26
+ private_constant :State
27
+
28
+ class Country < T::Struct
29
+ const :name, ::String
30
+ const :names, T::Array[::String]
31
+ const :states, T::Hash[::String, State]
32
+ const :alpha2, ::String
33
+ const :alpha3, ::String
34
+ const :number, ::String
35
+ const :currency_code, T.nilable(::String)
36
+ end
37
+
38
+ private_constant :Country
39
+
40
+ def initialize
41
+ @countries = load_countries
42
+ end
43
+
44
+ sig { params(value: ::String).returns(T.nilable(Country)) }
45
+ def find_country(value)
46
+ value = value.upcase
47
+ countries.find do |c|
48
+ c.alpha2 == value || c.alpha3 == value || c.number == value || # already in upper case
49
+ c.name.upcase == value || c.names.any? { |name| name.upcase == value }
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ sig { returns(T::Array[Country]) }
56
+ attr_reader :countries
57
+
58
+ sig { returns(T::Array[Country]) }
59
+ def load_countries
60
+ YAML.load_file(File.expand_path('./countries.yml', __dir__)).map do |data|
61
+ Country.new(
62
+ name: data['name'].freeze,
63
+ names: data['names'].map!(&:freeze).freeze,
64
+ alpha2: data['alpha2'].freeze,
65
+ alpha3: data['alpha3'].freeze,
66
+ number: data['number'].freeze,
67
+ currency_code: data['currency']&.freeze,
68
+ states: data['states'].transform_values do |s|
69
+ State.new(name: s['name'].freeze, names: ::Array.wrap(s['names']).map!(&:freeze).freeze)
70
+ end.freeze
71
+ ).freeze
72
+ end.freeze
73
+ end
74
+ end
75
+
76
+ private_constant :Countries
77
+ end
78
+ end
79
+ end