lib/workato/connector/sdk/dsl.rb in workato-connector-sdk-1.2.0 vs lib/workato/connector/sdk/dsl.rb in workato-connector-sdk-1.3.0
- old
+ new
@@ -3,61 +3,114 @@
require_relative './block_invocation_refinements'
require_relative './dsl/http'
require_relative './dsl/call'
+require_relative './dsl/reinvoke_after'
require_relative './dsl/error'
require_relative './dsl/account_property'
require_relative './dsl/lookup_table'
-require_relative './dsl/workato_code_lib'
+require_relative './dsl/workato_package'
require_relative './dsl/workato_schema'
require_relative './dsl/time'
require_relative './dsl/aws'
require_relative './dsl/execution_context'
module Workato
module Connector
module Sdk
module Dsl
module Global
+ extend T::Sig
+ extend T::Helpers
+
+ abstract!
+
+ sig { abstract.returns(Streams) }
+ def streams; end
+
+ sig { abstract.returns(Connection) }
+ def connection; end
+
include Time
include AccountProperty
include LookupTable
- include WorkatoCodeLib
include WorkatoSchema
- include AWS
+ delegate :parse_json,
+ :uuid,
+ to: :workato
+
+ def workato
+ @workato ||= WorkatoPackage.new(streams: streams, connection: connection)
+ end
+
def sleep(seconds)
::Kernel.sleep(seconds.presence || 0)
end
def puts(*args)
T.unsafe(::Kernel).puts(*args)
end
+
+ def encrypt(text, key)
+ ::Kernel.require('ruby_rncryptor')
+
+ enc_text = ::RubyRNCryptor.encrypt(text, key)
+ ::Base64.strict_encode64(enc_text)
+ end
+
+ def decrypt(text, key)
+ ::Kernel.require('ruby_rncryptor')
+
+ text = ::Base64.decode64(text)
+ dec_text = ::RubyRNCryptor.decrypt(text, key)
+ Workato::Types::Binary.new(dec_text)
+ rescue Exception => e # rubocop:disable Lint/RescueException
+ message = e.message.to_s
+ case message
+ when /Password may be incorrect/
+ ::Kernel.raise 'invalid/corrupt input or key'
+ when /RubyRNCryptor only decrypts version/
+ ::Kernel.raise 'invalid/corrupt input'
+ else
+ ::Kernel.raise
+ end
+ end
+
+ def blank; end
+
+ def clear; end
+
+ def null; end
+
+ def skip; end
end
class WithDsl
extend T::Sig
include Global
using BlockInvocationRefinements
- sig { params(connection: Connection, args: T.untyped, block: T.untyped).returns(T.untyped) }
- def execute(connection, *args, &block)
+ sig { params(connection: Connection, streams: Streams).void }
+ def initialize(connection = Connection.new, streams = ProhibitedStreams.new)
@connection = connection
- T.unsafe(self).instance_exec(*args, &block)
+ @streams = streams
end
- sig { params(connection: Connection, args: T.untyped, block: T.untyped).returns(T.untyped) }
- def self.execute(connection, *args, &block)
- T.unsafe(WithDsl.new).execute(connection, *args, &block)
+ def execute(...)
+ T.unsafe(self).instance_exec(...)
end
private
- sig { returns(Connection) }
+ sig { override.returns(Connection) }
attr_reader :connection
+
+ sig { override.returns(Streams) }
+ attr_reader :streams
end
end
end
end
end