module SelfSDK::Messages
Public Class Methods
parse(input, messaging, original=nil)
click to toggle source
# File lib/messages/message.rb, line 12 def self.parse(input, messaging, original=nil) envelope = nil body = if input.is_a? String input else envelope = input issuer = input.sender.split(":") messaging.encryption_client.decrypt(input.ciphertext, issuer.first, issuer.last) end jwt = JSON.parse(body, symbolize_names: true) payload = JSON.parse(messaging.jwt.decode(jwt[:payload]), symbolize_names: true) case payload[:typ] when "identities.facts.query.req" m = FactRequest.new(messaging) m.parse(body, envelope) when "identities.facts.query.resp" m = FactResponse.new(messaging) m.parse(body, envelope) when "identities.authenticate.resp" m = AuthenticationResp.new(messaging) m.parse(body, envelope) when "identities.authenticate.req" m = AuthenticationReq.new(messaging) m.parse(body, envelope) else raise StandardError.new("Invalid message type.") end return m end