Module: LcpSdk
- Defined in:
- lib/generated_models.rb,
lib/lcp_sdk.rb,
lib/schema_validator.rb
Overview
GENERATED FROM schemas/ — do not edit manually.
Defined Under Namespace
Modules: Signing Classes: AckPayload, BidPayload, CallPayload, Client, EnvelopeModel, EventPayload, LeadPayload, Message, MessageModel, OfferModel, PingPayload, PostPayload, SchemaValidationError, SchemaValidator
Class Method Summary collapse
- .build_envelope(type, sender_id, receiver_id, payload, test: false) ⇒ Object
- .validate_envelope(envelope) ⇒ Object
Class Method Details
.build_envelope(type, sender_id, receiver_id, payload, test: false) ⇒ Object
52 53 54 55 |
# File 'lib/lcp_sdk.rb', line 52 def build_envelope(type, sender_id, receiver_id, payload, test: false) id = SecureRandom.uuid { "lcp" => { "version" => "1.0.0", "message" => { "id" => id, "type" => type, "timestamp" => Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"), "sender_id" => sender_id, "receiver_id" => receiver_id, "correlation_id" => nil, "idempotency_key" => "#{sender_id}-#{type}-#{SecureRandom.hex(16)}", "test" => test }, "payload" => payload } } end |
.validate_envelope(envelope) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/lcp_sdk.rb', line 57 def validate_envelope(envelope) = envelope.dig("lcp", "message") raise ArgumentError, "invalid LCP envelope" unless envelope.dig("lcp", "version").is_a?(String) && .is_a?(Hash) %w[id type timestamp sender_id receiver_id idempotency_key].each { |key| raise ArgumentError, "missing lcp.message.#{key}" unless [key].is_a?(String) && ![key].empty? } raise ArgumentError, "missing lcp.payload" unless envelope.dig("lcp").key?("payload") true end |