Sha256: 6807b478435f79a889eb6e3a6da2eb40d87d611893b731ba69497e8ab6285c0f

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

require 'forwardable'

module Moromi::Apns::Message
  class Base
    extend Forwardable

    attr_reader :parameter

    def_delegators :@parameter, :alert, :badge, :sound, :content_available, :mutable_content, :category, :priority

    # @param [Moromi::Apns::Parameter] parameter
    def initialize(parameter:)
      @parameter = parameter
    end

    def type
      self.class.name
    end

    def custom_data
      {type: type}.merge(@parameter.custom_data)
    end

    def serialize
      {
        type: type,
        parameter: @parameter.serialize
      }
    end

    def to_hash
      base = {
        aps: {
          badge: badge,
          alert: alert,
          sound: sound,
          'content-available' => content_available,
          'mutable-content' => mutable_content,
          priority: priority
        }
      }
      custom_data.merge(base)
    end

    # @param [Hash] params
    def self.unserialize(params)
      parameter = ::Moromi::Apns::Parameter.unserialize(params[:parameter])
      new(parameter: parameter)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
moromi-apns-0.7.0 lib/moromi/apns/message/base.rb