Class: Naviance::Subscription

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/naviance/subscription.rb

Instance Attribute Summary (collapse)

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Subscription) initialize(params)

:nodoc:



9
10
11
12
13
14
15
16
17
18
# File 'lib/naviance/subscription.rb', line 9

def initialize(params) # :nodoc:
  @subscription_id = params['subscription_id']
  @school_id = params['school_id']
  @partner_id = params['partner_id']
  @application_id = params['application_id']
  @expiration_date = params['expiration_date']
  @purchase_amount = params['purchase_amount']
  @status = params['status']
  @reference_id = params['reference_id']
end

Instance Attribute Details

- (Object) application_id (readonly)

Returns the value of attribute application_id



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def application_id
  @application_id
end

- (Object) expiration_date (readonly)

Returns the value of attribute expiration_date



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def expiration_date
  @expiration_date
end

- (Object) partner_id (readonly)

Returns the value of attribute partner_id



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def partner_id
  @partner_id
end

- (Object) purchase_amount (readonly)

Returns the value of attribute purchase_amount



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def purchase_amount
  @purchase_amount
end

- (Object) reference_id (readonly)

Returns the value of attribute reference_id



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def reference_id
  @reference_id
end

- (Object) school_id (readonly)

Returns the value of attribute school_id



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def school_id
  @school_id
end

- (Object) status (readonly)

Returns the value of attribute status



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def status
  @status
end

- (Object) subscription_id (readonly)

Returns the value of attribute subscription_id



3
4
5
# File 'lib/naviance/subscription.rb', line 3

def subscription_id
  @subscription_id
end

Class Method Details

+ (Object) list_for_school(env, access_token, id)

Get a Subscription list for a School

Attributes

  • env - The environment you are working in sandbox or production. Also accepts corresponding Rails.env

  • access_token - A valid access token see Naviance::AccessToken#get

  • id - The Naviance ID of the School



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/naviance/subscription.rb', line 71

def self.list_for_school(env, access_token, id)
  url = "#{Naviance.base_url(env)}/school/#{id}/subscription/?access_token=#{access_token}"

  resp = get(url)

  if 200 == resp.code
    subscriptions = []
    resp.parsed_response.each do |subscription|
      subscriptions << new(MultiJson.decode(subscription))
    end

    subscriptions
  else
    Naviance.error(resp)
  end
end

+ (Object) process(env, access_token, subscription)

Create/update/expire a Subscription

Attributes

  • env - The environment you are working in sandbox or production. Also accepts corresponding Rails.env

  • access_token - A valid access token see Naviance::AccessToken#get

  • subscription - A Hash of the subscription properties

Examples

# Create a new Subscription for a School
Naviance::Subscription.process('sandbox', 'valid_access_token', {
    'school_id' => '148bc4f67537',
    'reference_id' => 'fe94a82d8949',
    'application_id' => '6171de825baf',
    'purchase_amount' => '100.00',
    'expiration_date' => '2012-01-31',
    'status' => 'active'
})

# Deactivate a Subscription for a School
Naviance::Subscription.process('sandbox', 'valid_access_token', {
    'subscription_id' => '20af9e4c5a43',
    'school_id' => '148bc4f67537',
    'reference_id' => 'fe94a82d8949',
    'application_id' => '6171de825baf',
    'purchase_amount' => '100.00',
    'expiration_date' => '2012-01-31',
    'status' => 'inactive'
})

Raises:

  • (ArgumentError)


50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/naviance/subscription.rb', line 50

def self.process(env, access_token, subscription)
  raise ArgumentError.new("subscription must be a hash.") unless subscription.is_a?(Hash)

  url = "#{Naviance.base_url(env)}/school/#{subscription['school_id']}/subscription/?access_token=#{access_token}"

  resp = post(url, :body => subscription)

  if 200 == resp.code
    new(resp.parsed_response)
  else
    Naviance.error(resp)
  end
end