Sha256: 59407779d27918fd7d5dd228bdde025090f46009556f98632672a3faa78b2a2f

Contents?: true

Size: 1.55 KB

Versions: 2

Compression:

Stored size: 1.55 KB

Contents

require 'uri'

module Voucherify
  module Service
    class Rewards
      attr_reader :client

      def initialize(client)
        @client = client
      end

      def assignments
        Voucherify::Service::RewardAssignments.new(@client)
      end

      def create(reward)
        @client.post('/rewards', reward.to_json)
      end

      def get(reward_id)
        @client.get("/rewards/#{ERB::Util.url_encode(reward_id)}")
      end

      def update(reward_id, reward)
        @client.put("/rewards/#{ERB::Util.url_encode(reward_id)}", reward.to_json)
      end

      def list(query = {})
        @client.get("/rewards", query)
      end

      def delete(reward_id)
        @client.delete("/rewards/#{ERB::Util.url_encode(reward_id)}")
        nil
      end
    end

    class RewardAssignments
      attr_reader :client

      def initialize(client)
        @client = client
      end

      def list(reward_id, query = {})
        @client.get("/rewards/#{ERB::Util.url_encode(reward_id)}/assignments", query)
      end

      def create(reward_id, assignment)
        @client.post("/rewards/#{ERB::Util.url_encode(reward_id)}/assignments", assignment.to_json)
      end

      def update(reward_id, assignment_id, assignment)
        @client.put("/rewards/#{ERB::Util.url_encode(reward_id)}/assignments/#{ERB::Util.url_encode(assignment_id)}", assignment.to_json)
      end

      def delete(reward_id, assignment_id)
        @client.delete("/rewards/#{ERB::Util.url_encode(reward_id)}/assignments/#{ERB::Util.url_encode(assignment_id)}")
        nil
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
voucherify-4.1.0 lib/voucherify/service/rewards.rb
voucherify-4.0.0 lib/voucherify/service/rewards.rb