Class: ElibriWatermarking::Client
- Inherits:
-
Object
- Object
- ElibriWatermarking::Client
- Defined in:
- lib/elibri_watermarking/client.rb
Instance Attribute Summary collapse
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#secret ⇒ Object
Returns the value of attribute secret.
-
#servers ⇒ Object
Returns the value of attribute servers.
-
#token ⇒ Object
Returns the value of attribute token.
Instance Method Summary collapse
- #available_files ⇒ Object
- #check_api ⇒ Object
- #check_suppliers(ident) ⇒ Object
- #deliver(trans_id, low_priority = false) ⇒ Object
- #get_supplier(id) ⇒ Object
-
#initialize(token, secret, servers = nil) ⇒ Client
constructor
A new instance of Client.
- #new_complaint(trans_id, reason) ⇒ Object
- #retry(trans_id, delivery_form = nil, low_priority = false) ⇒ Object
- #soon_available_files ⇒ Object
- #soon_unavailable_files ⇒ Object
- #watermark(ident, formats, visible_watermark, title_postfix, customer_ip, client_symbol = nil, supplier = nil, delivery_form = nil, price = nil, promotion_id = nil, low_priority = false) ⇒ Object
Constructor Details
#initialize(token, secret, servers = nil) ⇒ Client
Returns a new instance of Client.
16 17 18 19 20 |
# File 'lib/elibri_watermarking/client.rb', line 16 def initialize(token, secret, servers = nil) self.token = token self.secret = secret self.servers = servers end |
Instance Attribute Details
#logger ⇒ Object
Returns the value of attribute logger.
14 15 16 |
# File 'lib/elibri_watermarking/client.rb', line 14 def logger @logger end |
#secret ⇒ Object
Returns the value of attribute secret.
14 15 16 |
# File 'lib/elibri_watermarking/client.rb', line 14 def secret @secret end |
#servers ⇒ Object
Returns the value of attribute servers.
14 15 16 |
# File 'lib/elibri_watermarking/client.rb', line 14 def servers @servers end |
#token ⇒ Object
Returns the value of attribute token.
14 15 16 |
# File 'lib/elibri_watermarking/client.rb', line 14 def token @token end |
Instance Method Details
#available_files ⇒ Object
62 63 64 65 66 |
# File 'lib/elibri_watermarking/client.rb', line 62 def available_files try_with_different_servers('available_files.json') do |uri| return JSON.parse(get_response_from_server(uri, {}, Net::HTTP::Get)) end end |
#check_api ⇒ Object
92 93 94 95 96 |
# File 'lib/elibri_watermarking/client.rb', line 92 def check_api try_with_different_servers('ver') do |uri| return get_response_from_server(uri, {}, Net::HTTP::Get) end end |
#check_suppliers(ident) ⇒ Object
80 81 82 83 84 85 |
# File 'lib/elibri_watermarking/client.rb', line 80 def check_suppliers(ident) ident =~ /^[0-9]+$/ ? ident_type = 'isbn' : ident_type = 'record_reference' try_with_different_servers('check_suppliers') do |uri| return get_response_from_server(uri, { ident_type => ident}, Net::HTTP::Get).split(",").map { |x| x.to_i } end end |
#deliver(trans_id, low_priority = false) ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/elibri_watermarking/client.rb', line 46 def deliver(trans_id, low_priority = false) try_with_different_servers('deliver') do |uri| data = {'trans_id' => trans_id} data.merge!(:low_priority => low_priority) if low_priority return get_response_from_server(uri, data, Net::HTTP::Post) end end |
#get_supplier(id) ⇒ Object
87 88 89 90 |
# File 'lib/elibri_watermarking/client.rb', line 87 def get_supplier(id) get_response_from_server(URI('https://www.elibri.com.pl/watermarking/get_supplier'), {:id => id}, Net::HTTP::Get) #to chyba moze byc tylko z glownego serwera? end |
#new_complaint(trans_id, reason) ⇒ Object
98 99 100 |
# File 'lib/elibri_watermarking/client.rb', line 98 def new_complaint(trans_id, reason) get_response_from_server(URI('https://www.elibri.com.pl/api_complaints'), {:trans_id => trans_id, :reason => reason}, Net::HTTP::Post) end |
#retry(trans_id, delivery_form = nil, low_priority = false) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/elibri_watermarking/client.rb', line 54 def retry(trans_id, delivery_form = nil, low_priority = false) try_with_different_servers('retry') do |uri| data = {'trans_id' => trans_id, 'delivery_form' => delivery_form} data.merge!(:low_priority => low_priority) if low_priority return get_response_from_server(uri, data, Net::HTTP::Post) end end |
#soon_available_files ⇒ Object
68 69 70 71 72 |
# File 'lib/elibri_watermarking/client.rb', line 68 def soon_available_files try_with_different_servers('soon_available_files.json') do |uri| return JSON.parse(get_response_from_server(uri, {}, Net::HTTP::Get)) end end |
#soon_unavailable_files ⇒ Object
74 75 76 77 78 |
# File 'lib/elibri_watermarking/client.rb', line 74 def soon_unavailable_files try_with_different_servers('soon_unavailable_files.json') do |uri| return JSON.parse(get_response_from_server(uri, {}, Net::HTTP::Get)) end end |
#watermark(ident, formats, visible_watermark, title_postfix, customer_ip, client_symbol = nil, supplier = nil, delivery_form = nil, price = nil, promotion_id = nil, low_priority = false) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/elibri_watermarking/client.rb', line 22 def watermark(ident, formats, visible_watermark, title_postfix, customer_ip, client_symbol = nil, supplier = nil, delivery_form = nil, price = nil, promotion_id = nil, low_priority = false) if ident =~ /^[0-9]+$/ && ident.size == 13 ident_type = 'isbn' else ident_type = 'record_reference' end raise WrongFormats.new if formats.is_a?(String) && !formats =~ /^(epub|mobi|pdf|mp3_in_zip|,)+$/ raise WrongFormats.new if formats.is_a?(Array) && ((formats - ['epub','mobi','pdf','mp3_in_zip']) != [] || (formats & ['epub','mobi','pdf','mp3_in_zip']).count < 1) formats = formats.join(",") if formats.is_a?(Array) raise ParametersError.new if delivery_form && formats != 'mp3_in_zip' raise ParametersError.new if delivery_form && (delivery_form != 'mp3' && delivery_form != 'zip') data = {ident_type => ident, 'formats' => formats, 'visible_watermark' => visible_watermark, 'title_postfix' => title_postfix, 'client_symbol' => client_symbol, 'delivery_form' => delivery_form} data.merge!(:supplier => supplier) if supplier data.merge!(:customer_ip => customer_ip) if customer_ip data.merge!(:price => price) if price data.merge!(:promotion_id => promotion_id) if promotion_id data.merge!(:low_priority => low_priority) if low_priority try_with_different_servers('watermark') do |uri| return get_response_from_server(uri, data, Net::HTTP::Post) end end |