rev-api 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -5
- data/README.md +7 -6
- data/examples/cli.rb +24 -6
- data/lib/rev-api/api.rb +28 -13
- data/lib/rev-api/exceptions.rb +1 -1
- data/lib/rev-api/models/order_request.rb +16 -16
- data/lib/rev-api/version.rb +1 -1
- data/rev-api.gemspec +1 -1
- data/spec/fixtures/api_cassettes/get_orders_with_clientRef.yml +41 -0
- data/spec/fixtures/api_cassettes/link_input.yml +2 -2
- data/spec/fixtures/api_cassettes/link_input_with_all_attributes.yml +2 -2
- data/spec/lib/rev/get_orders_spec.rb +23 -0
- data/spec/lib/rev/http_client_spec.rb +1 -1
- data/spec/lib/rev/post_inputs_spec.rb +2 -2
- data/spec/tmp_get_attachment_content +0 -0
- metadata +41 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4744540dd0b2d79158797926179f47d92ec0941
|
4
|
+
data.tar.gz: f5fb0b58a5a99cbe9b102a822e4e5cc46d82150e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f084b93b5f0255b1080010ee73c2412af0d5368eea5bbc2cb5676e5aa768d89a97023b8f54c82f4fa96a025c1a531a6202b3a4f4078cd628b849673b999255d
|
7
|
+
data.tar.gz: 69b1dfb44c0b64003328a1ecf7336a2dad3fa1e95c29af332fc5efdad331cd68fd12889949e0d61b28854b1a2f2bfbb2e24328eaefd352d58b8f8cb86cbbf98a
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rev-api (2.0.
|
4
|
+
rev-api (2.0.1)
|
5
5
|
httparty (~> 0.11, >= 0.11.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -17,14 +17,13 @@ GEM
|
|
17
17
|
thor
|
18
18
|
crack (0.4.1)
|
19
19
|
safe_yaml (~> 0.9.0)
|
20
|
-
httparty (0.
|
21
|
-
|
20
|
+
httparty (0.11.0)
|
21
|
+
multi_json (~> 1.0)
|
22
22
|
multi_xml (>= 0.5.2)
|
23
|
-
json (1.8.1)
|
24
23
|
mime-types (1.25)
|
25
24
|
multi_json (1.8.0)
|
26
25
|
multi_xml (0.5.5)
|
27
|
-
rake (10.
|
26
|
+
rake (10.4.2)
|
28
27
|
redcarpet (3.0.0)
|
29
28
|
rest-client (1.6.7)
|
30
29
|
mime-types (>= 1.16)
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[![Code Climate](https://codeclimate.com/github/revdotcom/rev-ruby-sdk.png)](https://codeclimate.com/github/revdotcom/rev-ruby-sdk)
|
5
5
|
[![Coverage Status](https://coveralls.io/repos/revdotcom/rev-ruby-sdk/badge.png)](https://coveralls.io/r/revdotcom/rev-ruby-sdk)
|
6
6
|
|
7
|
-
[Reference](
|
7
|
+
[Reference](https://www.rev.com/api/docs) | [RDocs](http://rubydoc.info/github/revdotcom/rev-ruby-sdk/master/frames)
|
8
8
|
|
9
9
|
rev-ruby-sdk
|
10
10
|
------------
|
@@ -12,10 +12,10 @@ rev-ruby-sdk
|
|
12
12
|
### Background
|
13
13
|
|
14
14
|
Rev.com provides transcription and translation services powered by humans. The Rev.com API allows you to tap these services
|
15
|
-
with no manual steps. It's a RESTful API, documented at <
|
15
|
+
with no manual steps. It's a RESTful API, documented at <https://www.rev.com/api/docs>.
|
16
16
|
|
17
17
|
The Ruby SDK for the Rev API provides a convenient Ruby wrapper for the Rev.com API. All operations of the API, as described
|
18
|
-
at <
|
18
|
+
at <https://www.rev.com/api/operations>, are supported.
|
19
19
|
|
20
20
|
### Install
|
21
21
|
|
@@ -33,7 +33,7 @@ require 'rev-api'
|
|
33
33
|
|
34
34
|
### Authentication
|
35
35
|
|
36
|
-
If you are building a new API client, you must first obtain a client API key, which you can do at <
|
36
|
+
If you are building a new API client, you must first obtain a client API key, which you can do at <https://www.rev.com/api>.
|
37
37
|
|
38
38
|
All operations in the API are performed on behalf of a Rev customer, identified by their user API key. The client key / user
|
39
39
|
key pair is used to authenticate each API operation. Once you have the two keys, you can create a new Rev.com API client:
|
@@ -45,7 +45,7 @@ require 'rev-api'
|
|
45
45
|
rev_client = Rev.new('your_client_key', 'your_user_key')
|
46
46
|
```
|
47
47
|
|
48
|
-
You can read more about authentication in the Rev.com API at <
|
48
|
+
You can read more about authentication in the Rev.com API at <https://www.rev.com/api/security>
|
49
49
|
|
50
50
|
### Sandbox
|
51
51
|
|
@@ -74,6 +74,7 @@ rev_client = Rev.new('your_client_key', 'your_user_key')
|
|
74
74
|
```ruby
|
75
75
|
orders_page = rev_client.get_orders_page(1); # get a single page of orders
|
76
76
|
all_orders = rev_client.get_all_orders; # get first page of orders history
|
77
|
+
orders_by_client_ref = rev_client.get_orders_by_client_ref('some_ref'); # get orders with reference id of 'some_ref'
|
77
78
|
```
|
78
79
|
|
79
80
|
#### Get a single order by order number
|
@@ -106,7 +107,7 @@ Refer to `cli.rb` in the `examples` directory for a full example illustrating pl
|
|
106
107
|
|
107
108
|
[YARD documentation](http://rubydoc.info/github/revdotcom/rev-ruby-sdk/master/frames) can be generated locally by running `rake yard` command, and will be placed in the `doc` directory.
|
108
109
|
|
109
|
-
You can find API documentation at <
|
110
|
+
You can find API documentation at <https://www.rev.com/api/docs>.
|
110
111
|
|
111
112
|
### Support
|
112
113
|
|
data/examples/cli.rb
CHANGED
@@ -11,7 +11,7 @@ require 'pp'
|
|
11
11
|
# ruby examples/cli.rb --sandbox --client-key your_client_key --user-key your_user_key
|
12
12
|
|
13
13
|
class RevCLI
|
14
|
-
COMMANDS = %w{help get list transcripts captions dl_transcripts dl_captions dl_sources place_tc place_cp cancel}
|
14
|
+
COMMANDS = %w{help get get_by_client_ref list transcripts captions dl_transcripts dl_captions dl_sources place_tc place_cp cancel}
|
15
15
|
|
16
16
|
def initialize
|
17
17
|
options = { :environment => Rev::Api::PRODUCTION_HOST, :verbatim => false, :timestamps => false }
|
@@ -94,6 +94,24 @@ class RevCLI
|
|
94
94
|
puts 'There are no orders placed so far.' if orders.empty?
|
95
95
|
end
|
96
96
|
|
97
|
+
def get_by_client_ref(args)
|
98
|
+
# client ref can contain spaces, so we have to join client ref from pieces
|
99
|
+
if (args.last == '0' || args.last.to_i > 0)
|
100
|
+
client_ref = args[0..-2].join(' ')
|
101
|
+
else
|
102
|
+
client_ref = args.join(' ')
|
103
|
+
end
|
104
|
+
|
105
|
+
client_ref = client_ref.gsub('\'', '').gsub('"', '')
|
106
|
+
page = args.last.nil? ? 0: args.last.to_i
|
107
|
+
|
108
|
+
orders_first_page = @rev_client.get_orders_by_client_ref(client_ref, page)
|
109
|
+
puts "Found #{orders_first_page.total_count} order(s), showing page #{page}. Pass page number as second argument"
|
110
|
+
orders_first_page.orders.each { |o| puts ("#{o.client_ref}: #{o.order_number}") }
|
111
|
+
|
112
|
+
puts "There are no orders associated with the given client reference: #{client_ref}" if orders_first_page.orders.empty?
|
113
|
+
end
|
114
|
+
|
97
115
|
def transcripts(args)
|
98
116
|
begin
|
99
117
|
order_num = args[0]
|
@@ -221,11 +239,11 @@ class RevCLI
|
|
221
239
|
end
|
222
240
|
|
223
241
|
def help(*args)
|
224
|
-
puts "commands are: #{COMMANDS.join(' ')}
|
242
|
+
puts "commands are: #{COMMANDS.join(' ')} exit"
|
225
243
|
end
|
226
|
-
|
244
|
+
|
227
245
|
private
|
228
|
-
|
246
|
+
|
229
247
|
def upload(args, type)
|
230
248
|
input_urls = args.map do |f|
|
231
249
|
puts "Uploading #{f}"
|
@@ -233,7 +251,7 @@ class RevCLI
|
|
233
251
|
end
|
234
252
|
input_urls
|
235
253
|
end
|
236
|
-
|
254
|
+
|
237
255
|
def place_helper(inputs, options)
|
238
256
|
options = options.merge({ :client_ref => 'XB432423', :comment => 'Please work quickly' })
|
239
257
|
request = Rev::OrderRequest.new(options)
|
@@ -245,7 +263,7 @@ class RevCLI
|
|
245
263
|
puts "Order placement failed with error code #{e.code}, message #{e.message}"
|
246
264
|
end
|
247
265
|
end
|
248
|
-
|
266
|
+
|
249
267
|
end
|
250
268
|
|
251
269
|
cli = RevCLI.new
|
data/lib/rev-api/api.rb
CHANGED
@@ -22,7 +22,7 @@ module Rev
|
|
22
22
|
# into Rev::Api ctor
|
23
23
|
SANDBOX_HOST = 'api-sandbox.rev.com'
|
24
24
|
|
25
|
-
# @note
|
25
|
+
# @note https://www.rev.com/api/security
|
26
26
|
# @param client_api_key [String] secret key specific to each partner that wishes to use the Rev API
|
27
27
|
# @param user_api_key [String] secret key specific to a Rev user, which identifies the user account under whose privileges the requested operation executes
|
28
28
|
# @param host [String] use {Rev::Api::PRODUCTION_HOST} or {Rev::Api::SANDBOX_HOST}. Production is default value
|
@@ -33,9 +33,9 @@ module Rev
|
|
33
33
|
|
34
34
|
# Loads single page of existing orders for current client
|
35
35
|
#
|
36
|
-
# @note
|
36
|
+
# @note https://www.rev.com/api/ordersget
|
37
37
|
# @param page [Int, nil] 0-based page number, defaults to 0
|
38
|
-
# @return [OrdersListPage] paged result
|
38
|
+
# @return [OrdersListPage] paged result containing 'orders'
|
39
39
|
def get_orders_page(page = 0)
|
40
40
|
response = @client.get("/orders?page=#{page.to_i}")
|
41
41
|
Api.verify_get_response(response)
|
@@ -45,7 +45,7 @@ module Rev
|
|
45
45
|
# Loads all orders for current client. Works by calling get_orders_page multiple times.
|
46
46
|
# Use with caution if your order list might be large.
|
47
47
|
#
|
48
|
-
# @note
|
48
|
+
# @note https://www.rev.com/api/ordersget
|
49
49
|
# @return [Array of Order] list of orders
|
50
50
|
def get_all_orders
|
51
51
|
orders = []
|
@@ -59,9 +59,24 @@ module Rev
|
|
59
59
|
orders
|
60
60
|
end
|
61
61
|
|
62
|
+
# Loads orders whose associated reference ID is the given client_ref
|
63
|
+
#
|
64
|
+
# @note https://www.rev.com/api/ordersget
|
65
|
+
# @param client_ref [String, nil] client reference (required)
|
66
|
+
# @param page [Int, nil] 0-based page number, defaults to 0
|
67
|
+
# @return [OrdersListPage] paged result containing 'orders' list
|
68
|
+
# @raise [ArgumentError] client_ref is nil
|
69
|
+
def get_orders_by_client_ref(client_ref, page = 0)
|
70
|
+
raise ArgumentError if client_ref.nil?
|
71
|
+
|
72
|
+
response = @client.get("/orders?clientRef=#{URI.escape(client_ref)}&page=#{page.to_i}")
|
73
|
+
Api.verify_get_response(response)
|
74
|
+
OrdersListPage.new(Api.parse(response))
|
75
|
+
end
|
76
|
+
|
62
77
|
# Returns Order given an order number.
|
63
78
|
#
|
64
|
-
# @note
|
79
|
+
# @note https://www.rev.com/api/ordersgetone
|
65
80
|
# @param number [String] order number, like 'TCXXXXXXXX'
|
66
81
|
# @return [Order] order obj
|
67
82
|
def get_order(number)
|
@@ -72,7 +87,7 @@ module Rev
|
|
72
87
|
|
73
88
|
# Cancel an order by number. If cancellation is not allowed, Rev::Api::BadRequestError is raised.
|
74
89
|
#
|
75
|
-
# @note
|
90
|
+
# @note https://www.rev.com/api/orderscancel
|
76
91
|
# @param number [String] order number
|
77
92
|
# @return [Boolean] true on success, raised Exception from Rev::Api namespace otherwise
|
78
93
|
def cancel_order(number)
|
@@ -85,7 +100,7 @@ module Rev
|
|
85
100
|
# Use this method to retrieve information about an order attachment (either transcript,
|
86
101
|
# translation, or source file).
|
87
102
|
#
|
88
|
-
# @note
|
103
|
+
# @note https://www.rev.com/api/attachmentsget
|
89
104
|
# @param id [String] attachment id, as returned in info about an order
|
90
105
|
# @return [Attachment] attachment object
|
91
106
|
def get_attachment_metadata(id)
|
@@ -101,7 +116,7 @@ module Rev
|
|
101
116
|
# representation, specified via a mime-type.
|
102
117
|
#
|
103
118
|
# See {Rev::Order::Attachment::REPRESENTATIONS} hash, which contains symbols for currently supported mime types.
|
104
|
-
# The authoritative list is in the API documentation at
|
119
|
+
# The authoritative list is in the API documentation at https://www.rev.com/api/attachmentsgetcontent
|
105
120
|
#
|
106
121
|
# If a block is given, the response is passed to the block directly, to allow progressive reading of the data.
|
107
122
|
# In this case, the block must itself check for error responses, using Api.verify_get_response.
|
@@ -136,7 +151,7 @@ module Rev
|
|
136
151
|
# representation, specified via a mime-type.
|
137
152
|
#
|
138
153
|
# See {Rev::Order::Attachment::REPRESENTATIONS} hash, which contains symbols for currently supported mime types.
|
139
|
-
# The authoritative list is in the API documentation at
|
154
|
+
# The authoritative list is in the API documentation at https://www.rev.com/api/attachmentsgetcontent
|
140
155
|
#
|
141
156
|
# @param id [String] attachment id
|
142
157
|
# @param path [String, nil] path to file into which the content is to be saved.
|
@@ -178,7 +193,7 @@ module Rev
|
|
178
193
|
end
|
179
194
|
|
180
195
|
# Submit a new order using {Rev::OrderRequest}.
|
181
|
-
# @note
|
196
|
+
# @note https://www.rev.com/api/ordersposttranscription - for full information
|
182
197
|
#
|
183
198
|
# @param order_request [OrderRequest] object specifying payment, inputs, options and notification info.
|
184
199
|
# inputs must previously be uploaded using upload_input or create_input_from_link
|
@@ -194,7 +209,7 @@ module Rev
|
|
194
209
|
end
|
195
210
|
|
196
211
|
# Upload given local file directly as source input for order.
|
197
|
-
# @note
|
212
|
+
# @note https://www.rev.com/api/inputspost
|
198
213
|
#
|
199
214
|
# @param path [String] mandatory, path to local file (relative or absolute) to upload
|
200
215
|
# @param content_type [String] mandatory, content-type of the file you're uploading
|
@@ -219,7 +234,7 @@ module Rev
|
|
219
234
|
end
|
220
235
|
|
221
236
|
# Request creation of a source input based on an external URL which the server will attempt to download.
|
222
|
-
# @note
|
237
|
+
# @note https://www.rev.com/api/inputspost
|
223
238
|
#
|
224
239
|
# @param url [String] mandatory, URL where the media can be retrieved. Must be publicly accessible.
|
225
240
|
# HTTPS urls are ok as long as the site in question has a valid certificate
|
@@ -271,7 +286,7 @@ module Rev
|
|
271
286
|
|
272
287
|
# (see #verify_get_response)
|
273
288
|
def verify_post_response(response)
|
274
|
-
# see
|
289
|
+
# see https://www.rev.com/api/errorhandling
|
275
290
|
unless response.response.instance_of?(Net::HTTPCreated) || response.response.instance_of?(Net::HTTPNoContent)
|
276
291
|
Api.handle_error(response)
|
277
292
|
end
|
data/lib/rev-api/exceptions.rb
CHANGED
@@ -84,7 +84,7 @@ module Rev
|
|
84
84
|
|
85
85
|
module InputRequestErrorCodes
|
86
86
|
# 10001 Unsupported Content Type – if the content type of the media is not currently supported by our system.
|
87
|
-
# Supported media types for inputs are listed in
|
87
|
+
# Supported media types for inputs are listed in https://www.rev.com/api/inputspost
|
88
88
|
UNSUPPORTED_CONTENT_TYPE = 10001
|
89
89
|
|
90
90
|
# 10002 Could not retrieve file – if we could not retrieve the file from the specified location.
|
@@ -5,7 +5,7 @@ module Rev
|
|
5
5
|
# It consists of three main elements: :payment, :transcription_options and :notification.
|
6
6
|
# You can also supply priority, reference number, and customer comment
|
7
7
|
#
|
8
|
-
# @note
|
8
|
+
# @note https://www.rev.com/api/ordersposttranscription, https://www.rev.com/api/ordersposttranslation, https://www.rev.com/api/orderspostcaption
|
9
9
|
class OrderRequest < ApiSerializable
|
10
10
|
# see {Rev::Payment}
|
11
11
|
attr_reader :payment
|
@@ -15,7 +15,7 @@ module Rev
|
|
15
15
|
|
16
16
|
# see {Rev::TranslationOptions}
|
17
17
|
attr_reader :translation_options
|
18
|
-
|
18
|
+
|
19
19
|
# see {Rev::CaptionOptions}
|
20
20
|
attr_reader :caption_options
|
21
21
|
|
@@ -27,10 +27,10 @@ module Rev
|
|
27
27
|
|
28
28
|
# a comment with any special messages about the order (optional)
|
29
29
|
attr_reader :comment
|
30
|
-
|
30
|
+
|
31
31
|
# a requested priority for the order, defaults to normal (optional)
|
32
32
|
attr_reader :priority
|
33
|
-
|
33
|
+
|
34
34
|
# use to correctly set priority
|
35
35
|
PRIORITY = {
|
36
36
|
:normal => 'Normal',
|
@@ -39,7 +39,7 @@ module Rev
|
|
39
39
|
|
40
40
|
# @param payment [Payment] payment info
|
41
41
|
# @param fields [Hash] of fields to initialize instance. See instance attributes for available fields.
|
42
|
-
# @deprecated payment always defaults to :
|
42
|
+
# @deprecated payment always defaults to :account_balance
|
43
43
|
def self.new_with_payment(payment, fields = {})
|
44
44
|
fields = { :priority => PRIORITY[:normal] }.merge(fields)
|
45
45
|
super fields
|
@@ -75,7 +75,7 @@ module Rev
|
|
75
75
|
class << self
|
76
76
|
def with_account_balance()
|
77
77
|
Payment::new(TYPES[:account_balance])
|
78
|
-
end
|
78
|
+
end
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
@@ -98,7 +98,7 @@ module Rev
|
|
98
98
|
end
|
99
99
|
|
100
100
|
private
|
101
|
-
|
101
|
+
|
102
102
|
def validate_inputs(inputs)
|
103
103
|
!inputs.nil? && inputs.length > 0
|
104
104
|
end
|
@@ -106,7 +106,7 @@ module Rev
|
|
106
106
|
|
107
107
|
# Transcription options. This section contains the input media that must be transferred to our servers
|
108
108
|
# using a POST to /inputs, and are referenced using the URIs returned by that call. We also support external links.
|
109
|
-
# @see
|
109
|
+
# @see https://www.rev.com/api/ordersposttranscription
|
110
110
|
class TranscriptionOptions < InputOptions
|
111
111
|
# Optional, should we transcribe the provided files verbatim? If true,
|
112
112
|
# all filler words (i.e. umm, huh) will be included.
|
@@ -118,7 +118,7 @@ module Rev
|
|
118
118
|
# @param inputs [Array] list of inputs
|
119
119
|
# @param info [Hash] of fields to initialize instance. May contain:
|
120
120
|
# - :verbatim => true/false
|
121
|
-
# - :
|
121
|
+
# - :timestamps => true/false
|
122
122
|
def initialize(inputs, info = {})
|
123
123
|
super inputs, info
|
124
124
|
end
|
@@ -128,7 +128,7 @@ module Rev
|
|
128
128
|
# servers using a POST to /inputs, and are referenced using the URIs returned by that call.
|
129
129
|
# For each media, word count must be specified. The language code for the source and desitination
|
130
130
|
# languages must also be specified.
|
131
|
-
# @see
|
131
|
+
# @see https://www.rev.com/api/ordersposttranslation
|
132
132
|
class TranslationOptions < InputOptions
|
133
133
|
# Mandatory, source language code
|
134
134
|
attr_reader :source_language_code
|
@@ -145,10 +145,10 @@ module Rev
|
|
145
145
|
super inputs, info
|
146
146
|
end
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
# Caption options. This section contains the input media that must be transferred to our servers
|
150
150
|
# using a POST to /inputs, and are referenced using the URIs returned by that call. We also support external links.
|
151
|
-
# @see
|
151
|
+
# @see https://www.rev.com/api/orderspostcaption
|
152
152
|
class CaptionOptions < InputOptions
|
153
153
|
# Array of file formats the captions should be delivered as. (Optional, default is SubRip)
|
154
154
|
attr_reader :output_file_formats
|
@@ -160,14 +160,14 @@ module Rev
|
|
160
160
|
:ttml => 'Ttml',
|
161
161
|
:qttext => 'QTtext'
|
162
162
|
}
|
163
|
-
|
163
|
+
|
164
164
|
def initialize(inputs, info = {})
|
165
165
|
super(inputs, info)
|
166
166
|
raise(ArgumentError, "invalid format(s)") unless validate_output_formats(info[:output_file_formats])
|
167
167
|
end
|
168
|
-
|
168
|
+
|
169
169
|
private
|
170
|
-
|
170
|
+
|
171
171
|
def validate_output_formats(formats)
|
172
172
|
formats.nil? || formats.select{|f| !OUTPUT_FILE_FORMATS.has_value?(f) }.empty?
|
173
173
|
end
|
@@ -181,7 +181,7 @@ module Rev
|
|
181
181
|
# Length of audio in seconds (mandatory in case of inability to determine it automatically).
|
182
182
|
# Used within {Rev::OrderRequest::TranscriptionInfo}
|
183
183
|
attr_reader :audio_length_seconds
|
184
|
-
|
184
|
+
|
185
185
|
# Length of video in seconds (mandatory in case of inability to determine it automatically).
|
186
186
|
# Used within {Rev::OrderRequest::CaptionInfo}
|
187
187
|
attr_reader :video_length_seconds
|
data/lib/rev-api/version.rb
CHANGED
data/rev-api.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.description = "Communicate with Rev.com API using plain Ruby objects without bothering about HTTP"
|
12
12
|
s.authors = ["Rev.com, Inc"]
|
13
13
|
s.email = 'api@rev.com'
|
14
|
-
s.homepage = '
|
14
|
+
s.homepage = 'https://www.rev.com/api'
|
15
15
|
s.license = 'Apache License 2.0'
|
16
16
|
|
17
17
|
s.files = `git ls-files`.split("\n")
|
@@ -0,0 +1,41 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://www.revtrunk.com/api/v1/orders?clientRef=my%20ref&page=0
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Authorization:
|
11
|
+
- Rev welcome:AAAAAu/YjZ3phXU5FsF35yIcgiA=
|
12
|
+
User-Agent:
|
13
|
+
- RevOfficialRubySDK/2.0.0
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Cache-Control:
|
20
|
+
- no-cache
|
21
|
+
Pragma:
|
22
|
+
- no-cache
|
23
|
+
Content-Length:
|
24
|
+
- '271'
|
25
|
+
Content-Type:
|
26
|
+
- application/json; charset=utf-8
|
27
|
+
Expires:
|
28
|
+
- "-1"
|
29
|
+
Server:
|
30
|
+
- Microsoft-IIS/8.5
|
31
|
+
X-Powered-By:
|
32
|
+
- ASP.NET
|
33
|
+
Date:
|
34
|
+
- Thu, 13 Aug 2015 22:33:40 GMT
|
35
|
+
body:
|
36
|
+
encoding: UTF-8
|
37
|
+
string: '{"total_count":1,"results_per_page":25,"page":0,"orders":[{"order_number":"CP0180436196","client_ref":"4410704484001","price":2.4000,"status":"Finding
|
38
|
+
Captioner","priority":"Normal","caption":{"total_length":2,"total_length_seconds":144},"comments":[],"attachments":[]}]}'
|
39
|
+
http_version:
|
40
|
+
recorded_at: Thu, 13 Aug 2015 22:33:40 GMT
|
41
|
+
recorded_with: VCR 2.9.3
|
@@ -5,7 +5,7 @@ http_interactions:
|
|
5
5
|
uri: https://www.revtrunk.com/api/v1/inputs
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: ! '{"url":"
|
8
|
+
string: ! '{"url":"https://www.rev.com/content/img/rev/rev_logo_colored_top.png"}'
|
9
9
|
headers:
|
10
10
|
Content-Type:
|
11
11
|
- application/json
|
@@ -39,6 +39,6 @@ http_interactions:
|
|
39
39
|
body:
|
40
40
|
encoding: US-ASCII
|
41
41
|
string: ''
|
42
|
-
http_version:
|
42
|
+
http_version:
|
43
43
|
recorded_at: Tue, 17 Sep 2013 21:08:37 GMT
|
44
44
|
recorded_with: VCR 2.5.0
|
@@ -5,7 +5,7 @@ http_interactions:
|
|
5
5
|
uri: https://www.revtrunk.com/api/v1/inputs
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: ! '{"url":"
|
8
|
+
string: ! '{"url":"https://www.rev.com/content/img/rev/rev_logo_colored_top.png","filename":"sourcedocument.png","content_type":"image/png"}'
|
9
9
|
headers:
|
10
10
|
Content-Type:
|
11
11
|
- application/json
|
@@ -39,6 +39,6 @@ http_interactions:
|
|
39
39
|
body:
|
40
40
|
encoding: US-ASCII
|
41
41
|
string: ''
|
42
|
-
http_version:
|
42
|
+
http_version:
|
43
43
|
recorded_at: Tue, 17 Sep 2013 21:11:45 GMT
|
44
44
|
recorded_with: VCR 2.5.0
|
@@ -33,6 +33,29 @@ describe 'GET /orders' do
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
describe 'GET /orders without client reference raises' do
|
37
|
+
it 'must raise NotAcceptableError' do
|
38
|
+
assert_raises(ArgumentError) { client.get_orders_by_client_ref }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'GET /orders?page=0&clientRef={client_ref}' do
|
43
|
+
it 'must load order with given reference id' do
|
44
|
+
VCR.insert_cassette 'get_orders_with_clientRef'
|
45
|
+
|
46
|
+
page = client.get_orders_by_client_ref('my ref')
|
47
|
+
|
48
|
+
assert_requested :get, /.*\/api\/v1\/orders\?clientRef=my%20ref&page=0/, :times => 1
|
49
|
+
|
50
|
+
page.orders.must_be_instance_of Array
|
51
|
+
page.results_per_page.must_equal 25
|
52
|
+
page.orders.size.must_equal 1
|
53
|
+
page.page.must_equal 0
|
54
|
+
page.total_count.must_equal 1
|
55
|
+
page.orders[0].order_number.must_equal 'CP0180436196'
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
36
59
|
after do
|
37
60
|
VCR.eject_cassette
|
38
61
|
end
|
@@ -6,7 +6,7 @@ describe 'POST /inputs' do
|
|
6
6
|
it 'must link external file with explicit content-type and file' do
|
7
7
|
VCR.insert_cassette 'link_input_with_all_attributes'
|
8
8
|
|
9
|
-
link = '
|
9
|
+
link = 'https://www.rev.com/content/img/rev/rev_logo_colored_top.png'
|
10
10
|
filename = 'sourcedocument.png'
|
11
11
|
content_type = 'image/png'
|
12
12
|
new_input_location = client.create_input_from_link(link, filename, content_type)
|
@@ -27,7 +27,7 @@ describe 'POST /inputs' do
|
|
27
27
|
it 'must link external file without content-type and filename' do
|
28
28
|
VCR.insert_cassette 'link_input'
|
29
29
|
|
30
|
-
link = '
|
30
|
+
link = 'https://www.rev.com/content/img/rev/rev_logo_colored_top.png'
|
31
31
|
new_input_location = client.create_input_from_link(link)
|
32
32
|
|
33
33
|
new_input_location.must_match 'urn:foxtranslate:inputmedia:'
|
Binary file
|
metadata
CHANGED
@@ -1,155 +1,155 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rev-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rev.com, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.11'
|
20
|
-
- -
|
20
|
+
- - '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 0.11.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0.11'
|
30
|
-
- -
|
30
|
+
- - '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.11.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: webmock
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ~>
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '1.11'
|
40
|
-
- -
|
40
|
+
- - ~>
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 1.11.0
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ~>
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '1.11'
|
50
|
-
- -
|
50
|
+
- - ~>
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 1.11.0
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: vcr
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- -
|
57
|
+
- - ~>
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: '2.6'
|
60
|
-
- -
|
60
|
+
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: 2.6.0
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '2.6'
|
70
|
-
- -
|
70
|
+
- - ~>
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: 2.6.0
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: turn
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
|
-
- -
|
77
|
+
- - ~>
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '0.9'
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.9.6
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0.9'
|
90
|
-
- -
|
90
|
+
- - ~>
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: 0.9.6
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: rake
|
95
95
|
requirement: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- -
|
97
|
+
- - ~>
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '10.1'
|
100
|
-
- -
|
100
|
+
- - '>='
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: 10.1.0
|
103
103
|
type: :development
|
104
104
|
prerelease: false
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '10.1'
|
110
|
-
- -
|
110
|
+
- - '>='
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: 10.1.0
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: yard
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - ~>
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0'
|
120
120
|
type: :development
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
|
-
- -
|
124
|
+
- - ~>
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '0'
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: redcarpet
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '0'
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
|
-
- -
|
138
|
+
- - '>='
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '0'
|
141
141
|
- !ruby/object:Gem::Dependency
|
142
142
|
name: rubygems-tasks
|
143
143
|
requirement: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
|
-
- -
|
145
|
+
- - ~>
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: '0'
|
148
148
|
type: :development
|
149
149
|
prerelease: false
|
150
150
|
version_requirements: !ruby/object:Gem::Requirement
|
151
151
|
requirements:
|
152
|
-
- -
|
152
|
+
- - ~>
|
153
153
|
- !ruby/object:Gem::Version
|
154
154
|
version: '0'
|
155
155
|
description: Communicate with Rev.com API using plain Ruby objects without bothering
|
@@ -159,11 +159,11 @@ executables: []
|
|
159
159
|
extensions: []
|
160
160
|
extra_rdoc_files: []
|
161
161
|
files:
|
162
|
-
-
|
163
|
-
-
|
164
|
-
-
|
165
|
-
-
|
166
|
-
-
|
162
|
+
- .coveralls.yml
|
163
|
+
- .gitignore
|
164
|
+
- .ruby-gemset
|
165
|
+
- .ruby-version
|
166
|
+
- .travis.yml
|
167
167
|
- Gemfile
|
168
168
|
- Gemfile.lock
|
169
169
|
- LICENSE
|
@@ -190,6 +190,7 @@ files:
|
|
190
190
|
- spec/fixtures/api_cassettes/get_attachment_metadata.yml
|
191
191
|
- spec/fixtures/api_cassettes/get_attachment_with_invalid_id.yml
|
192
192
|
- spec/fixtures/api_cassettes/get_orders.yml
|
193
|
+
- spec/fixtures/api_cassettes/get_orders_with_clientRef.yml
|
193
194
|
- spec/fixtures/api_cassettes/get_tc_order.yml
|
194
195
|
- spec/fixtures/api_cassettes/get_third_page_of_orders.yml
|
195
196
|
- spec/fixtures/api_cassettes/get_tr_order.yml
|
@@ -218,7 +219,8 @@ files:
|
|
218
219
|
- spec/lib/rev/post_inputs_spec.rb
|
219
220
|
- spec/lib/rev/post_order_spec.rb
|
220
221
|
- spec/spec_helper.rb
|
221
|
-
|
222
|
+
- spec/tmp_get_attachment_content
|
223
|
+
homepage: https://www.rev.com/api
|
222
224
|
licenses:
|
223
225
|
- Apache License 2.0
|
224
226
|
metadata: {}
|
@@ -229,17 +231,17 @@ require_paths:
|
|
229
231
|
- spec
|
230
232
|
required_ruby_version: !ruby/object:Gem::Requirement
|
231
233
|
requirements:
|
232
|
-
- -
|
234
|
+
- - '>='
|
233
235
|
- !ruby/object:Gem::Version
|
234
236
|
version: 1.9.3
|
235
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
238
|
requirements:
|
237
|
-
- -
|
239
|
+
- - '>='
|
238
240
|
- !ruby/object:Gem::Version
|
239
241
|
version: '0'
|
240
242
|
requirements: []
|
241
243
|
rubyforge_project:
|
242
|
-
rubygems_version: 2.
|
244
|
+
rubygems_version: 2.4.6
|
243
245
|
signing_key:
|
244
246
|
specification_version: 4
|
245
247
|
summary: Ruby wrapper for Rev.com API
|
@@ -255,6 +257,7 @@ test_files:
|
|
255
257
|
- spec/fixtures/api_cassettes/get_attachment_metadata.yml
|
256
258
|
- spec/fixtures/api_cassettes/get_attachment_with_invalid_id.yml
|
257
259
|
- spec/fixtures/api_cassettes/get_orders.yml
|
260
|
+
- spec/fixtures/api_cassettes/get_orders_with_clientRef.yml
|
258
261
|
- spec/fixtures/api_cassettes/get_tc_order.yml
|
259
262
|
- spec/fixtures/api_cassettes/get_third_page_of_orders.yml
|
260
263
|
- spec/fixtures/api_cassettes/get_tr_order.yml
|
@@ -283,4 +286,5 @@ test_files:
|
|
283
286
|
- spec/lib/rev/post_inputs_spec.rb
|
284
287
|
- spec/lib/rev/post_order_spec.rb
|
285
288
|
- spec/spec_helper.rb
|
289
|
+
- spec/tmp_get_attachment_content
|
286
290
|
has_rdoc: yard
|