prx_client 0.1.3 → 0.2.0
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/.gitignore +1 -0
- data/Rakefile +7 -0
- data/lib/prx/client/version.rb +1 -1
- data/lib/prx/client.rb +30 -22
- data/lib/prx/model/account.rb +4 -1
- data/lib/prx/model/audio_file.rb +4 -1
- data/lib/prx/model/audio_version.rb +4 -1
- data/lib/prx/model/base.rb +28 -5
- data/lib/prx/model/license.rb +4 -1
- data/lib/prx/model/network.rb +5 -2
- data/lib/prx/model/piece.rb +6 -2
- data/lib/prx/model/producer.rb +4 -1
- data/lib/prx/model/series.rb +12 -1
- data/lib/prx/model/user.rb +8 -1
- data/lib/prx/representer/full/account_representer.rb +1 -2
- data/lib/prx/representer/full/audio_file_representer.rb +3 -1
- data/lib/prx/representer/full/audio_version_representer.rb +2 -1
- data/lib/prx/representer/full/license_representer.rb +2 -1
- data/lib/prx/representer/full/network_representer.rb +1 -1
- data/lib/prx/representer/full/piece_representer.rb +4 -1
- data/lib/prx/representer/full/producer_representer.rb +2 -1
- data/lib/prx/representer/full/series_representer.rb +1 -1
- data/lib/prx/representer/full/user_representer.rb +1 -1
- data/lib/prx/representer/min/account_representer.rb +1 -1
- data/prx_client.gemspec +8 -4
- data/test/files/test.mp2 +0 -0
- data/test/helper.rb +9 -0
- data/test/test_account.rb +2 -2
- data/test/test_audio_file.rb +2 -2
- data/test/test_audio_version.rb +2 -2
- data/test/test_client.rb +45 -45
- data/test/test_license.rb +2 -2
- data/test/test_network.rb +2 -2
- data/test/test_piece.rb +39 -6
- data/test/test_series.rb +9 -4
- data/test/test_user.rb +2 -2
- metadata +59 -9
data/.gitignore
CHANGED
data/Rakefile
CHANGED
data/lib/prx/client/version.rb
CHANGED
data/lib/prx/client.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'prx/model'
|
2
2
|
require 'prx/representer'
|
3
|
+
require 'faraday'
|
4
|
+
require 'faraday_middleware'
|
3
5
|
|
4
6
|
module PRX
|
5
7
|
module Client
|
@@ -8,41 +10,44 @@ module PRX
|
|
8
10
|
|
9
11
|
include PRX::Model
|
10
12
|
|
11
|
-
attr_accessor :key, :secret, :scheme, :host, :port, :version, :token
|
12
|
-
|
13
|
-
# get information about the current user
|
14
|
-
def me
|
15
|
-
access_token.get('/me', default_options)
|
16
|
-
end
|
17
|
-
|
13
|
+
attr_accessor :key, :secret, :scheme, :host, :port, :version, :token
|
14
|
+
|
18
15
|
def piece_create(piece)
|
19
|
-
|
20
|
-
access_token.post(create_url('pieces'), :body=>{:piece=>piece.as_json}, 'Content-Type' => 'application/json')
|
16
|
+
access_token.post(create_url('pieces'), :body=>{:piece=>piece.as_json})
|
21
17
|
end
|
22
|
-
|
23
|
-
def
|
24
|
-
|
25
|
-
|
18
|
+
|
19
|
+
def request(opts={})
|
20
|
+
# puts "PRX::Client::request - opts: #{opts.inspect}"
|
21
|
+
path = opts.delete(:path) || ''
|
22
|
+
action = opts.delete(:action) || :get
|
23
|
+
opts = default_options.merge(opts)
|
24
|
+
|
25
|
+
path = api_path(path) unless path.starts_with?('/')
|
26
|
+
response = access_token.send(action, path, opts)
|
27
|
+
# puts response.inspect
|
28
|
+
response
|
29
|
+
end
|
30
|
+
|
26
31
|
protected
|
27
32
|
|
28
|
-
def
|
33
|
+
def api_path(path)
|
29
34
|
"/api/#{version}/#{path}"
|
30
35
|
end
|
31
36
|
|
37
|
+
def access_token
|
38
|
+
OAuth2::AccessToken.new(client, token, {})
|
39
|
+
end
|
40
|
+
|
32
41
|
def client
|
33
|
-
options = client_options.clone
|
34
|
-
options[:site] = site unless options.has_key?(:site)
|
35
42
|
OAuth2::Client.new(key, secret, {:site=>site}) do |b|
|
36
43
|
b.request :multipart
|
37
44
|
b.request :url_encoded
|
38
45
|
b.request :json
|
46
|
+
|
39
47
|
# b.response :logger
|
40
|
-
b.adapter :net_http
|
41
|
-
end
|
42
|
-
end
|
43
48
|
|
44
|
-
|
45
|
-
|
49
|
+
b.adapter :excon
|
50
|
+
end
|
46
51
|
end
|
47
52
|
|
48
53
|
def site
|
@@ -50,7 +55,10 @@ module PRX
|
|
50
55
|
end
|
51
56
|
|
52
57
|
def default_options
|
53
|
-
{
|
58
|
+
{
|
59
|
+
'Accept' => 'application/json',
|
60
|
+
'Content-Type' => 'application/json'
|
61
|
+
}
|
54
62
|
end
|
55
63
|
|
56
64
|
end
|
data/lib/prx/model/account.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/account_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class Account < PRX::Model::Base
|
6
8
|
|
9
|
+
include Roar::Representer::JSON
|
7
10
|
include PRX::Representer::Full::AccountRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
12
|
+
attr_accessor :name, :path, :type_name
|
10
13
|
|
11
14
|
end
|
12
15
|
end
|
data/lib/prx/model/audio_file.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/audio_file_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class AudioFile < PRX::Model::Base
|
6
8
|
|
9
|
+
include Roar::Representer::JSON
|
7
10
|
include PRX::Representer::Full::AudioFileRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
12
|
+
attr_accessor :label, :content_type, :size, :status, :length, :url
|
10
13
|
attr_reader :attach_file
|
11
14
|
|
12
15
|
def attach_file=(f)
|
@@ -1,12 +1,15 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/audio_version_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class AudioVersion < PRX::Model::Base
|
6
8
|
|
9
|
+
include Roar::Representer::JSON
|
7
10
|
include PRX::Representer::Full::AudioVersionRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
12
|
+
attr_accessor :label,:content_advisory,:timing_and_cues,:transcript,:news_hole_break,:floating_break,:bottom_of_hour_break,:twenty_forty_break,:audio_files
|
10
13
|
|
11
14
|
def initialize(*args)
|
12
15
|
super
|
data/lib/prx/model/base.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
|
-
require 'roar/representer'
|
2
|
-
require 'roar/representer/json'
|
3
|
-
|
4
1
|
module PRX
|
5
2
|
module Model
|
6
3
|
class Base
|
7
4
|
|
8
|
-
|
5
|
+
attr_accessor :id
|
9
6
|
|
10
7
|
def initialize(*args)
|
11
8
|
return unless args
|
@@ -13,7 +10,33 @@ module PRX
|
|
13
10
|
args[0].each{|k,v| self.send("#{k.to_s}=", v)}
|
14
11
|
end
|
15
12
|
end
|
16
|
-
|
13
|
+
|
14
|
+
def find_by_id(id)
|
15
|
+
request(:path => "#{class_path_part}/#{id}")
|
16
|
+
end
|
17
|
+
|
18
|
+
def save
|
19
|
+
opts = {
|
20
|
+
:action => (id ? :put : :post),
|
21
|
+
:path => (id ? "#{class_path_part}/#{id}" : class_path_part),
|
22
|
+
:body => as_json
|
23
|
+
}
|
24
|
+
response = request(opts)
|
25
|
+
self.from_json(response.response.body)
|
26
|
+
end
|
27
|
+
|
28
|
+
def class_path_part
|
29
|
+
self.class.name.demodulize.underscore.pluralize
|
30
|
+
end
|
31
|
+
|
32
|
+
def request(opts)
|
33
|
+
self.class.request(opts)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.request(opts)
|
37
|
+
PRX::Client.request(opts)
|
38
|
+
end
|
39
|
+
|
17
40
|
end
|
18
41
|
end
|
19
42
|
end
|
data/lib/prx/model/license.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/license_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class License < PRX::Model::Base
|
6
8
|
|
9
|
+
include Roar::Representer::JSON
|
7
10
|
include PRX::Representer::Full::LicenseRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
12
|
+
attr_accessor :website_usage, :allow_edit, :additional_terms
|
10
13
|
|
11
14
|
WEBSITE_USAGE = ['as a free MP3 download and stream', 'as a stream only', 'only with permission']
|
12
15
|
ALLOW_EDIT = ['only with permission', 'without further permission', 'never']
|
data/lib/prx/model/network.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/network_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class Network < PRX::Model::Base
|
6
8
|
|
7
|
-
include
|
9
|
+
include Roar::Representer::JSON
|
10
|
+
include PRX::Representer::Full::NetworkRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
12
|
+
attr_accessor :name, :path
|
10
13
|
|
11
14
|
end
|
12
15
|
end
|
data/lib/prx/model/piece.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/piece_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class Piece < PRX::Model::Base
|
6
8
|
|
9
|
+
include Roar::Representer::JSON
|
7
10
|
include PRX::Representer::Full::PieceRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
10
|
-
attr_accessor :episode_number, :
|
12
|
+
attr_accessor :title, :short_description, :description, :account_id, :published_at, :created_at, :produced_on
|
13
|
+
attr_accessor :episode_number, :episode_identifier, :episode_date
|
14
|
+
attr_accessor :length, :language, :related_website, :credits, :broadcast_history, :intro, :outro
|
11
15
|
attr_accessor :allow_comments, :is_shareable, :point_level, :network_only
|
12
16
|
attr_accessor :promos, :license, :audio_versions, :producers, :creator, :account, :series, :networks
|
13
17
|
attr_accessor :publish_on_valid
|
data/lib/prx/model/producer.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/producer_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class Producer < PRX::Model::Base
|
6
8
|
|
9
|
+
include Roar::Representer::JSON
|
7
10
|
include PRX::Representer::Full::ProducerRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
12
|
+
attr_accessor :name, :email, :user
|
10
13
|
|
11
14
|
end
|
12
15
|
end
|
data/lib/prx/model/series.rb
CHANGED
@@ -1,12 +1,23 @@
|
|
1
|
+
require 'prx/model/base'
|
1
2
|
require 'prx/representer/full/series_representer'
|
2
3
|
|
4
|
+
require 'roar/representer/json'
|
5
|
+
|
3
6
|
module PRX
|
4
7
|
module Model
|
5
8
|
class Series < PRX::Model::Base
|
6
9
|
|
10
|
+
include Roar::Representer::JSON
|
7
11
|
include PRX::Representer::Full::SeriesRepresenter
|
8
12
|
|
9
|
-
attr_accessor :
|
13
|
+
attr_accessor :title, :subscribable
|
14
|
+
|
15
|
+
def pieces(refresh=false)
|
16
|
+
@_pieces = nil if refresh
|
17
|
+
opts = {:path=>"series/#{id}/pieces", :action=>:get}
|
18
|
+
@_pieces ||= request(opts)
|
19
|
+
@_pieces
|
20
|
+
end
|
10
21
|
|
11
22
|
end
|
12
23
|
end
|
data/lib/prx/model/user.rb
CHANGED
@@ -1,12 +1,19 @@
|
|
1
|
+
require 'roar/representer/json'
|
2
|
+
require 'prx/model/base'
|
1
3
|
require 'prx/representer/full/user_representer'
|
2
4
|
|
3
5
|
module PRX
|
4
6
|
module Model
|
5
7
|
class User < PRX::Model::Base
|
6
8
|
|
9
|
+
include Roar::Representer::JSON
|
7
10
|
include PRX::Representer::Full::UserRepresenter
|
8
11
|
|
9
|
-
attr_accessor :
|
12
|
+
attr_accessor :login, :email, :first_name, :last_name
|
13
|
+
|
14
|
+
def self.me
|
15
|
+
request(:path=>'/me')
|
16
|
+
end
|
10
17
|
|
11
18
|
end
|
12
19
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'roar/representer'
|
2
1
|
require 'roar/representer/json'
|
3
2
|
require 'roar/representer/feature/hypermedia'
|
4
3
|
|
@@ -7,8 +6,8 @@ module PRX
|
|
7
6
|
module Full
|
8
7
|
module AccountRepresenter
|
9
8
|
|
10
|
-
include Roar::Representer::JSON
|
11
9
|
include Roar::Representer::Feature::Hypermedia
|
10
|
+
include Roar::Representer::JSON
|
12
11
|
|
13
12
|
property :id
|
14
13
|
property :name
|
@@ -6,8 +6,9 @@ module PRX
|
|
6
6
|
module Representer
|
7
7
|
module Full
|
8
8
|
module AudioFileRepresenter
|
9
|
-
|
9
|
+
|
10
10
|
include Roar::Representer::Feature::Hypermedia
|
11
|
+
include Roar::Representer::JSON
|
11
12
|
|
12
13
|
property :id
|
13
14
|
property :label
|
@@ -16,6 +17,7 @@ module PRX
|
|
16
17
|
property :size
|
17
18
|
property :status
|
18
19
|
property :length
|
20
|
+
property :url
|
19
21
|
|
20
22
|
end
|
21
23
|
end
|
@@ -15,8 +15,9 @@ module PRX
|
|
15
15
|
module Representer
|
16
16
|
module Full
|
17
17
|
module PieceRepresenter
|
18
|
-
|
18
|
+
|
19
19
|
include Roar::Representer::Feature::Hypermedia
|
20
|
+
include Roar::Representer::JSON
|
20
21
|
|
21
22
|
property :id
|
22
23
|
property :title
|
@@ -27,6 +28,8 @@ module PRX
|
|
27
28
|
property :created_at
|
28
29
|
property :produced_on
|
29
30
|
property :episode_number
|
31
|
+
property :episode_date
|
32
|
+
property :episode_identifier
|
30
33
|
property :length
|
31
34
|
property :language
|
32
35
|
property :related_website
|
data/prx_client.gemspec
CHANGED
@@ -7,8 +7,9 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = PRX::Client::VERSION
|
8
8
|
s.authors = ["Andrew Kuklewicz"]
|
9
9
|
s.email = ["andrew@prx.org"]
|
10
|
-
s.homepage = "http://
|
11
|
-
s.summary = %q{Client for PRX OAuth2 API (v2)
|
10
|
+
s.homepage = "http://www.prx.org"
|
11
|
+
s.summary = %q{Client for PRX OAuth2 API (v2)}
|
12
|
+
s.description = %q{Client for PRX OAuth2 API (v2)}
|
12
13
|
|
13
14
|
s.files = `git ls-files`.split("\n")
|
14
15
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -20,12 +21,15 @@ Gem::Specification.new do |s|
|
|
20
21
|
s.add_runtime_dependency "i18n"
|
21
22
|
s.add_runtime_dependency "json"
|
22
23
|
s.add_runtime_dependency "activesupport"
|
24
|
+
s.add_runtime_dependency "excon"
|
23
25
|
s.add_runtime_dependency "oauth2"
|
24
|
-
s.add_runtime_dependency
|
26
|
+
s.add_runtime_dependency 'faraday', '~> 0.8.0'
|
27
|
+
s.add_runtime_dependency 'faraday_middleware'
|
28
|
+
s.add_runtime_dependency "roar", "~> 0.11.12"
|
25
29
|
|
26
30
|
# specify any dependencies here; for example:
|
27
31
|
s.add_development_dependency "rake"
|
28
32
|
s.add_development_dependency "test-unit"
|
29
33
|
s.add_development_dependency 'fakeweb'
|
30
|
-
|
34
|
+
|
31
35
|
end
|
data/test/files/test.mp2
ADDED
Binary file
|
data/test/helper.rb
CHANGED
@@ -1,9 +1,18 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'test/unit'
|
3
|
+
require 'net/http'
|
3
4
|
|
4
5
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
6
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
6
7
|
require 'prx_client'
|
8
|
+
require 'prx/client'
|
7
9
|
|
8
10
|
class Test::Unit::TestCase
|
9
11
|
end
|
12
|
+
|
13
|
+
PRX::Client.key = 'WlziaXf34NighkX24LjnE9JgpEmEQkP8nWkBmh9J'
|
14
|
+
PRX::Client.secret = 'iuUWEb3AfS5DQiOVpqH1juAacQ0vr3aIhNGWfIW9'
|
15
|
+
PRX::Client.host = "development.prx.org"
|
16
|
+
PRX::Client.port = 3000
|
17
|
+
PRX::Client.version = 'v2'
|
18
|
+
PRX::Client.token = 'iW7qgZSQq4ryQRks1G57X7B1appJLOWeF4yZz6jn'
|
data/test/test_account.rb
CHANGED
data/test/test_audio_file.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
2
|
require 'prx/client'
|
3
3
|
require 'prx/model'
|
4
4
|
require 'net/http'
|
@@ -17,7 +17,7 @@ class PRX::TestAudioFile < Test::Unit::TestCase
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_prepare_upload
|
20
|
-
af = PRX::Model::AudioFile.new(:attach_file=>
|
20
|
+
af = PRX::Model::AudioFile.new(:attach_file=>"#{File.dirname(__FILE__)}/files/test.mp2")
|
21
21
|
assert af.attach_file.is_a?(Faraday::UploadIO)
|
22
22
|
end
|
23
23
|
|
data/test/test_audio_version.rb
CHANGED
data/test/test_client.rb
CHANGED
@@ -1,61 +1,61 @@
|
|
1
|
-
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
2
3
|
require 'prx/client'
|
3
4
|
require 'prx/model'
|
4
|
-
require 'net/http'
|
5
5
|
require 'fakeweb'
|
6
6
|
|
7
7
|
class PRX::TestClient < Test::Unit::TestCase
|
8
8
|
|
9
|
-
def setup
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
9
|
+
# def setup
|
10
|
+
# PRX::Client.key = 'WlziaXf34NighkX24LjnE9JgpEmEQkP8nWkBmh9J'
|
11
|
+
# PRX::Client.secret = 'iuUWEb3AfS5DQiOVpqH1juAacQ0vr3aIhNGWfIW9'
|
12
|
+
# PRX::Client.host = "development.prx.org"
|
13
|
+
# PRX::Client.port = 3000
|
14
|
+
# PRX::Client.version = 'v2'
|
15
|
+
# PRX::Client.token = 'iW7qgZSQq4ryQRks1G57X7B1appJLOWeF4yZz6jn'
|
16
|
+
|
17
|
+
# user = {
|
18
|
+
# :uid => '1001',
|
19
|
+
# :provider => 'PRX',
|
20
|
+
# :info => {
|
21
|
+
# :id => '1001',
|
22
|
+
# :login => 'test_login',
|
23
|
+
# :email => 'test@prx.org',
|
24
|
+
# :first_name => 'first',
|
25
|
+
# :last_name => 'last'
|
26
|
+
# }
|
27
|
+
# }
|
28
|
+
|
29
|
+
# FakeWeb.register_uri(:get, "http://development.prx.org:3001/me", :body=>user.to_json)
|
30
30
|
|
31
|
-
|
31
|
+
# FakeWeb.register_uri(:post, "http://development.prx.org:3001/api/v2/pieces", :body=>{}.to_json)
|
32
32
|
|
33
|
-
end
|
33
|
+
# end
|
34
34
|
|
35
35
|
# def test_me
|
36
|
-
# response = PRX::
|
36
|
+
# response = PRX::Model::User.me
|
37
37
|
# puts response.parsed.inspect
|
38
38
|
# end
|
39
39
|
|
40
|
-
def test_piece_create_with_local_file
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
# def test_piece_create_with_local_file
|
41
|
+
# p = PRX::Model::Piece.new(:title=>'test title',
|
42
|
+
# :short_description=>'test short description',
|
43
|
+
# :description=>'test description',
|
44
|
+
# :account=>PRX::Model::Account.new(:id=>8),
|
45
|
+
# :producers=>[PRX::Model::Producer.new(:name=>'Producer')])
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_piece_create_with_remote_url
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
47
|
+
# p.add_audio(:label=>'test', :attach_file=>'/Users/akuklewicz/test.mp2', :content_type=>'audio/mpeg')
|
48
|
+
# puts p.inspect
|
49
|
+
# response = PRX::Client.piece_create(p)
|
50
|
+
# puts response.parsed.inspect
|
51
|
+
# end
|
52
|
+
|
53
|
+
# def test_piece_create_with_remote_url
|
54
|
+
# p = PRX::Model::Piece.new(:title=>'test title', :short_description=>'test short description', :description=>'test description', :account_id=>8)
|
55
|
+
# p.add_audio(:label=>'test', :attach_file=>'s3://andrew-s3.prx.org/public/audio_files/118091/Baronowski.mp2')
|
56
|
+
# puts p.inspect
|
57
|
+
# response = PRX::Client.piece_create(p)
|
58
|
+
# puts response.parsed.inspect
|
59
|
+
# end
|
60
60
|
|
61
61
|
end
|
data/test/test_license.rb
CHANGED
data/test/test_network.rb
CHANGED
data/test/test_piece.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
2
3
|
require 'prx/client'
|
3
4
|
require 'prx/model'
|
4
|
-
require 'net/http'
|
5
5
|
|
6
6
|
class PRX::TestPiece < Test::Unit::TestCase
|
7
7
|
|
@@ -18,19 +18,19 @@ class PRX::TestPiece < Test::Unit::TestCase
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_initialize_with_account_object
|
21
|
-
a = PRX::Model::Piece.from_json({:title=>'t', :id=>1, :account=>PRX::Model::Account.new(:id=>2)})
|
21
|
+
a = PRX::Model::Piece.from_json({:title=>'t', :id=>1, :account=>PRX::Model::Account.new(:id=>2)}.to_json)
|
22
22
|
assert a.account.is_a?(PRX::Model::Account)
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
25
|
+
def test_piece_with_local_file
|
26
26
|
p = PRX::Model::Piece.new(:title=>'test title')
|
27
|
-
p.add_audio(:label=>'test', :attach_file=>
|
27
|
+
p.add_audio(:label=>'test', :attach_file=>"#{File.dirname(__FILE__)}/files/test.mp2", :content_type=>'audio/mpeg')
|
28
28
|
af = p.audio_versions[0].audio_files[0]
|
29
29
|
assert af.is_a?(PRX::Model::AudioFile)
|
30
30
|
assert af.attach_file.is_a?(Faraday::UploadIO)
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def test_piece_with_remote_url
|
34
34
|
p = PRX::Model::Piece.new(:title=>'test title')
|
35
35
|
p.add_audio(:label=>'test', :attach_file=>'s3://andrew-s3.prx.org/test/test_short_download.mp3')
|
36
36
|
af = p.audio_versions[0].audio_files[0]
|
@@ -38,4 +38,37 @@ class PRX::TestPiece < Test::Unit::TestCase
|
|
38
38
|
assert af.attach_file.is_a?(String)
|
39
39
|
end
|
40
40
|
|
41
|
+
# def test_piece_create_with_local_file
|
42
|
+
# p = PRX::Model::Piece.new(:title=>'test title')
|
43
|
+
# p.add_audio(:label=>'test', :attach_file=>"#{File.dirname(__FILE__)}/files/test.mp2", :content_type=>'audio/mpeg')
|
44
|
+
# p.save
|
45
|
+
# end
|
46
|
+
|
47
|
+
def test_piece_create
|
48
|
+
prx_remix = { :account_id => 98822,
|
49
|
+
:series_id => 32346,
|
50
|
+
:network_id => 23 }
|
51
|
+
|
52
|
+
piece = PRX::Model::Piece.new(
|
53
|
+
:title => "Remix Select: Episode 12345",
|
54
|
+
:episode_number => 12345,
|
55
|
+
:episode_identifier=> '12345',
|
56
|
+
:short_description => "Episode 12345 of the new Public Radio Remix Select series. Based on Remix 24 episode 54321.",
|
57
|
+
:description => "this is the description, and it is very long",
|
58
|
+
:account => PRX::Model::Account.new(:id=>prx_remix[:account_id]),
|
59
|
+
:series => PRX::Model::Series.new(:id=>prx_remix[:series_id]),
|
60
|
+
:producers => [PRX::Model::Producer.new(:user=>PRX::Model::User.new(:id=>8))],
|
61
|
+
:license => PRX::Model::License.new(:website_usage=>'as a free MP3 download and stream', :allow_edit=>'only with permission'),
|
62
|
+
:networks => [PRX::Model::Network.new(:id=>prx_remix[:network_id])],
|
63
|
+
:network_only => true,
|
64
|
+
:point_level => 0,
|
65
|
+
:publish_on_valid => true
|
66
|
+
)
|
67
|
+
# piece.add_audio(:label=>'audio', :attach_file=>"s3://#{remix_bucket}/#{audio_s3_key}", :size=>1)
|
68
|
+
# puts "\n\npiece before saved: #{piece.to_json}"
|
69
|
+
piece.save
|
70
|
+
assert piece.id && (piece.id > 0)
|
71
|
+
# puts "\n\npiece after saved: #{piece.to_json}"
|
72
|
+
end
|
73
|
+
|
41
74
|
end
|
data/test/test_series.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'prx/
|
4
|
-
require '
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
# require 'prx/client'
|
4
|
+
# require 'prx/model'
|
5
|
+
require 'prx/model/series'
|
5
6
|
|
6
7
|
class PRX::TestSeries < Test::Unit::TestCase
|
7
8
|
|
@@ -17,4 +18,8 @@ class PRX::TestSeries < Test::Unit::TestCase
|
|
17
18
|
assert_equal s.to_hash, {"title"=>"t", "id"=>1}
|
18
19
|
end
|
19
20
|
|
21
|
+
def test_to_json
|
22
|
+
s = PRX::Model::Series.new(:title=>'t', :id=>1)
|
23
|
+
end
|
24
|
+
|
20
25
|
end
|
data/test/test_user.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prx_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-04-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yajl-ruby
|
@@ -75,6 +75,22 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: excon
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
78
94
|
- !ruby/object:Gem::Dependency
|
79
95
|
name: oauth2
|
80
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,6 +107,38 @@ dependencies:
|
|
91
107
|
- - ! '>='
|
92
108
|
- !ruby/object:Gem::Version
|
93
109
|
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: faraday
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.8.0
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.8.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: faraday_middleware
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
94
142
|
- !ruby/object:Gem::Dependency
|
95
143
|
name: roar
|
96
144
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,7 +146,7 @@ dependencies:
|
|
98
146
|
requirements:
|
99
147
|
- - ~>
|
100
148
|
- !ruby/object:Gem::Version
|
101
|
-
version: 0.
|
149
|
+
version: 0.11.12
|
102
150
|
type: :runtime
|
103
151
|
prerelease: false
|
104
152
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,7 +154,7 @@ dependencies:
|
|
106
154
|
requirements:
|
107
155
|
- - ~>
|
108
156
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.
|
157
|
+
version: 0.11.12
|
110
158
|
- !ruby/object:Gem::Dependency
|
111
159
|
name: rake
|
112
160
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,7 +203,7 @@ dependencies:
|
|
155
203
|
- - ! '>='
|
156
204
|
- !ruby/object:Gem::Version
|
157
205
|
version: '0'
|
158
|
-
description:
|
206
|
+
description: Client for PRX OAuth2 API (v2)
|
159
207
|
email:
|
160
208
|
- andrew@prx.org
|
161
209
|
executables: []
|
@@ -194,6 +242,7 @@ files:
|
|
194
242
|
- lib/prx/representer/min/user_representer.rb
|
195
243
|
- lib/prx_client.rb
|
196
244
|
- prx_client.gemspec
|
245
|
+
- test/files/test.mp2
|
197
246
|
- test/helper.rb
|
198
247
|
- test/test_account.rb
|
199
248
|
- test/test_audio_file.rb
|
@@ -204,7 +253,7 @@ files:
|
|
204
253
|
- test/test_piece.rb
|
205
254
|
- test/test_series.rb
|
206
255
|
- test/test_user.rb
|
207
|
-
homepage: http://
|
256
|
+
homepage: http://www.prx.org
|
208
257
|
licenses: []
|
209
258
|
post_install_message:
|
210
259
|
rdoc_options: []
|
@@ -218,7 +267,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
267
|
version: '0'
|
219
268
|
segments:
|
220
269
|
- 0
|
221
|
-
hash: -
|
270
|
+
hash: -289814948412368014
|
222
271
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
223
272
|
none: false
|
224
273
|
requirements:
|
@@ -227,14 +276,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
227
276
|
version: '0'
|
228
277
|
segments:
|
229
278
|
- 0
|
230
|
-
hash: -
|
279
|
+
hash: -289814948412368014
|
231
280
|
requirements: []
|
232
281
|
rubyforge_project:
|
233
|
-
rubygems_version: 1.8.
|
282
|
+
rubygems_version: 1.8.23
|
234
283
|
signing_key:
|
235
284
|
specification_version: 3
|
236
285
|
summary: Client for PRX OAuth2 API (v2)
|
237
286
|
test_files:
|
287
|
+
- test/files/test.mp2
|
238
288
|
- test/helper.rb
|
239
289
|
- test/test_account.rb
|
240
290
|
- test/test_audio_file.rb
|