myspaceid-sdk 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +30 -0
- data/lib/myspace.rb +15 -0
- data/lib/myspace/exceptions.rb +31 -0
- data/lib/myspace/myspace.rb +565 -0
- data/lib/myspace/oauth.rb +62 -0
- data/lib/patches.rb +42 -0
- data/samples/rails/README +83 -0
- data/samples/rails/consumer_key.rb +4 -0
- data/samples/rails/consumer_key.rb-copyme +4 -0
- data/samples/rails/sample/README +256 -0
- data/samples/rails/sample/Rakefile +10 -0
- data/samples/rails/sample/app/controllers/application.rb +15 -0
- data/samples/rails/sample/app/controllers/oauth_controller.rb +68 -0
- data/samples/rails/sample/app/controllers/openid_controller.rb +105 -0
- data/samples/rails/sample/app/controllers/user_controller.rb +96 -0
- data/samples/rails/sample/app/helpers/application_helper.rb +3 -0
- data/samples/rails/sample/app/helpers/oauth_helper.rb +2 -0
- data/samples/rails/sample/app/helpers/openid_helper.rb +2 -0
- data/samples/rails/sample/app/helpers/user_helper.rb +90 -0
- data/samples/rails/sample/app/views/oauth/error.rhtml +8 -0
- data/samples/rails/sample/app/views/oauth/index.rhtml +8 -0
- data/samples/rails/sample/app/views/oauth/profile.rhtml +74 -0
- data/samples/rails/sample/app/views/openid/index.rhtml +125 -0
- data/samples/rails/sample/app/views/user/complete.rhtml +59 -0
- data/samples/rails/sample/app/views/user/index.rhtml +157 -0
- data/samples/rails/sample/config/boot.rb +109 -0
- data/samples/rails/sample/config/database.yml +22 -0
- data/samples/rails/sample/config/environment.rb +75 -0
- data/samples/rails/sample/config/environments/development.rb +17 -0
- data/samples/rails/sample/config/environments/production.rb +24 -0
- data/samples/rails/sample/config/environments/test.rb +22 -0
- data/samples/rails/sample/config/initializers/inflections.rb +10 -0
- data/samples/rails/sample/config/initializers/mime_types.rb +5 -0
- data/samples/rails/sample/config/initializers/new_rails_defaults.rb +17 -0
- data/samples/rails/sample/config/locales/en.yml +5 -0
- data/samples/rails/sample/config/routes.rb +43 -0
- data/samples/rails/sample/db/development.sqlite3 +0 -0
- data/samples/rails/sample/doc/README_FOR_APP +5 -0
- data/samples/rails/sample/public/404.html +30 -0
- data/samples/rails/sample/public/422.html +30 -0
- data/samples/rails/sample/public/500.html +33 -0
- data/samples/rails/sample/public/dispatch.cgi +10 -0
- data/samples/rails/sample/public/dispatch.fcgi +24 -0
- data/samples/rails/sample/public/dispatch.rb +10 -0
- data/samples/rails/sample/public/favicon.ico +0 -0
- data/samples/rails/sample/public/images/8b_Home.jpg +0 -0
- data/samples/rails/sample/public/images/8b_homecomp_200.jpg +0 -0
- data/samples/rails/sample/public/images/8b_profile_page_201.jpg +0 -0
- data/samples/rails/sample/public/images/LArge_150x35_myspaceID.png +0 -0
- data/samples/rails/sample/public/images/MySpaceID-loginwith-156x28.png +0 -0
- data/samples/rails/sample/public/images/appengine_button_noborder.gif +0 -0
- data/samples/rails/sample/public/images/background.png +0 -0
- data/samples/rails/sample/public/images/blue_150_Loginwithmyspaceid.png +0 -0
- data/samples/rails/sample/public/images/blue_150_signupwithmyspaceid.png +0 -0
- data/samples/rails/sample/public/images/blue_90_myspaceid.png +0 -0
- data/samples/rails/sample/public/images/button-background.gif +0 -0
- data/samples/rails/sample/public/images/grey_150_Loginwithmyspaceid.png +0 -0
- data/samples/rails/sample/public/images/grey_180_signupwithmyspaceid.png +0 -0
- data/samples/rails/sample/public/images/grey_90_myspaceid.png +0 -0
- data/samples/rails/sample/public/images/image.gif +0 -0
- data/samples/rails/sample/public/images/keyhole_buttons_only.png +0 -0
- data/samples/rails/sample/public/images/level_icon.png +0 -0
- data/samples/rails/sample/public/images/myspaceid.png +0 -0
- data/samples/rails/sample/public/images/nav_select.png +0 -0
- data/samples/rails/sample/public/images/openid-16x16.gif +0 -0
- data/samples/rails/sample/public/images/openid-icon.png +0 -0
- data/samples/rails/sample/public/images/openid-logo.png +0 -0
- data/samples/rails/sample/public/images/profile_icon.png +0 -0
- data/samples/rails/sample/public/images/profile_pic.png +0 -0
- data/samples/rails/sample/public/images/rails.png +0 -0
- data/samples/rails/sample/public/images/ranking_badge.png +0 -0
- data/samples/rails/sample/public/images/song_play.png +0 -0
- data/samples/rails/sample/public/images/song_sound.png +0 -0
- data/samples/rails/sample/public/images/star_grey.png +0 -0
- data/samples/rails/sample/public/images/star_yellow.png +0 -0
- data/samples/rails/sample/public/index.html +19 -0
- data/samples/rails/sample/public/index.html.orig +274 -0
- data/samples/rails/sample/public/javascripts/application.js +2 -0
- data/samples/rails/sample/public/javascripts/controls.js +963 -0
- data/samples/rails/sample/public/javascripts/dragdrop.js +973 -0
- data/samples/rails/sample/public/javascripts/effects.js +1128 -0
- data/samples/rails/sample/public/javascripts/myspaceid.rev.0.js +103 -0
- data/samples/rails/sample/public/javascripts/prototype.js +4320 -0
- data/samples/rails/sample/public/robots.txt +5 -0
- data/samples/rails/sample/public/stylesheets/base.css +46 -0
- data/samples/rails/sample/public/stylesheets/main.css +65 -0
- data/samples/rails/sample/public/stylesheets/openid.css +119 -0
- data/samples/rails/sample/script/about +4 -0
- data/samples/rails/sample/script/console +3 -0
- data/samples/rails/sample/script/dbconsole +3 -0
- data/samples/rails/sample/script/destroy +3 -0
- data/samples/rails/sample/script/generate +3 -0
- data/samples/rails/sample/script/performance/benchmarker +3 -0
- data/samples/rails/sample/script/performance/profiler +3 -0
- data/samples/rails/sample/script/performance/request +3 -0
- data/samples/rails/sample/script/plugin +3 -0
- data/samples/rails/sample/script/process/inspector +3 -0
- data/samples/rails/sample/script/process/reaper +3 -0
- data/samples/rails/sample/script/process/spawner +3 -0
- data/samples/rails/sample/script/runner +3 -0
- data/samples/rails/sample/script/server +3 -0
- data/samples/rails/sample/test/functional/oauth_controller_test.rb +8 -0
- data/samples/rails/sample/test/functional/openid_controller_test.rb +8 -0
- data/samples/rails/sample/test/functional/user_controller_test.rb +8 -0
- data/samples/rails/sample/test/performance/browsing_test.rb +9 -0
- data/samples/rails/sample/test/test_helper.rb +38 -0
- data/test/data.rb +8 -0
- data/test/myspace_test.rb +13 -0
- data/test/tc_albums.rb +126 -0
- data/test/tc_friends.rb +96 -0
- data/test/tc_profile.rb +107 -0
- data/test/tc_videos.rb +125 -0
- data/test/test_data.rb +14 -0
- data/test/ts_alltests.rb +7 -0
- metadata +222 -0
data/README
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
MySpaceID lets your users log on using their MySpace account info,
|
|
2
|
+
after which their MySpaceID data becomes available; that is, your web
|
|
3
|
+
servers will be able to communicate with our web servers and request
|
|
4
|
+
user data.
|
|
5
|
+
|
|
6
|
+
This SDK project contains examples of the base API code necessary to
|
|
7
|
+
make signed requests against the MySpaceID REST API.
|
|
8
|
+
|
|
9
|
+
To use the MySpaceID API, you first need to register on the MySpace
|
|
10
|
+
Developer Site, create an app, and obtain a consumer key and
|
|
11
|
+
secret. Information about these procedures, and about MySpaceID in
|
|
12
|
+
general, is available at the MySpaceID Developer Wiki:
|
|
13
|
+
|
|
14
|
+
http://wiki.developer.myspace.com/index.php?title=Category:MySpaceID
|
|
15
|
+
|
|
16
|
+
The MySpaceID Ruby SDK enables you to work with MySpace data using the
|
|
17
|
+
OpenStack (OpenID, OAuth etc) and the MySpace REST APIs via
|
|
18
|
+
easy-to-use high level interfaces.
|
|
19
|
+
|
|
20
|
+
The best way to implement your own application is to take an existing
|
|
21
|
+
sample and customize it. Working Examples in this SDK:
|
|
22
|
+
|
|
23
|
+
* OAuth - make signed requests
|
|
24
|
+
* OpenID + OAuth Hybrid - delegated login, and making signed requests
|
|
25
|
+
|
|
26
|
+
Documentation
|
|
27
|
+
|
|
28
|
+
* Ruby SDK Documentation Summary: samples/rails/README
|
|
29
|
+
* Ruby SDK - API Documentation: http://myspaceid-ruby-sdk.googlecode.com/svn/trunk/doc/index.html
|
|
30
|
+
|
data/lib/myspace.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'oauth/consumer'
|
|
3
|
+
require 'openid/consumer'
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'logger'
|
|
6
|
+
|
|
7
|
+
require 'patches'
|
|
8
|
+
|
|
9
|
+
module MySpace
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
require 'myspace/myspace'
|
|
13
|
+
require 'myspace/exceptions'
|
|
14
|
+
require 'myspace/oauth'
|
|
15
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module MySpace
|
|
2
|
+
class MySpaceException < Exception
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
class BadIdentifier < MySpaceException
|
|
6
|
+
attr_reader :parameter, :identifier
|
|
7
|
+
def initialize(parameter, identifier)
|
|
8
|
+
@parameter = parameter
|
|
9
|
+
@identifier = identifier
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class RestException < MySpaceException
|
|
14
|
+
attr_reader :code, :message, :url
|
|
15
|
+
def initialize(code, message, url)
|
|
16
|
+
@code = code
|
|
17
|
+
@message = message
|
|
18
|
+
@url = url
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def to_s
|
|
22
|
+
"#<MySpace::RestException: #{@code}: '#{@message}' loading '#{@url}'>"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
class PermissionDenied < RestException
|
|
27
|
+
def to_s
|
|
28
|
+
"#<PermissionDenied loading '#{url}'>"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
module MySpace
|
|
2
|
+
# The MySpace API object provides access to the MySpace REST API.
|
|
3
|
+
class MySpace
|
|
4
|
+
APPLICATION_TYPE_ONSITE = 'onsite' unless const_defined?('APPLICATION_TYPE_ONSITE')
|
|
5
|
+
APPLICATION_TYPE_OFFSITE = 'offsite' unless const_defined?('APPLICATION_TYPE_OFFSITE')
|
|
6
|
+
|
|
7
|
+
OAUTH_SITES = {
|
|
8
|
+
:prod => 'http://api.myspace.com',
|
|
9
|
+
:stage => 'http://stage-api.myspace.com'
|
|
10
|
+
} unless const_defined?('OAUTH_SITE')
|
|
11
|
+
|
|
12
|
+
OAUTH_REQUEST_TOKEN_URL = '/request_token' unless const_defined?('OAUTH_REQUEST_TOKEN_URL')
|
|
13
|
+
OAUTH_AUTHORIZATION_URL = '/authorize' unless const_defined?('OAUTH_AUTHORIZATION_URL')
|
|
14
|
+
OAUTH_ACCESS_TOKEN_URL = '/access_token' unless const_defined?('OAUTH_ACCESS_TOKEN_URL')
|
|
15
|
+
|
|
16
|
+
API_USERINFO_URL = '/v1/user.json' unless const_defined?('API_USERINFO_URL')
|
|
17
|
+
API_ALBUMS_URL = '/v1/users/%s/albums.json' unless const_defined?('API_ALBUMS_URL')
|
|
18
|
+
API_ALBUM_URL = '/v1/users/%s/albums/%s/photos.json' unless const_defined?('API_ALBUM_URL')
|
|
19
|
+
API_FRIENDS_URL = '/v1/users/%s/friends.json' unless const_defined?('API_FRIENDS_URL')
|
|
20
|
+
API_FRIENDSHIP_URL = '/v1/users/%s/friends/%s.json' unless const_defined?('API_FRIENDSHIP_URL')
|
|
21
|
+
API_MOOD_URL = '/v1/users/%s/mood.json' unless const_defined?('API_MOOD_URL')
|
|
22
|
+
API_PHOTOS_URL = '/v1/users/%s/photos.json' unless const_defined?('API_PHOTOS_URL')
|
|
23
|
+
API_PHOTO_URL = '/v1/users/%s/photos/%s.json' unless const_defined?('API_PHOTO_URL')
|
|
24
|
+
API_PROFILE_URL = '/v1/users/%s/profile.json' unless const_defined?('API_PROFILE_URL')
|
|
25
|
+
API_STATUS_URL = '/v1/users/%s/status.json' unless const_defined?('API_STATUS_URL')
|
|
26
|
+
API_STATUS_PUT_URL = '/v1/users/%s/status' unless const_defined?('API_STATUS_PUT_URL')
|
|
27
|
+
API_VIDEOS_URL = '/v1/users/%s/videos.json' unless const_defined?('API_VIDEOS_URL')
|
|
28
|
+
API_VIDEO_URL = '/v1/users/%s/videos/%s.json' unless const_defined?('API_VIDEO_URL')
|
|
29
|
+
API_ACTIVITIES_URL = '/v1/users/%s/activities.atom' unless const_defined?('API_ACTIVITIES_URL')
|
|
30
|
+
API_FRIENDS_ACTIVITIES_URL = '/v1/users/%s/friends/activities.atom' unless const_defined?('API_FRIENDS_ACTIVITIES_URL')
|
|
31
|
+
|
|
32
|
+
attr_reader :consumer
|
|
33
|
+
attr_accessor :http_logger
|
|
34
|
+
attr_accessor :request_token
|
|
35
|
+
attr_accessor :access_token
|
|
36
|
+
|
|
37
|
+
# Save the application key/secret(s) and initialize OAuth code.
|
|
38
|
+
#
|
|
39
|
+
# If optional param +:application_type+ is passed, it must be one
|
|
40
|
+
# of +MySpace::APPLICATION_TYPE_ONSITE+ or
|
|
41
|
+
# +MySpace::APPLICATION_TYPE_OFFSITE+. If the application is an
|
|
42
|
+
# onsite application, an access token is not required, since the
|
|
43
|
+
# user must separately give your application permission to access
|
|
44
|
+
# their data. If the application is an offsite application, it
|
|
45
|
+
# must get an access token from the user to access their data.
|
|
46
|
+
#
|
|
47
|
+
# If optional param +:request_token+ is passed
|
|
48
|
+
# +:request_token_secret+ must also be passed, and they will be
|
|
49
|
+
# used to create the default argument to
|
|
50
|
+
# +MySpace#get_access_token+ below. If optional param
|
|
51
|
+
# +:access_token+ is passed, +:access_token_secret+ must also be
|
|
52
|
+
# passed, and they will be used to create the access token for the
|
|
53
|
+
# REST API calls.
|
|
54
|
+
#
|
|
55
|
+
# If optional param +:site+ is passed, it must be either +:prod+
|
|
56
|
+
# or +:stage+, and MySpace OAuth calls will be directed to either
|
|
57
|
+
# the production or stage API server accordingly.
|
|
58
|
+
def initialize(oauth_token_key, oauth_token_secret, params = {})
|
|
59
|
+
@http_logger = params[:logger]
|
|
60
|
+
site = params[:site] || :prod
|
|
61
|
+
@consumer = ::OAuth::Consumer.new(oauth_token_key,
|
|
62
|
+
oauth_token_secret,
|
|
63
|
+
:scheme => :query_string,
|
|
64
|
+
:http_method => :get,
|
|
65
|
+
:site => OAUTH_SITES[site],
|
|
66
|
+
:request_token_path => OAUTH_REQUEST_TOKEN_URL,
|
|
67
|
+
:access_token_path => OAUTH_ACCESS_TOKEN_URL,
|
|
68
|
+
:authorize_path => OAUTH_AUTHORIZATION_URL)
|
|
69
|
+
|
|
70
|
+
if params[:application_type] == APPLICATION_TYPE_ONSITE
|
|
71
|
+
@access_token = ::OAuth::AccessToken.new(@consumer, "", "")
|
|
72
|
+
elsif params[:access_token]
|
|
73
|
+
@access_token = ::OAuth::AccessToken.new(@consumer,
|
|
74
|
+
params[:access_token],
|
|
75
|
+
params[:access_token_secret])
|
|
76
|
+
end
|
|
77
|
+
if params[:request_token]
|
|
78
|
+
@request_token = ::OAuth::RequestToken.new(@consumer,
|
|
79
|
+
params[:request_token],
|
|
80
|
+
params[:request_token_secret])
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Get an unauthorized request token from MySpace.
|
|
85
|
+
def get_request_token
|
|
86
|
+
@consumer.get_request_token
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Get the url to which to redirect the user in order to authorize
|
|
90
|
+
# our access to their account. This url will redirect back to
|
|
91
|
+
# +callback_url+ once the user authorizes us.
|
|
92
|
+
def get_authorization_url(request_token, callback_url)
|
|
93
|
+
"#{request_token.authorize_url}&oauth_callback=#{CGI::escape(callback_url)}"
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Get an access token once the user has authorized us.
|
|
97
|
+
def get_access_token(request_token = @request_token)
|
|
98
|
+
# response = @consumer.token_request(@consumer.http_method,
|
|
99
|
+
# (@consumer.access_token_url? ? @consumer.access_token_url : @consumer.access_token_path),
|
|
100
|
+
# request_token,
|
|
101
|
+
# {},
|
|
102
|
+
# headers)
|
|
103
|
+
|
|
104
|
+
# @access_token = ::OAuth::AccessToken.new(@consumer, response[:oauth_token], response[:oauth_token_secret])
|
|
105
|
+
@access_token = request_token.get_access_token
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Get the user id of the currently logged in user.
|
|
109
|
+
def get_userid()
|
|
110
|
+
user_info = call_myspace_api_json(API_USERINFO_URL)
|
|
111
|
+
user_info['userId'].to_s
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Get the photo album descriptions for the user +user_id+:
|
|
115
|
+
#
|
|
116
|
+
# {"albums"=>
|
|
117
|
+
# [{"photosUri"=>
|
|
118
|
+
# "http://api.myspace.com/v1/users/456073223/albums/40418/photos",
|
|
119
|
+
# "photoCount"=>1,
|
|
120
|
+
# "location"=>"",
|
|
121
|
+
# "title"=>"My Photos",
|
|
122
|
+
# "id"=>40418,
|
|
123
|
+
# "defaultImage"=>
|
|
124
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/m_f820313641924f0f90004932c8bc310c.jpg",
|
|
125
|
+
# "privacy"=>"Everyone",
|
|
126
|
+
# "user"=>
|
|
127
|
+
# {"name"=>"Bob",
|
|
128
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
129
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
130
|
+
# "largeImage"=>
|
|
131
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
132
|
+
# "userType"=>"RegularUser",
|
|
133
|
+
# "userId"=>456073223,
|
|
134
|
+
# "image"=>
|
|
135
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"},
|
|
136
|
+
# "albumUri"=>"http://api.myspace.com/v1/users/456073223/albums/40418"}],
|
|
137
|
+
# "count"=>1,
|
|
138
|
+
# "user"=>
|
|
139
|
+
# {"name"=>"Bob",
|
|
140
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
141
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
142
|
+
# "largeImage"=>
|
|
143
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
144
|
+
# "userType"=>"RegularUser",
|
|
145
|
+
# "userId"=>456073223,
|
|
146
|
+
# "image"=>
|
|
147
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
148
|
+
def get_albums(user_id, params = {})
|
|
149
|
+
user_id = user_id.to_s
|
|
150
|
+
validate_identifier(:user_id, user_id)
|
|
151
|
+
url = sprintf(API_ALBUMS_URL, user_id)
|
|
152
|
+
call_myspace_api_json(url, :get, params)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Get the photo descriptions for the photos of album +album_id+
|
|
156
|
+
# for the user +user_id+:
|
|
157
|
+
#
|
|
158
|
+
# {"photos"=>
|
|
159
|
+
# [{"smallImageUri"=>
|
|
160
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg",
|
|
161
|
+
# "photoUri"=>
|
|
162
|
+
# "http://api.myspace.com/v1/users/456073223/albums/40418/photos/100809",
|
|
163
|
+
# "id"=>100809,
|
|
164
|
+
# "uploadDate"=>"2/27/2009 10:14:12 AM",
|
|
165
|
+
# "caption"=>"",
|
|
166
|
+
# "lastUpdatedDate"=>"",
|
|
167
|
+
# "imageUri"=>
|
|
168
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
169
|
+
# "user"=>
|
|
170
|
+
# {"name"=>"Bob",
|
|
171
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
172
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
173
|
+
# "largeImage"=>
|
|
174
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
175
|
+
# "userType"=>"RegularUser",
|
|
176
|
+
# "userId"=>456073223,
|
|
177
|
+
# "image"=>
|
|
178
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}],
|
|
179
|
+
# "count"=>1,
|
|
180
|
+
# "user"=>
|
|
181
|
+
# {"name"=>"Bob",
|
|
182
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
183
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
184
|
+
# "largeImage"=>
|
|
185
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
186
|
+
# "userType"=>"RegularUser",
|
|
187
|
+
# "userId"=>456073223,
|
|
188
|
+
# "image"=>
|
|
189
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
190
|
+
def get_album(user_id, album_id)
|
|
191
|
+
user_id = user_id.to_s
|
|
192
|
+
validate_identifier(:user_id, user_id)
|
|
193
|
+
album_id = album_id.to_s
|
|
194
|
+
validate_identifier(:album_id, album_id)
|
|
195
|
+
url = sprintf(API_ALBUM_URL, user_id, album_id)
|
|
196
|
+
call_myspace_api_json(url)
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# Gets the list of friends for the user +user_id+:
|
|
200
|
+
#
|
|
201
|
+
# {"topFriends"=>"http://api.myspace.com/v1/users/456073223/friends?list=top",
|
|
202
|
+
# "Friends"=>
|
|
203
|
+
# [{"name"=>"Tom",
|
|
204
|
+
# "uri"=>"http://api.myspace.com/v1/users/6221",
|
|
205
|
+
# "webUri"=>"http://www.myspace.com/tom",
|
|
206
|
+
# "largeImage"=>"http://b2.ac-images.myspacecdn.com/00000/20/52/2502_l.jpg",
|
|
207
|
+
# "userType"=>"RegularUser",
|
|
208
|
+
# "userId"=>6221,
|
|
209
|
+
# "image"=>"http://b2.ac-images.myspacecdn.com/00000/20/52/2502_s.jpg"}],
|
|
210
|
+
# "count"=>1,
|
|
211
|
+
# "user"=>
|
|
212
|
+
# {"name"=>"Bob",
|
|
213
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
214
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
215
|
+
# "largeImage"=>
|
|
216
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
217
|
+
# "userType"=>"RegularUser",
|
|
218
|
+
# "userId"=>456073223,
|
|
219
|
+
# "image"=>
|
|
220
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
221
|
+
def get_friends(user_id, params = {})
|
|
222
|
+
user_id = user_id.to_s
|
|
223
|
+
validate_identifier(:user_id, user_id)
|
|
224
|
+
url = sprintf(API_FRIENDS_URL, user_id)
|
|
225
|
+
call_myspace_api_json(url, :get, params)
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# Tests whether user +user_id+ is friends with one or more other users:
|
|
229
|
+
#
|
|
230
|
+
# {"friendship"=>
|
|
231
|
+
# [{"areFriends"=>true, "friendId"=>6221},
|
|
232
|
+
# {"areFriends"=>false, "friendId"=>12341234},
|
|
233
|
+
# {"areFriends"=>true, "friendId"=>456073223}],
|
|
234
|
+
# "user"=>
|
|
235
|
+
# {"name"=>"Bob",
|
|
236
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
237
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
238
|
+
# "largeImage"=>
|
|
239
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
240
|
+
# "userType"=>"RegularUser",
|
|
241
|
+
# "userId"=>456073223,
|
|
242
|
+
# "image"=>
|
|
243
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
244
|
+
def get_friendship(user_id, *friend_ids)
|
|
245
|
+
user_id = user_id.to_s
|
|
246
|
+
validate_identifier(:user_id, user_id)
|
|
247
|
+
friend_ids.each do |friend_id|
|
|
248
|
+
friend_id = friend_id.to_s
|
|
249
|
+
validate_identifier(:friend_ids, friend_id)
|
|
250
|
+
end
|
|
251
|
+
url = sprintf(API_FRIENDSHIP_URL, user_id, friend_ids.join(';'))
|
|
252
|
+
call_myspace_api_json(url)
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
# Gets the mood of user +user_id+:
|
|
256
|
+
#
|
|
257
|
+
# {"mood"=>"tested",
|
|
258
|
+
# "moodImageUrl"=>
|
|
259
|
+
# "http://x.myspacecdn.com/images/blog/moods/iBrads/indescribable.gif",
|
|
260
|
+
# "moodLastUpdated"=>"2/27/2009 10:19:25 AM",
|
|
261
|
+
# "user"=>
|
|
262
|
+
# {"name"=>"Bob",
|
|
263
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
264
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
265
|
+
# "largeImage"=>
|
|
266
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
267
|
+
# "userType"=>"RegularUser",
|
|
268
|
+
# "userId"=>456073223,
|
|
269
|
+
# "image"=>
|
|
270
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
271
|
+
def get_mood(user_id)
|
|
272
|
+
user_id = user_id.to_s
|
|
273
|
+
validate_identifier(:user_id, user_id)
|
|
274
|
+
url = sprintf(API_MOOD_URL, user_id)
|
|
275
|
+
call_myspace_api_json(url)
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
# Gets the photo descriptions for the photos that belong to user +user_id+:
|
|
279
|
+
#
|
|
280
|
+
# {"photos"=>
|
|
281
|
+
# [{"smallImageUri"=>
|
|
282
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg",
|
|
283
|
+
# "photoUri"=>"http://api.myspace.com/v1/users/456073223/photos/100809",
|
|
284
|
+
# "id"=>100809,
|
|
285
|
+
# "uploadDate"=>"2/27/2009 10:14:12 AM",
|
|
286
|
+
# "caption"=>"",
|
|
287
|
+
# "lastUpdatedDate"=>"",
|
|
288
|
+
# "imageUri"=>
|
|
289
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
290
|
+
# "user"=>
|
|
291
|
+
# {"name"=>"Bob",
|
|
292
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
293
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
294
|
+
# "largeImage"=>
|
|
295
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
296
|
+
# "userType"=>"RegularUser",
|
|
297
|
+
# "userId"=>456073223,
|
|
298
|
+
# "image"=>
|
|
299
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}],
|
|
300
|
+
# "count"=>1,
|
|
301
|
+
# "user"=>
|
|
302
|
+
# {"name"=>"Bob",
|
|
303
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
304
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
305
|
+
# "largeImage"=>
|
|
306
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
307
|
+
# "userType"=>"RegularUser",
|
|
308
|
+
# "userId"=>456073223,
|
|
309
|
+
# "image"=>
|
|
310
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
311
|
+
def get_photos(user_id, params = {})
|
|
312
|
+
user_id = user_id.to_s
|
|
313
|
+
validate_identifier(:user_id, user_id)
|
|
314
|
+
url = sprintf(API_PHOTOS_URL, user_id)
|
|
315
|
+
call_myspace_api_json(url, :get, params)
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
# Gets the photo description for photo +photo_id+ for user +user_id+:
|
|
319
|
+
#
|
|
320
|
+
# {"smallImageUri"=>
|
|
321
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg",
|
|
322
|
+
# "photoUri"=>"http://api.myspace.com/v1/users/456073223/photos/100809",
|
|
323
|
+
# "id"=>100809,
|
|
324
|
+
# "uploadDate"=>"2/27/2009 10:14:12 AM",
|
|
325
|
+
# "caption"=>"",
|
|
326
|
+
# "lastUpdatedDate"=>"",
|
|
327
|
+
# "imageUri"=>
|
|
328
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
329
|
+
# "user"=>
|
|
330
|
+
# {"name"=>"Bob",
|
|
331
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
332
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
333
|
+
# "largeImage"=>
|
|
334
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
335
|
+
# "userType"=>"RegularUser",
|
|
336
|
+
# "userId"=>456073223,
|
|
337
|
+
# "image"=>
|
|
338
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
339
|
+
def get_photo(user_id, photo_id)
|
|
340
|
+
user_id = user_id.to_s
|
|
341
|
+
validate_identifier(:user_id, user_id)
|
|
342
|
+
photo_id = photo_id.to_s
|
|
343
|
+
validate_identifier(:photo_id, photo_id)
|
|
344
|
+
url = sprintf(API_PHOTO_URL, user_id, photo_id)
|
|
345
|
+
call_myspace_api_json(url)
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
# Gets the profile info for user +user_id+:
|
|
349
|
+
#
|
|
350
|
+
# {"region"=>"California",
|
|
351
|
+
# "city"=>"BEVERLY HILLS",
|
|
352
|
+
# "country"=>"US",
|
|
353
|
+
# "postalcode"=>"90210",
|
|
354
|
+
# "gender"=>"Male",
|
|
355
|
+
# "type"=>"full",
|
|
356
|
+
# "culture"=>"en-US",
|
|
357
|
+
# "aboutme"=>"",
|
|
358
|
+
# "hometown"=>"",
|
|
359
|
+
# "basicprofile"=>
|
|
360
|
+
# {"name"=>"Bob",
|
|
361
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
362
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
363
|
+
# "largeImage"=>
|
|
364
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
365
|
+
# "userId"=>456073223,
|
|
366
|
+
# "lastUpdatedDate"=>"2/27/2009 10:20:02 AM",
|
|
367
|
+
# "image"=>
|
|
368
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"},
|
|
369
|
+
# "age"=>88,
|
|
370
|
+
# "maritalstatus"=>"Single"}
|
|
371
|
+
def get_profile(user_id, params = {})
|
|
372
|
+
user_id = user_id.to_s
|
|
373
|
+
validate_identifier(:user_id, user_id)
|
|
374
|
+
url = sprintf(API_PROFILE_URL, user_id)
|
|
375
|
+
call_myspace_api_json(url, :get, params)
|
|
376
|
+
end
|
|
377
|
+
|
|
378
|
+
# Gets the status of user +user_id+:
|
|
379
|
+
#
|
|
380
|
+
# {"mood"=>"tested",
|
|
381
|
+
# "moodImageUrl"=>
|
|
382
|
+
# "http://x.myspacecdn.com/images/blog/moods/iBrads/indescribable.gif",
|
|
383
|
+
# "moodLastUpdated"=>"2/27/2009 10:19:25 AM",
|
|
384
|
+
# "user"=>
|
|
385
|
+
# {"name"=>"Bob",
|
|
386
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
387
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
388
|
+
# "largeImage"=>
|
|
389
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
390
|
+
# "userType"=>"RegularUser",
|
|
391
|
+
# "userId"=>456073223,
|
|
392
|
+
# "image"=>
|
|
393
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"},
|
|
394
|
+
# "status"=>"Testing"}
|
|
395
|
+
def get_status(user_id)
|
|
396
|
+
user_id = user_id.to_s
|
|
397
|
+
validate_identifier(:user_id, user_id)
|
|
398
|
+
url = sprintf(API_STATUS_URL, user_id)
|
|
399
|
+
call_myspace_api_json(url)
|
|
400
|
+
end
|
|
401
|
+
|
|
402
|
+
# Gets the video descriptions for the videos of user +user_id+:
|
|
403
|
+
#
|
|
404
|
+
# {"videos"=>
|
|
405
|
+
# [{"totalrating"=>"0",
|
|
406
|
+
# "title"=>"110403na",
|
|
407
|
+
# "resourceuserid"=>"456073223",
|
|
408
|
+
# "mediastatus"=>"ProcessingSuccessful",
|
|
409
|
+
# "dateupdated"=>"3/5/2009 11:24:23 AM",
|
|
410
|
+
# "country"=>"US",
|
|
411
|
+
# "totalviews"=>"0",
|
|
412
|
+
# "thumbnail"=>
|
|
413
|
+
# "http://d4.ac-videos.myspacecdn.com/videos02/8/thumb1_1bd4f5fde59540c2981c35b27c15a0f3.jpg",
|
|
414
|
+
# "language"=>"en",
|
|
415
|
+
# "id"=>53551799,
|
|
416
|
+
# "totalcomments"=>"0",
|
|
417
|
+
# "runtime"=>"219",
|
|
418
|
+
# "datecreated"=>"3/5/2009 11:24:23 AM",
|
|
419
|
+
# "privacy"=>"Public",
|
|
420
|
+
# "mediatype"=>"4",
|
|
421
|
+
# "description"=>"110403na",
|
|
422
|
+
# "user"=>
|
|
423
|
+
# {"name"=>"Bob",
|
|
424
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
425
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
426
|
+
# "largeImage"=>
|
|
427
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
428
|
+
# "userType"=>"RegularUser",
|
|
429
|
+
# "userId"=>456073223,
|
|
430
|
+
# "image"=>
|
|
431
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"},
|
|
432
|
+
# "totalvotes"=>"0",
|
|
433
|
+
# "videoUri"=>"http://api.myspace.com/v1/users/456073223/videos/53551799"}],
|
|
434
|
+
# "count"=>1,
|
|
435
|
+
# "user"=>
|
|
436
|
+
# {"name"=>"Bob",
|
|
437
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
438
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
439
|
+
# "largeImage"=>
|
|
440
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
441
|
+
# "userType"=>"RegularUser",
|
|
442
|
+
# "userId"=>456073223,
|
|
443
|
+
# "image"=>
|
|
444
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"}}
|
|
445
|
+
def get_videos(user_id)
|
|
446
|
+
user_id = user_id.to_s
|
|
447
|
+
validate_identifier(:user_id, user_id)
|
|
448
|
+
url = sprintf(API_VIDEOS_URL, user_id)
|
|
449
|
+
call_myspace_api_json(url)
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
# Gets the video description for the video +video_id+ of user +user_id+:
|
|
453
|
+
#
|
|
454
|
+
# {"totalrating"=>"0",
|
|
455
|
+
# "title"=>"110403na",
|
|
456
|
+
# "resourceuserid"=>"456073223",
|
|
457
|
+
# "mediastatus"=>"ProcessingSuccessful",
|
|
458
|
+
# "dateupdated"=>"3/5/2009 11:24:23 AM",
|
|
459
|
+
# "country"=>"US",
|
|
460
|
+
# "totalviews"=>"0",
|
|
461
|
+
# "thumbnail"=>
|
|
462
|
+
# "http://d1.ac-videos.myspacecdn.com/videos02/8/thumb1_461592d881c14023bcb6a73275ebc614.jpg",
|
|
463
|
+
# "language"=>"en",
|
|
464
|
+
# "id"=>53551799,
|
|
465
|
+
# "totalcomments"=>"0",
|
|
466
|
+
# "runtime"=>"219",
|
|
467
|
+
# "datecreated"=>"3/5/2009 11:24:23 AM",
|
|
468
|
+
# "privacy"=>"Public",
|
|
469
|
+
# "mediatype"=>"4",
|
|
470
|
+
# "description"=>"110403na",
|
|
471
|
+
# "user"=>
|
|
472
|
+
# {"name"=>"Bob",
|
|
473
|
+
# "uri"=>"http://api.myspace.com/v1/users/456073223",
|
|
474
|
+
# "webUri"=>"http://www.myspace.com/bobvontestacount",
|
|
475
|
+
# "largeImage"=>
|
|
476
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/l_f820313641924f0f90004932c8bc310c.jpg",
|
|
477
|
+
# "userType"=>"RegularUser",
|
|
478
|
+
# "userId"=>456073223,
|
|
479
|
+
# "image"=>
|
|
480
|
+
# "http://c1.ac-images.myspacecdn.com/images02/45/s_f820313641924f0f90004932c8bc310c.jpg"},
|
|
481
|
+
# "totalvotes"=>"0",
|
|
482
|
+
# "videoUri"=>"http://api.myspace.com/v1/users/456073223/videos/53551799"}
|
|
483
|
+
def get_video(user_id, video_id)
|
|
484
|
+
user_id = user_id.to_s
|
|
485
|
+
validate_identifier(:user_id, user_id)
|
|
486
|
+
video_id = video_id.to_s
|
|
487
|
+
validate_identifier(:video_id, video_id)
|
|
488
|
+
url = sprintf(API_VIDEO_URL, user_id, video_id)
|
|
489
|
+
call_myspace_api_json(url)
|
|
490
|
+
end
|
|
491
|
+
|
|
492
|
+
def get_activities(user_id)
|
|
493
|
+
user_id = user_id.to_s
|
|
494
|
+
validate_identifier(:user_id, user_id)
|
|
495
|
+
url = sprintf(API_ACTIVITIES_URL, user_id)
|
|
496
|
+
call_myspace_api_xml(url)
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
def get_friends_activities(user_id)
|
|
500
|
+
user_id = user_id.to_s
|
|
501
|
+
validate_identifier(:user_id, user_id)
|
|
502
|
+
url = sprintf(API_FRIENDS_ACTIVITIES_URL, user_id)
|
|
503
|
+
call_myspace_api_xml(url)
|
|
504
|
+
end
|
|
505
|
+
|
|
506
|
+
def set_status(user_id, status)
|
|
507
|
+
user_id = user_id.to_s
|
|
508
|
+
validate_identifier(:user_id, user_id)
|
|
509
|
+
url = sprintf(API_STATUS_PUT_URL, user_id)
|
|
510
|
+
call_myspace_api_xml(url, :put, {:body => {:status => status}})
|
|
511
|
+
end
|
|
512
|
+
|
|
513
|
+
def call_myspace_api(url, method = :get, params = {}, &block)
|
|
514
|
+
params = params.dup
|
|
515
|
+
body = params.delete(:body)
|
|
516
|
+
headers = params.delete(:headers)
|
|
517
|
+
query_str = params.collect do |key, value|
|
|
518
|
+
CGI.escape(key.to_s) + '=' + CGI.escape(value.to_s)
|
|
519
|
+
end.join('&')
|
|
520
|
+
|
|
521
|
+
url << '?' + query_str if query_str.length > 0
|
|
522
|
+
|
|
523
|
+
@http_logger.info("sending: '#{url}'") if @http_logger
|
|
524
|
+
resp = @access_token.request(method, url, body, headers)
|
|
525
|
+
@http_logger.info("received: '#{resp.code}': '#{resp.body}'") if @http_logger
|
|
526
|
+
|
|
527
|
+
validate_response(resp, url)
|
|
528
|
+
yield(resp.body)
|
|
529
|
+
end
|
|
530
|
+
|
|
531
|
+
def call_myspace_api_json(url, method = :get, params = {})
|
|
532
|
+
call_myspace_api(url, method, params) do |body|
|
|
533
|
+
JSON::parse(body)
|
|
534
|
+
end
|
|
535
|
+
end
|
|
536
|
+
|
|
537
|
+
def call_myspace_api_xml(url, method = :get, params = {})
|
|
538
|
+
call_myspace_api(url, method, params) do |body|
|
|
539
|
+
REXML::Document.new(body)
|
|
540
|
+
end
|
|
541
|
+
end
|
|
542
|
+
|
|
543
|
+
protected
|
|
544
|
+
|
|
545
|
+
ID_REGEXP = /[0-9]+/ unless const_defined?('ID_REGEXP')
|
|
546
|
+
|
|
547
|
+
def validate_identifier(parameter, identifier)
|
|
548
|
+
raise BadIdentifier.new(parameter, identifier) unless identifier && identifier =~ ID_REGEXP
|
|
549
|
+
end
|
|
550
|
+
|
|
551
|
+
def validate_response(response, url)
|
|
552
|
+
code = response.code
|
|
553
|
+
case code
|
|
554
|
+
when '200'
|
|
555
|
+
return
|
|
556
|
+
when '201'
|
|
557
|
+
return
|
|
558
|
+
when '401'
|
|
559
|
+
raise PermissionDenied.new(code, response.message, url)
|
|
560
|
+
else
|
|
561
|
+
raise RestException.new(code, response.message, url) unless ['200', '201'].include?(code)
|
|
562
|
+
end
|
|
563
|
+
end
|
|
564
|
+
end
|
|
565
|
+
end
|