prx_client 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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