Sha256: 3b57094bff3a61603ca43bbf8a1b18035b358e01eb9211519c74fea497f56742

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

require 'passworks/resource'

module Passworks

  # Represents a Pass of a given collection type Coupon, Boarding Pass, Event Ticket, Generic, Store Card
  #
  class PassResource < Resource

    # Deletes the current pass
    # @return [Boolean] True in case the pass is deleted
    def delete
      client.delete("#{collection_name}/#{collection_uuid}/passes/#{id}").ok?
    end

    # Sends a push notification to all clients with this pass installed
    # @return [Boolean] True in case the pass
    def push
      client.post("#{collection_name}/#{collection_uuid}/passes/#{id}/push").ok?
    end

    # Updates the {PassResource} and returns the updated instance
    # @return [PassResource] Updated instance
    def update(data, params={})
      content = {
        body: {
          pass: data
        }.merge(params)
      }
      response  = client.patch("#{collection_name}/#{collection_uuid}/passes/#{id}", content)
      self.class.new(client, collection_name, response.data)
    end

    private
      def collection_uuid
        @collection_uuid ||= send("#{single_name}_id")
      end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
passworks-0.0.2 lib/passworks/pass_resource.rb
passworks-0.0.1 lib/passworks/pass_resource.rb