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 CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ *.DS_Store
data/Rakefile CHANGED
@@ -1 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs.push "lib"
6
+ t.test_files = FileList['test/test_*.rb']
7
+ t.verbose = true
8
+ end
@@ -1,5 +1,5 @@
1
1
  module PRX
2
2
  module Client
3
- VERSION = "0.1.3"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
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, :client_options, :access_token_options
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
- client_options[:multipart] = true
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 client_options; @client_options ||= {}; end
24
- def access_token_options; @access_token_options ||= {}; end
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 create_url(path)
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
- def access_token
45
- OAuth2::AccessToken.new(client, token, access_token_options.clone)
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
- {'Accept' => 'application/json'}
58
+ {
59
+ 'Accept' => 'application/json',
60
+ 'Content-Type' => 'application/json'
61
+ }
54
62
  end
55
63
 
56
64
  end
@@ -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 :id, :name, :path, :type_name
12
+ attr_accessor :name, :path, :type_name
10
13
 
11
14
  end
12
15
  end
@@ -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 :id, :label, :content_type, :size, :status, :length
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 :id,:label,:content_advisory,:timing_and_cues,:transcript,:news_hole_break,:floating_break,:bottom_of_hour_break,:twenty_forty_break,:audio_files
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
@@ -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
- include Roar::Representer::JSON
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
@@ -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 :id, :website_usage, :allow_edit, :additional_terms
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']
@@ -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 PRX::Representer::Full::AccountRepresenter
9
+ include Roar::Representer::JSON
10
+ include PRX::Representer::Full::NetworkRepresenter
8
11
 
9
- attr_accessor :id, :name, :path
12
+ attr_accessor :name, :path
10
13
 
11
14
  end
12
15
  end
@@ -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 :id, :title, :short_description, :description, :account_id, :published_at, :created_at, :produced_on
10
- attr_accessor :episode_number, :length, :language, :related_website, :credits, :broadcast_history, :intro, :outro
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
@@ -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 :id, :name, :email, :user
12
+ attr_accessor :name, :email, :user
10
13
 
11
14
  end
12
15
  end
@@ -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 :id, :title
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
@@ -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 :id, :login, :email, :first_name, :last_name
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
- include Roar::Representer::JSON
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
@@ -7,8 +7,9 @@ module PRX
7
7
  module Representer
8
8
  module Full
9
9
  module AudioVersionRepresenter
10
- include Roar::Representer::JSON
10
+
11
11
  include Roar::Representer::Feature::Hypermedia
12
+ include Roar::Representer::JSON
12
13
 
13
14
  property :id
14
15
  property :label
@@ -6,8 +6,9 @@ module PRX
6
6
  module Representer
7
7
  module Full
8
8
  module LicenseRepresenter
9
- include Roar::Representer::JSON
9
+
10
10
  include Roar::Representer::Feature::Hypermedia
11
+ include Roar::Representer::JSON
11
12
 
12
13
  property :id
13
14
  property :website_usage
@@ -7,8 +7,8 @@ module PRX
7
7
  module Full
8
8
  module NetworkRepresenter
9
9
 
10
- include Roar::Representer::JSON
11
10
  include Roar::Representer::Feature::Hypermedia
11
+ include Roar::Representer::JSON
12
12
 
13
13
  property :id
14
14
  property :name
@@ -15,8 +15,9 @@ module PRX
15
15
  module Representer
16
16
  module Full
17
17
  module PieceRepresenter
18
- include Roar::Representer::JSON
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
@@ -8,8 +8,9 @@ module PRX
8
8
  module Representer
9
9
  module Full
10
10
  module ProducerRepresenter
11
- include Roar::Representer::JSON
11
+
12
12
  include Roar::Representer::Feature::Hypermedia
13
+ include Roar::Representer::JSON
13
14
 
14
15
  property :id
15
16
  property :name
@@ -7,8 +7,8 @@ module PRX
7
7
  module Full
8
8
  module SeriesRepresenter
9
9
 
10
- include Roar::Representer::JSON
11
10
  include Roar::Representer::Feature::Hypermedia
11
+ include Roar::Representer::JSON
12
12
 
13
13
  property :id
14
14
  property :title
@@ -7,8 +7,8 @@ module PRX
7
7
  module Full
8
8
  module UserRepresenter
9
9
 
10
- include Roar::Representer::JSON
11
10
  include Roar::Representer::Feature::Hypermedia
11
+ include Roar::Representer::JSON
12
12
 
13
13
  property :id
14
14
  property :login
@@ -7,7 +7,7 @@ module PRX
7
7
  module Min
8
8
  module AccountRepresenter
9
9
  include Roar::Representer::JSON
10
- include Roar::Representer::Feature::Hypermedia
10
+ # include Roar::Representer::Feature::Hypermedia
11
11
 
12
12
  property :id
13
13
  property :name
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://labs.prx.org"
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 "roar", "~> 0.9.1"
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
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
@@ -1,7 +1,7 @@
1
- load './helper.rb'
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::TestAccount < Test::Unit::TestCase
7
7
 
@@ -1,4 +1,4 @@
1
- load './helper.rb'
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=>'/Users/akuklewicz/test.mp2')
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
 
@@ -1,7 +1,7 @@
1
- load './helper.rb'
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::TestAudioVersion < Test::Unit::TestCase
7
7
 
data/test/test_client.rb CHANGED
@@ -1,61 +1,61 @@
1
- load './helper.rb'
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
- PRX::Client.key = 'bZG3A36fAVa9UTD3TlUN2L17Q2loTAN3G9tyOfVF'
11
- PRX::Client.secret = 'rGrSNofeaJCbfDjJtYMFAQSfUIQhtr1vkNnaZQvf'
12
- PRX::Client.host = "development.prx.org"
13
- PRX::Client.port = 3001
14
- PRX::Client.version = 'v2'
15
- PRX::Client.token = 'Kq4FhSK3arQ7jZ9xhiVAbDKw30mvXv4C8sl2CzCV'
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)
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
- FakeWeb.register_uri(:post, "http://development.prx.org:3001/api/v2/pieces", :body=>{}.to_json)
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::Client.me
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
- 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')])
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
- 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
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
@@ -1,7 +1,7 @@
1
- load './helper.rb'
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::TestLicense < Test::Unit::TestCase
7
7
 
data/test/test_network.rb CHANGED
@@ -1,7 +1,7 @@
1
- load './helper.rb'
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::TestNetwork < Test::Unit::TestCase
7
7
 
data/test/test_piece.rb CHANGED
@@ -1,7 +1,7 @@
1
- load './helper.rb'
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 test_piece_create_with_local_file
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=>'/Users/akuklewicz/test.mp2', :content_type=>'audio/mpeg')
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 test_piece_create_with_remote_url
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
- load './helper.rb'
2
- require 'prx/client'
3
- require 'prx/model'
4
- require 'net/http'
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
@@ -1,7 +1,7 @@
1
- load './helper.rb'
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::TestUser < Test::Unit::TestCase
7
7
 
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.1.3
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: 2012-08-08 00:00:00.000000000 Z
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.9.1
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.9.1
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://labs.prx.org
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: -1343733480629456016
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: -1343733480629456016
279
+ hash: -289814948412368014
231
280
  requirements: []
232
281
  rubyforge_project:
233
- rubygems_version: 1.8.22
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