Class: AppleVPP::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/apple_vpp/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(s_token) ⇒ Client

Returns a new instance of Client.



9
10
11
12
# File 'lib/apple_vpp/client.rb', line 9

def initialize(s_token)
  @s_token = s_token
  @url_service = UrlService.new
end

Instance Attribute Details

#s_tokenObject

Returns the value of attribute s_token.



7
8
9
# File 'lib/apple_vpp/client.rb', line 7

def s_token
  @s_token
end

Instance Method Details

#associate_license_with_user(params = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/apple_vpp/client.rb', line 14

def associate_license_with_user(params = {})
  require_params [[:user_id, :client_user_id_str], [:adam_id, :license_id]], params

  body = {
    'userId'          => params[:user_id],
    'clientUserIdStr' => params[:client_user_id_str],
    'adamId'          => params[:adam_id],
    'licenseId'       => params[:license_id],
    'pricingParam'    => params[:pricing_param]
  }

  resp = request :associate_license_srv_url, body

  AppleSerializer.to_ruby [ resp['license'], resp['user'] ]
end

#client_config(params = {}) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/apple_vpp/client.rb', line 42

def client_config(params = {})
  body = {
    'clientContext' => params[:client_context],
    'apnToken'      => params[:apn_token]
  }

  resp = request :client_config_srv_url, body
  resp.delete('status')

  AppleSerializer.to_ruby resp
end

#disassociate_license_from_user(params = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/apple_vpp/client.rb', line 30

def disassociate_license_from_user(params = {})
  require_params :license_id, params

  body = {
    'licenseId' => params[:license_id]
  }

  resp = request :disassociate_license_srv_url, body

  AppleSerializer.to_ruby [ resp['license'], resp['user'] ]
end

#edit_user(params = {}) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/apple_vpp/client.rb', line 54

def edit_user(params = {})
  require_params [[:user_id, :client_user_id_str]], params

  body = {
    'userId'          => params[:user_id],
    'clientUserIdStr' => params[:client_user_id_str],
    'email'           => params[:email]
  }

  resp = request :edit_user_srv_url, body

  AppleSerializer.to_ruby resp['user']
end

#get_licenses(params = {}) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/apple_vpp/client.rb', line 68

def get_licenses(params = {})
  licenses = []
  batch_token = nil
  since_modified_token = nil

  begin

    body = {
      'batchToken'          => batch_token,
      'sinceModifiedToken'  => params[:since_modified_token],
      'adamId'              => params[:adam_id],
      'pricingParam'        => params[:pricing_param]
    }

    resp = request :get_licenses_srv_url, body

    licenses.concat( resp['licenses'] ) if resp['licenses']

    batch_token = resp['batchToken']
    since_modified_token = resp['sinceModifiedToken']

  end while batch_token

  { 
    licenses:             AppleSerializer.to_ruby(licenses),
    since_modified_token: since_modified_token
  }
end

#get_user(params = {}) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/apple_vpp/client.rb', line 97

def get_user(params = {})
  require_params [[:user_id, :client_user_id_str]], params
 
  body = {
    'userId'          => params[:user_id], 
    'clientUserIdStr' => params[:client_user_id_str], 
    'itsIdHash'       => params[:its_id_hash]
  }

  resp = request :get_user_srv_url, body

  AppleSerializer.to_ruby resp['user']
end

#get_users(params = {}) ⇒ Object



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/apple_vpp/client.rb', line 137

def get_users(params = {})
  users = []
  batch_token = nil
  since_modified_token = nil

  begin

    body = {
      'batchToken'          => batch_token,
      'sinceModifiedToken'  => params[:since_modified_token],
      'includeRetired'      => params[:include_retired] ? 1 : nil
    }

    resp = request :get_users_srv_url, body

    users.concat( resp['users'] ) if resp['users']

    batch_token = resp['batchToken']
    since_modified_token = resp['sinceModifiedToken']
  
  end while batch_token

  { 
    users:                AppleSerializer.to_ruby(users),
    since_modified_token: since_modified_token
  }
end

#register_user(params = {}) ⇒ Object



111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/apple_vpp/client.rb', line 111

def register_user(params = {})
  require_params :client_user_id_str, params

  body = {
    'clientUserIdStr' => params[:client_user_id_str],
    'email'           => params[:email]
  }

  resp = request :register_user_srv_url, body

  AppleSerializer.to_ruby resp['user']
end

#retire_user(params = {}) ⇒ Object



124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/apple_vpp/client.rb', line 124

def retire_user(params = {})
  require_params [[:user_id, :client_user_id_str]], params

  body = {
    'userId'          => params[:user_id],
    'clientUserIdStr' => params[:client_user_id_str]
  }

  resp = request :retire_user_srv_url, body

  AppleSerializer.to_ruby resp['user']
end