Class: Sevendigital::UserManager

Inherits:
Manager
  • Object
show all
Defined in:
lib/sevendigital/management/user_manager.rb

Instance Method Summary collapse

Methods inherited from Manager

#initialize

Constructor Details

This class inherits a constructor from Sevendigital::Manager

Instance Method Details

#authenticate(email, password) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/sevendigital/management/user_manager.rb', line 17

def authenticate(email, password)
  request_token = @api_client.oauth.get_request_token
  return nil unless @api_client.oauth.authorise_request_token(email, password, request_token)
  user = Sevendigital::User.new(@api_client)
  user.oauth_access_token = @api_client.oauth.get_access_token(request_token)
  user
end

#get_add_card_url(return_url, token, options = {}) ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/sevendigital/management/user_manager.rb', line 64

def get_add_card_url(return_url, token, options={})
    api_request = @api_client.create_api_request(:GET, "payment/addcard", {:returnUrl => return_url}, options)
    api_request.api_service = :account
    api_request.require_signature
    api_request.require_secure_connection
    api_request.token = token
    @api_client.operator.get_request_uri(api_request)
end

#get_details(token, options = {}) ⇒ Object



5
6
7
8
# File 'lib/sevendigital/management/user_manager.rb', line 5

def get_details(token, options={})
  api_response = @api_client.make_signed_api_request(:GET, "user/details", {}, options, token)
  @locker = @api_client.user_digestor.from_xml_doc(api_response.item_xml("user"))
end

#get_locker(token, options = {}) ⇒ Object



33
34
35
36
# File 'lib/sevendigital/management/user_manager.rb', line 33

def get_locker(token, options={})
  api_response = @api_client.make_signed_api_request(:GET, "user/locker", {}, options, token)
  @locker = @api_client.locker_digestor.from_xml_doc(api_response.item_xml("locker"))
end

#get_stream_track_url(release_id, track_id, token, options = {}) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/sevendigital/management/user_manager.rb', line 56

def get_stream_track_url(release_id, track_id, token, options={})
    api_request = @api_client.create_api_request(:GET, "user/streamtrack", {:releaseId => release_id, :trackId => track_id}, options)
    api_request.api_service = :media
    api_request.require_signature
    api_request.token = token
    @api_client.operator.get_request_uri(api_request)
end

#login(access_token) ⇒ Object



10
11
12
13
14
15
# File 'lib/sevendigital/management/user_manager.rb', line 10

def (access_token)
  raise Sevendigital::SevendigitalError if !access_token.kind_of? OAuth::AccessToken
  user = Sevendigital::User.new(@api_client)
  user.oauth_access_token = access_token
  user
end

#purchase(release_id, track_id, price, token, options = {}) ⇒ Object

DEPRECATED: Please use purchase_item instead.



39
40
41
42
# File 'lib/sevendigital/management/user_manager.rb', line 39

def purchase(release_id, track_id, price, token, options={})
  warn "[DEPRECATION] 'purchase' is deprecated.  Please use 'purchase_item' instead."
  purchase_item(release_id, track_id, price, token, options)
end

#purchase_basket(basket_id, token, options = {}) ⇒ Object



50
51
52
53
54
# File 'lib/sevendigital/management/user_manager.rb', line 50

def purchase_basket(basket_id, token, options={})
  api_response = @api_client.make_signed_api_request(:GET, "user/purchase/basket", \
    {:basketId => basket_id}, options, token)
  @api_client.locker_digestor.from_xml_doc(api_response.item_xml("purchase"))
end

#purchase_item(release_id, track_id, price, token, options = {}) ⇒ Object



44
45
46
47
48
# File 'lib/sevendigital/management/user_manager.rb', line 44

def purchase_item(release_id, track_id, price, token, options={})
  api_response = @api_client.make_signed_api_request(:GET, "user/purchase/item", \
    {:releaseId => release_id, :trackId => track_id, :price => price}, options, token)
  @api_client.locker_digestor.from_xml_doc(api_response.item_xml("purchase"))
end

#sign_up(email, password, options = {}) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/sevendigital/management/user_manager.rb', line 25

def (email, password, options={})
  api_response = @api_client.make_signed_api_request(:POST, "user/signUp", \
    {:emailAddress => email, :password=> password}, options)
  user = @api_client.user_digestor.from_xml_doc(api_response.item_xml("user"))
  user.oauth_access_token = authenticate(email, password).oauth_access_token
  user
end