notion-ruby-client 1.0.0 → 1.1.0
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/.github/workflows/ci.yml +2 -2
- data/.github/workflows/rubocop.yml +17 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile.lock +14 -43
- data/README.md +6 -6
- data/lib/notion/api/endpoints/blocks.rb +8 -5
- data/lib/notion/api/endpoints/databases.rb +5 -3
- data/lib/notion/api/endpoints/pages.rb +3 -2
- data/lib/notion/config.rb +2 -2
- data/lib/notion/faraday/connection.rb +4 -4
- data/lib/notion/faraday/request.rb +1 -1
- data/lib/notion/faraday/response/raise_error.rb +2 -2
- data/lib/notion/faraday/response/wrap_error.rb +2 -2
- data/lib/notion/version.rb +1 -1
- data/lib/notion-ruby-client.rb +2 -2
- data/notion-ruby-client.gemspec +3 -3
- metadata +15 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1a51902078e38a1689842f254fd2a33c05c9cf7ee7e516a0d74c79ae0cf06018
|
|
4
|
+
data.tar.gz: 74cd639ca5b12e5c58bbc6e80b31b23bb29fc858e51fff6564afb4cc8079c120
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b44e81d8f7acdd44845dcfc785555830adf556fe74d2ad1795913b131470dce9e315ce41051c0144aeb38b6c4385f3be3da01e039cabd682521f3929351af605
|
|
7
|
+
data.tar.gz: 384c2a8dae62684800ec4af7dd52cc4c7b961f82a17e90e867e60bcdbc518e49a840b4c8707f5d76b5d7cc031f4c5c98e906913bb6e68bbaff64db409cfdf2d3
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -4,7 +4,7 @@ jobs:
|
|
|
4
4
|
test:
|
|
5
5
|
strategy:
|
|
6
6
|
matrix:
|
|
7
|
-
ruby: [2.
|
|
7
|
+
ruby: [2.6, 2.7, '3.0', 3.1, 3.2]
|
|
8
8
|
runs-on: ubuntu-latest
|
|
9
9
|
steps:
|
|
10
10
|
- uses: actions/checkout@v2
|
|
@@ -12,4 +12,4 @@ jobs:
|
|
|
12
12
|
with:
|
|
13
13
|
bundler-cache: true
|
|
14
14
|
ruby-version: ${{ matrix.ruby }}
|
|
15
|
-
- run: bundle exec rake
|
|
15
|
+
- run: bundle exec rake spec
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: RuboCop
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v3
|
|
11
|
+
- name: Set up Ruby
|
|
12
|
+
uses: ruby/setup-ruby@v1
|
|
13
|
+
with:
|
|
14
|
+
ruby-version: 2.7
|
|
15
|
+
bundler-cache: true # 'bundle install' and cache
|
|
16
|
+
- name: Run RuboCop
|
|
17
|
+
run: bundle exec rake rubocop
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
### 1.1.0 (2023-02-23)
|
|
2
|
+
|
|
3
|
+
#### Breaking changes
|
|
4
|
+
|
|
5
|
+
- Remove support for ruby 2.5
|
|
6
|
+
- Remove the `activesupport` dependency. Add `gem 'activesupport'` to your Gemfile if you required ActiveSupport via this library.
|
|
7
|
+
|
|
8
|
+
#### Other
|
|
9
|
+
|
|
10
|
+
- Upgrade Faraday to v2 (thanks @Tao-Galasse!)
|
|
11
|
+
|
|
1
12
|
### 1.0.0 (2022-03-30)
|
|
2
13
|
|
|
3
14
|
#### New
|
data/Gemfile.lock
CHANGED
|
@@ -1,62 +1,36 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
notion-ruby-client (1.
|
|
5
|
-
activesupport (>= 6)
|
|
4
|
+
notion-ruby-client (1.1.0)
|
|
6
5
|
dotenv
|
|
7
|
-
faraday (>=
|
|
8
|
-
|
|
6
|
+
faraday (>= 2.0)
|
|
7
|
+
faraday-mashify (>= 0.1.1)
|
|
8
|
+
faraday-multipart (>= 1.0.4)
|
|
9
9
|
hashie (~> 5)
|
|
10
10
|
|
|
11
11
|
GEM
|
|
12
12
|
remote: http://rubygems.org/
|
|
13
13
|
specs:
|
|
14
|
-
activesupport (6.1.5)
|
|
15
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
16
|
-
i18n (>= 1.6, < 2)
|
|
17
|
-
minitest (>= 5.1)
|
|
18
|
-
tzinfo (~> 2.0)
|
|
19
|
-
zeitwerk (~> 2.3)
|
|
20
14
|
addressable (2.8.0)
|
|
21
15
|
public_suffix (>= 2.0.2, < 5.0)
|
|
22
16
|
ast (2.4.2)
|
|
23
|
-
concurrent-ruby (1.1.10)
|
|
24
17
|
crack (0.4.5)
|
|
25
18
|
rexml
|
|
26
19
|
diff-lcs (1.4.4)
|
|
27
|
-
dotenv (2.
|
|
28
|
-
faraday (
|
|
29
|
-
faraday-
|
|
30
|
-
faraday-em_synchrony (~> 1.0)
|
|
31
|
-
faraday-excon (~> 1.1)
|
|
32
|
-
faraday-httpclient (~> 1.0)
|
|
33
|
-
faraday-multipart (~> 1.0)
|
|
34
|
-
faraday-net_http (~> 1.0)
|
|
35
|
-
faraday-net_http_persistent (~> 1.0)
|
|
36
|
-
faraday-patron (~> 1.0)
|
|
37
|
-
faraday-rack (~> 1.0)
|
|
38
|
-
faraday-retry (~> 1.0)
|
|
20
|
+
dotenv (2.8.1)
|
|
21
|
+
faraday (2.7.4)
|
|
22
|
+
faraday-net_http (>= 2.0, < 3.1)
|
|
39
23
|
ruby2_keywords (>= 0.0.4)
|
|
40
|
-
faraday-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
faraday-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
faraday-net_http (1.0.1)
|
|
47
|
-
faraday-net_http_persistent (1.2.0)
|
|
48
|
-
faraday-patron (1.0.0)
|
|
49
|
-
faraday-rack (1.0.0)
|
|
50
|
-
faraday-retry (1.0.3)
|
|
51
|
-
faraday_middleware (1.2.0)
|
|
52
|
-
faraday (~> 1.0)
|
|
24
|
+
faraday-mashify (0.1.1)
|
|
25
|
+
faraday (~> 2.0)
|
|
26
|
+
hashie
|
|
27
|
+
faraday-multipart (1.0.4)
|
|
28
|
+
multipart-post (~> 2)
|
|
29
|
+
faraday-net_http (3.0.2)
|
|
53
30
|
hashdiff (1.0.1)
|
|
54
31
|
hashie (5.0.0)
|
|
55
|
-
i18n (1.10.0)
|
|
56
|
-
concurrent-ruby (~> 1.0)
|
|
57
32
|
jaro_winkler (1.5.4)
|
|
58
|
-
|
|
59
|
-
multipart-post (2.1.1)
|
|
33
|
+
multipart-post (2.3.0)
|
|
60
34
|
parallel (1.20.1)
|
|
61
35
|
parser (3.0.1.1)
|
|
62
36
|
ast (~> 2.4.1)
|
|
@@ -92,15 +66,12 @@ GEM
|
|
|
92
66
|
ruby-progressbar (1.11.0)
|
|
93
67
|
ruby2_keywords (0.0.5)
|
|
94
68
|
timecop (0.9.4)
|
|
95
|
-
tzinfo (2.0.4)
|
|
96
|
-
concurrent-ruby (~> 1.0)
|
|
97
69
|
unicode-display_width (1.7.0)
|
|
98
70
|
vcr (6.0.0)
|
|
99
71
|
webmock (3.13.0)
|
|
100
72
|
addressable (>= 2.3.6)
|
|
101
73
|
crack (>= 0.3.2)
|
|
102
74
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
103
|
-
zeitwerk (2.5.4)
|
|
104
75
|
|
|
105
76
|
PLATFORMS
|
|
106
77
|
arm64-darwin-20
|
data/README.md
CHANGED
|
@@ -129,9 +129,9 @@ client.database_query(database_id: 'e383bcee-e0d8-4564-9c63-900d307abdb0') do |p
|
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
# Filter and sort the database
|
|
132
|
-
|
|
132
|
+
sorts = [
|
|
133
133
|
{
|
|
134
|
-
'
|
|
134
|
+
'timestamp': 'created_time',
|
|
135
135
|
'direction': 'ascending'
|
|
136
136
|
}
|
|
137
137
|
]
|
|
@@ -151,7 +151,7 @@ filter = {
|
|
|
151
151
|
}
|
|
152
152
|
]
|
|
153
153
|
}
|
|
154
|
-
client.database_query(database_id: 'e383bcee-e0d8-4564-9c63-900d307abdb0',
|
|
154
|
+
client.database_query(database_id: 'e383bcee-e0d8-4564-9c63-900d307abdb0', sorts: sorts, filter: filter)
|
|
155
155
|
```
|
|
156
156
|
|
|
157
157
|
See [Pagination](#pagination) for details about how to iterate through the list.
|
|
@@ -273,7 +273,7 @@ See the full endpoint documentation on [Notion Developers](https://developers.no
|
|
|
273
273
|
|
|
274
274
|
Creates a new page in the specified database or as a child of an existing page.
|
|
275
275
|
|
|
276
|
-
If the parent is a database, the [property values](https://developers.notion.com/reference-link/page-property-
|
|
276
|
+
If the parent is a database, the [property values](https://developers.notion.com/reference-link/page-property-values) of the new page in the properties parameter must conform to the parent [database](https://developers.notion.com/reference-link/database)'s property schema.
|
|
277
277
|
|
|
278
278
|
If the parent is a page, the only valid property is `title`.
|
|
279
279
|
|
|
@@ -314,14 +314,14 @@ children = [
|
|
|
314
314
|
'type': 'heading_2',
|
|
315
315
|
'heading_2': {
|
|
316
316
|
'rich_text': [{
|
|
317
|
-
'type
|
|
317
|
+
'type': 'text',
|
|
318
318
|
'text': { 'content': 'Lacinato kale' }
|
|
319
319
|
}]
|
|
320
320
|
}
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
'object': 'block',
|
|
324
|
-
'type
|
|
324
|
+
'type': 'paragraph',
|
|
325
325
|
'paragraph': {
|
|
326
326
|
'rich_text': [
|
|
327
327
|
{
|
|
@@ -28,8 +28,9 @@ module Notion
|
|
|
28
28
|
# updated. Currently only text (for supported block types)
|
|
29
29
|
# and checked (for to_do blocks) fields can be updated.
|
|
30
30
|
def update_block(options = {})
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
block_id = options.delete(:block_id)
|
|
32
|
+
throw ArgumentError.new('Required arguments :block_id missing') if block_id.nil?
|
|
33
|
+
patch("blocks/#{block_id}", options)
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
#
|
|
@@ -67,7 +68,8 @@ module Notion
|
|
|
67
68
|
yield page
|
|
68
69
|
end
|
|
69
70
|
else
|
|
70
|
-
|
|
71
|
+
block_id = options.delete(:block_id)
|
|
72
|
+
get("blocks/#{block_id}/children", options)
|
|
71
73
|
end
|
|
72
74
|
end
|
|
73
75
|
|
|
@@ -88,8 +90,9 @@ module Notion
|
|
|
88
90
|
# @option options [[Object]] :children
|
|
89
91
|
# Children blocks to append
|
|
90
92
|
def block_append_children(options = {})
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
block_id = options.delete(:block_id)
|
|
94
|
+
throw ArgumentError.new('Required arguments :block_id missing') if block_id.nil?
|
|
95
|
+
patch("blocks/#{block_id}/children", options)
|
|
93
96
|
end
|
|
94
97
|
end
|
|
95
98
|
end
|
|
@@ -40,7 +40,8 @@ module Notion
|
|
|
40
40
|
yield page
|
|
41
41
|
end
|
|
42
42
|
else
|
|
43
|
-
|
|
43
|
+
database_id = options.delete(:database_id)
|
|
44
|
+
post("databases/#{database_id}/query", options)
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
|
|
@@ -84,8 +85,9 @@ module Notion
|
|
|
84
85
|
# the name of the database property and the value is a property schema object.
|
|
85
86
|
#
|
|
86
87
|
def update_database(options = {})
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
database_id = options.delete(:database_id)
|
|
89
|
+
throw ArgumentError.new('Required arguments :database_id missing') if database_id.nil?
|
|
90
|
+
patch("databases/#{database_id}", options)
|
|
89
91
|
end
|
|
90
92
|
|
|
91
93
|
#
|
|
@@ -60,8 +60,9 @@ module Notion
|
|
|
60
60
|
# appears in Notion, or property ID. value object Object containing a value
|
|
61
61
|
# specific to the property type, e.g. {"checkbox": true}.
|
|
62
62
|
def update_page(options = {})
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
page_id = options.delete(:page_id)
|
|
64
|
+
throw ArgumentError.new('Required argument :page_id missing') if page_id.nil?
|
|
65
|
+
patch("pages/#{page_id}", options)
|
|
65
66
|
end
|
|
66
67
|
|
|
67
68
|
#
|
data/lib/notion/config.rb
CHANGED
|
@@ -24,8 +24,8 @@ module Notion
|
|
|
24
24
|
def reset
|
|
25
25
|
self.endpoint = 'https://api.notion.com/v1'
|
|
26
26
|
self.user_agent = "Notion Ruby Client/#{Notion::VERSION}"
|
|
27
|
-
self.ca_path =
|
|
28
|
-
self.ca_file =
|
|
27
|
+
self.ca_path = nil
|
|
28
|
+
self.ca_file = nil
|
|
29
29
|
self.token = nil
|
|
30
30
|
self.proxy = nil
|
|
31
31
|
self.logger = nil
|
|
@@ -21,11 +21,11 @@ module Notion
|
|
|
21
21
|
options[:request] = request_options if request_options.any?
|
|
22
22
|
|
|
23
23
|
::Faraday::Connection.new(endpoint, options) do |connection|
|
|
24
|
-
connection.use ::Faraday::
|
|
24
|
+
connection.use ::Faraday::Multipart::Middleware
|
|
25
25
|
connection.use ::Faraday::Request::UrlEncoded
|
|
26
26
|
connection.use ::Notion::Faraday::Response::RaiseError
|
|
27
|
-
connection.use ::
|
|
28
|
-
connection.use ::
|
|
27
|
+
connection.use ::Faraday::Mashify::Middleware, mash_class: Notion::Messages::Message
|
|
28
|
+
connection.use ::Faraday::Response::Json
|
|
29
29
|
connection.use ::Notion::Faraday::Response::WrapError
|
|
30
30
|
connection.response :logger, logger if logger
|
|
31
31
|
connection.adapter adapter
|
|
@@ -34,4 +34,4 @@ module Notion
|
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
|
-
end
|
|
37
|
+
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
module Notion
|
|
3
3
|
module Faraday
|
|
4
4
|
module Response
|
|
5
|
-
class RaiseError < ::Faraday::Response::
|
|
5
|
+
class RaiseError < ::Faraday::Response::Json
|
|
6
6
|
def on_complete(env)
|
|
7
7
|
raise Notion::Api::Errors::TooManyRequests, env.response if env.status == 429
|
|
8
8
|
|
|
@@ -28,4 +28,4 @@ module Notion
|
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
|
-
end
|
|
31
|
+
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
module Notion
|
|
3
3
|
module Faraday
|
|
4
4
|
module Response
|
|
5
|
-
class WrapError < ::Faraday::Response::
|
|
5
|
+
class WrapError < ::Faraday::Response::Json
|
|
6
6
|
UNAVAILABLE_ERROR_STATUSES = (500..599).freeze
|
|
7
7
|
|
|
8
8
|
def on_complete(env)
|
|
@@ -19,4 +19,4 @@ module Notion
|
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
|
-
end
|
|
22
|
+
end
|
data/lib/notion/version.rb
CHANGED
data/lib/notion-ruby-client.rb
CHANGED
data/notion-ruby-client.gemspec
CHANGED
|
@@ -15,10 +15,10 @@ Gem::Specification.new do |s|
|
|
|
15
15
|
s.homepage = 'http://github.com/orbit-love/notion-ruby-client'
|
|
16
16
|
s.licenses = ['MIT']
|
|
17
17
|
s.summary = 'Notion API client for Ruby.'
|
|
18
|
-
s.add_dependency 'activesupport', '>= 6'
|
|
19
18
|
s.add_dependency 'dotenv'
|
|
20
|
-
s.add_dependency 'faraday', '>=
|
|
21
|
-
s.add_dependency '
|
|
19
|
+
s.add_dependency 'faraday', '>= 2.0'
|
|
20
|
+
s.add_dependency 'faraday-mashify', '>= 0.1.1'
|
|
21
|
+
s.add_dependency 'faraday-multipart', '>= 1.0.4'
|
|
22
22
|
s.add_dependency 'hashie', '~> 5'
|
|
23
23
|
s.add_development_dependency 'rake', '~> 13'
|
|
24
24
|
s.add_development_dependency 'rspec'
|
metadata
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: notion-ruby-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nicolas Goutay
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-02-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: dotenv
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: faraday
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
33
|
+
version: '2.0'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
40
|
+
version: '2.0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: faraday
|
|
42
|
+
name: faraday-mashify
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 0.1.1
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 0.1.1
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: faraday-multipart
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 1.0.4
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 1.0.4
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: hashie
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -202,6 +202,7 @@ files:
|
|
|
202
202
|
- ".devcontainer/boot.sh"
|
|
203
203
|
- ".devcontainer/devcontainer.json"
|
|
204
204
|
- ".github/workflows/ci.yml"
|
|
205
|
+
- ".github/workflows/rubocop.yml"
|
|
205
206
|
- ".gitignore"
|
|
206
207
|
- ".rspec"
|
|
207
208
|
- ".rubocop.yml"
|