lib/rpush/client/active_model/pushy/notification.rb
module Rpush
module Client
module ActiveModel
module Pushy
module Notification
def self.included(base)
base.instance_eval do
alias_attribute :time_to_live, :expiry
validates :time_to_live, numericality: { only_integer: true, greater_than: 0 }, allow_nil: true
validates :registration_ids, presence: true
validates :data, presence: true
validates_with Rpush::Client::ActiveModel::Pushy::TimeToLiveValidator
validates_with Rpush::Client::ActiveModel::PayloadDataSizeValidator, limit: 4096
validates_with Rpush::Client::ActiveModel::RegistrationIdsCountValidator, limit: 1000
end
end
def as_json(_options = nil)
{
'data' => data,
'time_to_live' => time_to_live,
'registration_ids' => registration_ids
}
end
end
end
end
end
end