ruby-magicwrite 0.1.3 → 0.1.4
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/Gemfile.lock +1 -1
- 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
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-08-
|
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
|