ruby-magicwrite 0.1.2 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +5 -1
- data/lib/magicwrite/client.rb +4 -0
- data/lib/magicwrite/error.rb +20 -0
- data/lib/magicwrite/error_handler.rb +38 -0
- data/lib/magicwrite/http.rb +36 -24
- data/lib/magicwrite/memberships.rb +15 -0
- data/lib/magicwrite/version.rb +1 -1
- data/lib/magicwrite.rb +3 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78dec62f5b00bafdf4c419f17e5f908ce8431ed0d0ed1d5289a9b12556160990
|
4
|
+
data.tar.gz: d707b12d56bca20072ab023ba01f8e7f12b86ad16b675e151c6b9fc9dcd2ea51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 218a31aab9ea79dd52f51dba0622d137ada3ee533532f49bdb06d1127aacd577873d9ea24ddca9fe7c0a50e8dca9a8c5731e4ce2c0996e4211fc270764a607b4
|
7
|
+
data.tar.gz: 6dab53f804184b3e3179c1a51fb5cdf00493b2ec7781e59ed1e2982565797d42b8953473f3e0789b9ef590dc5e827fd344ad86f91fd8d6a2064250b8561c41ad
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-magicwrite (0.1.
|
4
|
+
ruby-magicwrite (0.1.4)
|
5
5
|
faraday (>= 1)
|
6
6
|
faraday-multipart (>= 1)
|
7
7
|
|
@@ -16,7 +16,7 @@ GEM
|
|
16
16
|
rexml
|
17
17
|
diff-lcs (1.5.0)
|
18
18
|
dotenv (2.8.1)
|
19
|
-
faraday (2.7.
|
19
|
+
faraday (2.7.10)
|
20
20
|
faraday-net_http (>= 2.0, < 3.1)
|
21
21
|
ruby2_keywords (>= 0.0.4)
|
22
22
|
faraday-multipart (1.0.4)
|
data/README.md
CHANGED
@@ -12,13 +12,17 @@ gem "ruby-magicwrite"
|
|
12
12
|
|
13
13
|
And then execute:
|
14
14
|
|
15
|
+
```bash
|
15
16
|
$ bundle install
|
17
|
+
```
|
16
18
|
|
17
19
|
### Gem install
|
18
20
|
|
19
21
|
Or install with:
|
20
22
|
|
21
|
-
|
23
|
+
```bash
|
24
|
+
$ gem install ruby-openai
|
25
|
+
```
|
22
26
|
|
23
27
|
and require with:
|
24
28
|
|
data/lib/magicwrite/client.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
module MagicWrite
|
2
|
+
class Error < StandardError
|
3
|
+
class BadRequest < Error; end
|
4
|
+
class Unauthorized < Error; end
|
5
|
+
class PaymentRequired < Error; end
|
6
|
+
class Forbidden < Error; end
|
7
|
+
class NotFound < Error; end
|
8
|
+
class MethodNotAllowed < Error; end
|
9
|
+
class RequestTimeout < Error; end
|
10
|
+
class Conflict < Error; end
|
11
|
+
class UnprocessableEntity < Error; end
|
12
|
+
class TooManyRequests < Error; end
|
13
|
+
class InternalServerError < Error; end
|
14
|
+
class NotImplemented < Error; end
|
15
|
+
class BadGateway < Error; end
|
16
|
+
class ServiceUnavailable < Error; end
|
17
|
+
class GatewayTimeout < Error; end
|
18
|
+
class UnknownError < Error; end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module MagicWrite
|
2
|
+
class ErrorHandler
|
3
|
+
HTTP_CODE = {
|
4
|
+
400 => MagicWrite::Error::BadRequest,
|
5
|
+
401 => MagicWrite::Error::Unauthorized,
|
6
|
+
402 => MagicWrite::Error::PaymentRequired,
|
7
|
+
403 => MagicWrite::Error::Forbidden,
|
8
|
+
404 => MagicWrite::Error::NotFound,
|
9
|
+
405 => MagicWrite::Error::MethodNotAllowed,
|
10
|
+
408 => MagicWrite::Error::RequestTimeout,
|
11
|
+
409 => MagicWrite::Error::Conflict,
|
12
|
+
422 => MagicWrite::Error::UnprocessableEntity,
|
13
|
+
429 => MagicWrite::Error::TooManyRequests,
|
14
|
+
500 => MagicWrite::Error::InternalServerError,
|
15
|
+
501 => MagicWrite::Error::NotImplemented,
|
16
|
+
502 => MagicWrite::Error::BadGateway,
|
17
|
+
503 => MagicWrite::Error::ServiceUnavailable,
|
18
|
+
504 => MagicWrite::Error::GatewayTimeout
|
19
|
+
}.freeze
|
20
|
+
|
21
|
+
def initialize(response)
|
22
|
+
@response = response
|
23
|
+
@status = response.status
|
24
|
+
end
|
25
|
+
|
26
|
+
def raise_error
|
27
|
+
raise error_class, response.reason_phrase
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
attr_reader :response, :status
|
33
|
+
|
34
|
+
def error_class
|
35
|
+
HTTP_CODE[status] || MagicWrite::Error::UnknownError
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/magicwrite/http.rb
CHANGED
@@ -1,55 +1,67 @@
|
|
1
1
|
module MagicWrite
|
2
2
|
module HTTP
|
3
3
|
def get(path:, parameters: {})
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
4
|
+
build_response(conn.get(uri(path: path)) do |request|
|
5
|
+
request.headers = headers
|
6
|
+
request.body = parameters.to_json
|
7
|
+
end)
|
8
8
|
end
|
9
9
|
|
10
10
|
def json_post(path:, parameters:)
|
11
|
-
|
11
|
+
build_response(conn.post(uri(path: path)) do |request|
|
12
12
|
if parameters[:stream].respond_to?(:call)
|
13
|
-
|
13
|
+
request.options.on_data = to_json_stream(user_proc: parameters[:stream])
|
14
14
|
parameters[:stream] = true
|
15
15
|
elsif parameters[:stream]
|
16
16
|
raise ArgumentError, 'The stream parameter must be a Proc or have a #call method'
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
end
|
19
|
+
request.headers = headers
|
20
|
+
request.body = parameters.to_json
|
21
|
+
end)
|
22
22
|
end
|
23
23
|
|
24
24
|
def json_put(path:, parameters:)
|
25
|
-
|
25
|
+
build_response(conn.put(uri(path: path)) do |request|
|
26
26
|
if parameters[:stream].respond_to?(:call)
|
27
|
-
|
27
|
+
request.options.on_data = to_json_stream(user_proc: parameters[:stream])
|
28
28
|
parameters[:stream] = true
|
29
29
|
elsif parameters[:stream]
|
30
30
|
raise ArgumentError, 'The stream parameter must be a Proc or have a #call method'
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
end
|
33
|
+
request.headers = headers
|
34
|
+
request.body = parameters.to_json
|
35
|
+
end)
|
36
36
|
end
|
37
37
|
|
38
38
|
def multipart_post(path:, parameters: nil)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
39
|
+
build_response(conn(multipart: true).post(uri(path: path)) do |request|
|
40
|
+
request.headers = headers.merge({ 'Content-Type' => 'multipart/form-data' })
|
41
|
+
request.body = multipart_parameters(parameters)
|
42
|
+
end)
|
43
43
|
end
|
44
44
|
|
45
45
|
def delete(path:)
|
46
|
-
|
47
|
-
|
48
|
-
end
|
46
|
+
build_response(conn.delete(uri(path: path)) do |request|
|
47
|
+
request.headers = headers
|
48
|
+
end)
|
49
49
|
end
|
50
50
|
|
51
51
|
private
|
52
52
|
|
53
|
+
def build_response(response)
|
54
|
+
return parsed_response(response) if response.status.between?(200, 299)
|
55
|
+
|
56
|
+
MagicWrite::ErrorHandler.new(response).raise_error
|
57
|
+
end
|
58
|
+
|
59
|
+
def parsed_response(response)
|
60
|
+
return unless response
|
61
|
+
|
62
|
+
to_json(response.body)
|
63
|
+
end
|
64
|
+
|
53
65
|
def to_json(string)
|
54
66
|
return unless string
|
55
67
|
|
@@ -69,9 +81,9 @@ module MagicWrite
|
|
69
81
|
end
|
70
82
|
|
71
83
|
def conn(multipart: false)
|
72
|
-
Faraday.new do |
|
73
|
-
|
74
|
-
|
84
|
+
Faraday.new do |faraday|
|
85
|
+
faraday.options[:timeout] = MagicWrite.configuration.request_timeout
|
86
|
+
faraday.request(:multipart) if multipart
|
75
87
|
end
|
76
88
|
end
|
77
89
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module MagicWrite
|
2
|
+
class Memberships
|
3
|
+
def initialize(access_token: nil)
|
4
|
+
MagicWrite.configuration.access_token = access_token if access_token
|
5
|
+
end
|
6
|
+
|
7
|
+
def user
|
8
|
+
MagicWrite::Client.get(path: '/memberships/user')
|
9
|
+
end
|
10
|
+
|
11
|
+
def company
|
12
|
+
MagicWrite::Client.get(path: '/memberships/company')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/magicwrite/version.rb
CHANGED
data/lib/magicwrite.rb
CHANGED
@@ -6,11 +6,13 @@ require_relative 'magicwrite/client'
|
|
6
6
|
require_relative 'magicwrite/agents'
|
7
7
|
require_relative 'magicwrite/companies'
|
8
8
|
require_relative 'magicwrite/completions'
|
9
|
+
require_relative 'magicwrite/error'
|
10
|
+
require_relative 'magicwrite/error_handler'
|
9
11
|
require_relative 'magicwrite/ingestions'
|
12
|
+
require_relative 'magicwrite/memberships'
|
10
13
|
require_relative 'magicwrite/version'
|
11
14
|
|
12
15
|
module MagicWrite
|
13
|
-
class Error < StandardError; end
|
14
16
|
class ConfigurationError < Error; end
|
15
17
|
|
16
18
|
class Configuration
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-magicwrite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Campos
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-08-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -68,8 +68,11 @@ files:
|
|
68
68
|
- lib/magicwrite/companies.rb
|
69
69
|
- lib/magicwrite/compatibility.rb
|
70
70
|
- lib/magicwrite/completions.rb
|
71
|
+
- lib/magicwrite/error.rb
|
72
|
+
- lib/magicwrite/error_handler.rb
|
71
73
|
- lib/magicwrite/http.rb
|
72
74
|
- lib/magicwrite/ingestions.rb
|
75
|
+
- lib/magicwrite/memberships.rb
|
73
76
|
- lib/magicwrite/version.rb
|
74
77
|
- lib/ruby/magicwrite.rb
|
75
78
|
- pull_request_template.md
|