Sha256: 36f08fcfe97aa6d95b884aa8a2d8f1f6a0adbea4c92d621a207f76baa7c63975

Contents?: true

Size: 1.61 KB

Versions: 3

Compression:

Stored size: 1.61 KB

Contents

require_relative "base"
require "wamp/client/message"

module Wamp
  module Client
    module Request

      class Message::Unregistered
        def request_id
          self.unregister_request
        end
      end

      class Unregister < Base

        def create_request(request_id, registration, &callback)

          # Create the lookup
          lookup = { r: registration, c: callback }

          # Create the message
          message = Message::Unregister.new(request_id, registration.id)

          # Return
          [lookup, message]
        end

        def process_success(message, lookup)
          if lookup
            # Get the params
            registration = lookup[:r]
            callback = lookup[:c]

            # Create the details
            details = {}
            details[:procedure] = registration.procedure
            details[:type] = 'unregister'

            # Call the on_success method
            self.on_success.call(registration.id)

            # Return the values
            [callback, registration, details]
          else
            [nil, nil, nil]
          end
        end

        def process_error(message, lookup)
          if lookup
            # Get the params
            registration = lookup[:r]
            callback = lookup[:c]

            # Create the details
            details = message.details || {}
            details[:procedure] = registration.procedure unless details[:procedure]
            details[:type] = 'unregister'

            # Return the values
            [callback, details]
          else
            [nil, nil]
          end
        end

      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
wamp_client-0.2.2 lib/wamp/client/request/unregister.rb
wamp_client-0.2.1 lib/wamp/client/request/unregister.rb
wamp_client-0.2.0 lib/wamp/client/request/unregister.rb