Sha256: 42ba22ad7bceb5458863f7e396dafcc5f4b761081874ec53ff3415eeea5dcc91

Contents?: true

Size: 1.72 KB

Versions: 11

Compression:

Stored size: 1.72 KB

Contents

# Toplevel Pubnub module.
module Pubnub
  # Validator module that holds all validators modules
  module Validator
    # Validator for AddMessageAction event
    module AddMessageAction
      include CommonValidator

      def validate!
        return if @skip_validate

        validate_channel!
        validate_type!
        validate_value!
        validate_timetoken!
      end

      private

      def validate_channel!
        return unless @channel.nil? || @channel.empty?

        raise ArgumentError, { message: ':channel is required for AddMessageAction event.' }
      end

      def validate_type!
        if @type.is_a? String
          raise ArgumentError, {message:':type is required for AddMessageAction event.'} if @type.empty?
        else
          raise ArgumentError, {message:':type should be String.'}
        end
        raise ArgumentError, {message:':type should be not longer than 15 characters.'} unless @type.length <= 15
      end

      def validate_value!
        if @value.is_a? String
          raise ArgumentError, {message:':value is required for AddMessageAction event.'} if @type.empty?
        else
          raise ArgumentError, {message:':value should be String.'}
        end
        raise ArgumentError, {message:':value should be String.'} unless @value.is_a? String
      end

      def validate_timetoken!
        raise ArgumentError, {message:':message_timetoken is required for AddMessageAction event.'} if @message_timetoken.nil?
        raise ArgumentError, {message:':message_timetoken should be Numeric.'} unless @message_timetoken.is_a? Numeric
        raise ArgumentError, {message:':message_timetoken should be PubNub timetoken larger than 0.'} unless @message_timetoken.positive?
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pubnub-5.5.0 lib/pubnub/validators/add_message_action.rb
pubnub-5.4.0 lib/pubnub/validators/add_message_action.rb
pubnub-5.3.5 lib/pubnub/validators/add_message_action.rb
pubnub-5.3.4 lib/pubnub/validators/add_message_action.rb
pubnub-5.3.3 lib/pubnub/validators/add_message_action.rb
pubnub-5.3.2 lib/pubnub/validators/add_message_action.rb
pubnub-5.3.1 lib/pubnub/validators/add_message_action.rb
pubnub-5.3.0 lib/pubnub/validators/add_message_action.rb
pubnub-5.2.2 lib/pubnub/validators/add_message_action.rb
pubnub-5.2.1 lib/pubnub/validators/add_message_action.rb
pubnub-5.2.0 lib/pubnub/validators/add_message_action.rb