mojfile-uploader-api-client 0.1.1 → 0.2
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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Gemfile.lock +2 -2
- data/README.md +30 -1
- data/lib/mojfile_uploader_api_client.rb +29 -0
- data/lib/mojfile_uploader_api_client/response.rb +14 -8
- data/lib/mojfile_uploader_api_client/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3066638f8cdc9294e76ca66e896be9e92310ee07
|
4
|
+
data.tar.gz: 65258501e71ef231634d86c79c56d5851de4ac20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 786bf3d8b142bab2de0ae53f30cdf10e314510b0ee3b2e71727206225ba9ac43984367615ad7ec0ca97aeab14b3bf6315e49c336c33e51b99ea9e45ced98259c
|
7
|
+
data.tar.gz: c3eab59fb289635295b6e8f458ad4ba3b0b16e933413d6812b87c39ee5d7e765705dc86572d9e3e563c3b6df1ca960f6d9135cf9161166a228cd7712435bf351
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.0
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -20,6 +20,13 @@ end
|
|
20
20
|
|
21
21
|
#### When a previous collection reference is known:
|
22
22
|
|
23
|
+
```ruby
|
24
|
+
MojFileUploaderApiClient.add_file(title: 'test', filename: 'test.txt', data: 'bla bla bla', collection_ref: 'a45c556f-a628-41d3-8c29-351f84e63757')
|
25
|
+
=> {:collection=>"a45c556f-a628-41d3-8c29-351f84e63757", :key=>"7c6aca2c-eb7a-4194-8166-9fd6ac82127b.test.txt"}
|
26
|
+
```
|
27
|
+
|
28
|
+
Or you can use the `AddFile` client directly:
|
29
|
+
|
23
30
|
```ruby
|
24
31
|
MojFileUploaderApiClient::AddFile.new(title: 'test', filename: 'test.txt', data: 'bla bla bla', collection_ref: 'a45c556f-a628-41d3-8c29-351f84e63757').call
|
25
32
|
|
@@ -30,6 +37,13 @@ MojFileUploaderApiClient::AddFile.new(title: 'test', filename: 'test.txt', data:
|
|
30
37
|
|
31
38
|
#### No previous collection reference (will create a new one):
|
32
39
|
|
40
|
+
```ruby
|
41
|
+
MojFileUploaderApiClient.add_file(title: 'test', filename: 'test.txt', data: 'bla bla bla')
|
42
|
+
=> {:collection=>"741635f7-488a-49cc-a3f1-9ee38795e28e", :key=>"0543a21d-e884-4076-89be-41cc09b00da1.test.txt"}
|
43
|
+
```
|
44
|
+
|
45
|
+
Or you can use the `AddFile` client directly:
|
46
|
+
|
33
47
|
```ruby
|
34
48
|
MojFileUploaderApiClient::AddFile.new(title: 'test', filename: 'test.txt', data: 'bla bla bla').call
|
35
49
|
|
@@ -40,6 +54,13 @@ MojFileUploaderApiClient::AddFile.new(title: 'test', filename: 'test.txt', data:
|
|
40
54
|
|
41
55
|
### Delete a file
|
42
56
|
|
57
|
+
```ruby
|
58
|
+
MojFileUploaderApiClient.delete_file(collection_ref: 'a45c556f-a628-41d3-8c29-351f84e63757', filename: 'test1.txt')
|
59
|
+
=> RequestError
|
60
|
+
```
|
61
|
+
|
62
|
+
Or you can use the `DeleteFile` client directly:
|
63
|
+
|
43
64
|
```ruby
|
44
65
|
MojFileUploaderApiClient::DeleteFile.new(collection_ref: 'a45c556f-a628-41d3-8c29-351f84e63757', filename: 'test1.txt').call
|
45
66
|
=> #<MojFileUploaderApiClient::Response:0x007fe4e59c8098 @body={:body_parser_error=>"743: unexpected token at ''"}, @code=204>
|
@@ -47,12 +68,20 @@ MojFileUploaderApiClient::DeleteFile.new(collection_ref: 'a45c556f-a628-41d3-8c2
|
|
47
68
|
|
48
69
|
### List files
|
49
70
|
|
71
|
+
```ruby
|
72
|
+
MojFileUploaderApiClient.list_files(collection_ref: 'a45c556f-a628-41d3-8c29-351f84e63757')
|
73
|
+
=> {:collection=>"a45c556f-a628-41d3-8c29-351f84e63757",
|
74
|
+
:files=>[{:key=>"a45c556f-a628-41d3-8c29-351f84e63757/test1.txt", :title=>"test1.txt", :last_modified=>"2016-11-30T15:30:52.000Z"}]}
|
75
|
+
```
|
76
|
+
|
77
|
+
Or you can use the `ListFiles` client directly:
|
78
|
+
|
50
79
|
```ruby
|
51
80
|
MojFileUploaderApiClient::ListFiles.new(collection_ref: 'a45c556f-a628-41d3-8c29-351f84e63757').call
|
52
81
|
=> #<MojFileUploaderApiClient::Response:0x007fe4e5ac91e0
|
53
82
|
@body=
|
54
83
|
{:collection=>"a45c556f-a628-41d3-8c29-351f84e63757",
|
55
|
-
:files=>[{:key=>"a45c556f-a628-41d3-8c29-351f84e63757/test1.txt", :title=>"test1.txt", :last_modified=>"2016-11-30T15:30:52.000Z"}]}
|
84
|
+
:files=>[{:key=>"a45c556f-a628-41d3-8c29-351f84e63757/test1.txt", :title=>"test1.txt", :last_modified=>"2016-11-30T15:30:52.000Z"}]}
|
56
85
|
@code=200>
|
57
86
|
```
|
58
87
|
|
@@ -10,6 +10,35 @@ require 'mojfile_uploader_api_client/delete_file'
|
|
10
10
|
require 'mojfile_uploader_api_client/list_files'
|
11
11
|
|
12
12
|
module MojFileUploaderApiClient
|
13
|
+
INFECTED_FILE_RESPONSE_CODE = 400
|
14
|
+
|
13
15
|
class Unavailable < StandardError; end
|
14
16
|
class RequestError < StandardError; end
|
17
|
+
class InfectedFileError < StandardError; end
|
18
|
+
|
19
|
+
def self.add_file(params)
|
20
|
+
response = AddFile.new(params).call
|
21
|
+
|
22
|
+
if response.success?
|
23
|
+
response.body
|
24
|
+
elsif response.code.equal?(INFECTED_FILE_RESPONSE_CODE)
|
25
|
+
raise InfectedFileError
|
26
|
+
else
|
27
|
+
raise RequestError
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.delete_file(params)
|
32
|
+
response = DeleteFile.new(params).call
|
33
|
+
|
34
|
+
raise RequestError unless response.success?
|
35
|
+
response.body
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.list_files(params)
|
39
|
+
response = ListFiles.new(params).call
|
40
|
+
|
41
|
+
raise RequestError unless response.success?
|
42
|
+
response.body
|
43
|
+
end
|
15
44
|
end
|
@@ -1,10 +1,12 @@
|
|
1
1
|
module MojFileUploaderApiClient
|
2
2
|
class Response
|
3
|
-
|
3
|
+
class UnparsableResponseError < RuntimeError; end
|
4
|
+
|
5
|
+
attr_accessor :code
|
4
6
|
|
5
7
|
def initialize(code:, body:)
|
6
|
-
|
7
|
-
|
8
|
+
@code = code
|
9
|
+
@raw_body = body
|
8
10
|
end
|
9
11
|
|
10
12
|
def success?
|
@@ -15,13 +17,17 @@ module MojFileUploaderApiClient
|
|
15
17
|
!success?
|
16
18
|
end
|
17
19
|
|
20
|
+
def body
|
21
|
+
@body ||= parse_body
|
22
|
+
end
|
23
|
+
|
18
24
|
private
|
19
25
|
|
20
|
-
def parse_body
|
21
|
-
return
|
22
|
-
JSON.parse(
|
23
|
-
rescue JSON::ParserError
|
24
|
-
|
26
|
+
def parse_body
|
27
|
+
return if @raw_body.nil? || @raw_body.empty?
|
28
|
+
JSON.parse(@raw_body, symbolize_names: true)
|
29
|
+
rescue JSON::ParserError
|
30
|
+
raise UnparsableResponseError
|
25
31
|
end
|
26
32
|
end
|
27
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mojfile-uploader-api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesus Laiz
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-02-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -173,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
173
173
|
version: '0'
|
174
174
|
requirements: []
|
175
175
|
rubyforge_project:
|
176
|
-
rubygems_version: 2.
|
176
|
+
rubygems_version: 2.6.8
|
177
177
|
signing_key:
|
178
178
|
specification_version: 4
|
179
179
|
summary: API client for integration with the MOJ File Uploader
|