notion-ruby-client 0.0.7 → 1.0.0.pre.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.devcontainer/Dockerfile +5 -0
- data/.devcontainer/boot.sh +1 -0
- data/.devcontainer/devcontainer.json +30 -0
- data/.github/workflows/ci.yml +1 -0
- data/.gitignore +7 -0
- data/.rubocop.yml +9 -0
- data/CHANGELOG.md +42 -0
- data/CONTRIBUTING.md +51 -0
- data/Gemfile.lock +39 -12
- data/README.md +377 -79
- data/bin/console +31 -0
- data/lib/notion/api/endpoints/blocks.rb +51 -7
- data/lib/notion/api/endpoints/databases.rb +60 -31
- data/lib/notion/api/endpoints/pages.rb +25 -8
- data/lib/notion/api/endpoints/search.rb +41 -0
- data/lib/notion/api/endpoints/users.rb +14 -3
- data/lib/notion/api/endpoints.rb +3 -1
- data/lib/notion/api/errors/too_many_requests.rb +15 -0
- data/lib/notion/api/errors.rb +0 -2
- data/lib/notion/config.rb +2 -0
- data/lib/notion/pagination/cursor.rb +5 -2
- data/lib/notion/version.rb +2 -2
- data/lib/notion-ruby-client.rb +2 -0
- data/notion-ruby-client.gemspec +4 -2
- data/spec/fixtures/notion/block.yml +146 -0
- data/spec/fixtures/notion/block_append_children.yml +76 -62
- data/spec/fixtures/notion/block_children.yml +80 -65
- data/spec/fixtures/notion/create_database.yml +149 -0
- data/spec/fixtures/notion/create_page.yml +76 -61
- data/spec/fixtures/notion/database.yml +78 -61
- data/spec/fixtures/notion/database_query.yml +81 -62
- data/spec/fixtures/notion/delete_block.yml +145 -0
- data/spec/fixtures/notion/page.yml +78 -61
- data/spec/fixtures/notion/page_property_item.yml +143 -0
- data/spec/fixtures/notion/paginated_block_children.yml +296 -242
- data/spec/fixtures/notion/paginated_database_query.yml +79 -62
- data/spec/fixtures/notion/paginated_databases_list.yml +78 -61
- data/spec/fixtures/notion/paginated_search.yml +301 -0
- data/spec/fixtures/notion/paginated_users_list.yml +143 -130
- data/spec/fixtures/notion/search.yml +160 -0
- data/spec/fixtures/notion/search_with_query.yml +152 -0
- data/spec/fixtures/notion/update_block.yml +148 -0
- data/spec/fixtures/notion/update_database.yml +152 -0
- data/spec/fixtures/notion/update_page.yml +79 -63
- data/spec/fixtures/notion/users.yml +69 -56
- data/spec/fixtures/notion/users_list.yml +143 -130
- data/spec/fixtures/notion/users_me.yml +144 -0
- data/spec/notion/api/endpoints/blocks_spec.rb +44 -12
- data/spec/notion/api/endpoints/databases_spec.rb +38 -17
- data/spec/notion/api/endpoints/pages_spec.rb +21 -13
- data/spec/notion/api/endpoints/search_spec.rb +26 -0
- data/spec/notion/api/endpoints/users_spec.rb +9 -4
- data/spec/notion/pagination/cursor_spec.rb +126 -0
- metadata +73 -19
- data/.rspec_status +0 -18
- data/notion-ruby-client-0.0.4.gem +0 -0
- data/scratchpad.rb +0 -22
- data/screenshots/create_notion_bot.png +0 -0
- data/spec/fixtures/notion/databases_list.yml +0 -133
@@ -1,133 +1,146 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
-
- request:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.notion.com/v1/users
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json; charset=utf-8
|
12
|
+
User-Agent:
|
13
|
+
- Notion Ruby Client/0.0.8
|
14
|
+
Authorization:
|
15
|
+
- Bearer <NOTION_API_TOKEN>
|
16
|
+
Notion-Version:
|
17
|
+
- "2022-02-22"
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Date:
|
26
|
+
- Sun, 29 Aug 2021 17:54:19 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
X-Dns-Prefetch-Control:
|
34
|
+
- "off"
|
35
|
+
X-Frame-Options:
|
36
|
+
- SAMEORIGIN
|
37
|
+
Strict-Transport-Security:
|
38
|
+
- max-age=5184000; includeSubDomains
|
39
|
+
X-Download-Options:
|
40
|
+
- noopen
|
41
|
+
X-Content-Type-Options:
|
42
|
+
- nosniff
|
43
|
+
X-Xss-Protection:
|
44
|
+
- 1; mode=block
|
45
|
+
Referrer-Policy:
|
46
|
+
- same-origin
|
47
|
+
Content-Security-Policy:
|
48
|
+
- "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://gist.github.com
|
49
|
+
https://apis.google.com https://api.amplitude.com https://widget.intercom.io
|
50
|
+
https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com
|
51
|
+
https://analytics.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
|
52
|
+
https://js.stripe.com https://embed.typeform.com https://admin.typeform.com
|
53
|
+
https://public.profitwell.com js.sentry-cdn.com https://js.chilipiper.com
|
54
|
+
https://platform.twitter.com https://cdn.syndication.twimg.com https://www.googletagmanager.com
|
55
|
+
https://x.clearbitjs.com https://client-registry.mutinycdn.com https://client.mutinycdn.com/
|
56
|
+
https://user-data.mutinycdn.com; connect-src 'self' https://msgstore.www.notion.so
|
57
|
+
wss://msgstore.www.notion.so ws://localhost:* https://notion-emojis.s3-us-west-2.amazonaws.com
|
58
|
+
https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
|
59
|
+
https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com
|
60
|
+
https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com
|
61
|
+
https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
|
62
|
+
https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
|
63
|
+
https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
|
64
|
+
https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
|
65
|
+
https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
|
66
|
+
https://user-data.mutinycdn.com https://api-v2.mutinyhq.io https://api.statuspage.io
|
67
|
+
https://pgncd.notion.so; font-src 'self' data: https://cdnjs.cloudflare.com
|
68
|
+
https://js.intercomcdn.com; img-src 'self' data: blob: https: https://platform.twitter.com
|
69
|
+
https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com
|
70
|
+
www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com
|
71
|
+
https://github.githubassets.com https://js.chilipiper.com https://platform.twitter.com
|
72
|
+
https://ton.twimg.com; frame-src https: http:; media-src https: http:"
|
73
|
+
X-Content-Security-Policy:
|
74
|
+
- "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://gist.github.com
|
75
|
+
https://apis.google.com https://api.amplitude.com https://widget.intercom.io
|
76
|
+
https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com
|
77
|
+
https://analytics.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
|
78
|
+
https://js.stripe.com https://embed.typeform.com https://admin.typeform.com
|
79
|
+
https://public.profitwell.com js.sentry-cdn.com https://js.chilipiper.com
|
80
|
+
https://platform.twitter.com https://cdn.syndication.twimg.com https://www.googletagmanager.com
|
81
|
+
https://x.clearbitjs.com https://client-registry.mutinycdn.com https://client.mutinycdn.com/
|
82
|
+
https://user-data.mutinycdn.com; connect-src 'self' https://msgstore.www.notion.so
|
83
|
+
wss://msgstore.www.notion.so ws://localhost:* https://notion-emojis.s3-us-west-2.amazonaws.com
|
84
|
+
https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
|
85
|
+
https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com
|
86
|
+
https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com
|
87
|
+
https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
|
88
|
+
https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
|
89
|
+
https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
|
90
|
+
https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
|
91
|
+
https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
|
92
|
+
https://user-data.mutinycdn.com https://api-v2.mutinyhq.io https://api.statuspage.io
|
93
|
+
https://pgncd.notion.so; font-src 'self' data: https://cdnjs.cloudflare.com
|
94
|
+
https://js.intercomcdn.com; img-src 'self' data: blob: https: https://platform.twitter.com
|
95
|
+
https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com
|
96
|
+
www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com
|
97
|
+
https://github.githubassets.com https://js.chilipiper.com https://platform.twitter.com
|
98
|
+
https://ton.twimg.com; frame-src https: http:; media-src https: http:"
|
99
|
+
X-Webkit-Csp:
|
100
|
+
- "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://gist.github.com
|
101
|
+
https://apis.google.com https://api.amplitude.com https://widget.intercom.io
|
102
|
+
https://js.intercomcdn.com https://logs-01.loggly.com https://cdn.segment.com
|
103
|
+
https://analytics.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
|
104
|
+
https://js.stripe.com https://embed.typeform.com https://admin.typeform.com
|
105
|
+
https://public.profitwell.com js.sentry-cdn.com https://js.chilipiper.com
|
106
|
+
https://platform.twitter.com https://cdn.syndication.twimg.com https://www.googletagmanager.com
|
107
|
+
https://x.clearbitjs.com https://client-registry.mutinycdn.com https://client.mutinycdn.com/
|
108
|
+
https://user-data.mutinycdn.com; connect-src 'self' https://msgstore.www.notion.so
|
109
|
+
wss://msgstore.www.notion.so ws://localhost:* https://notion-emojis.s3-us-west-2.amazonaws.com
|
110
|
+
https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
|
111
|
+
https: http: https://api.amplitude.com https://api.embed.ly https://js.intercomcdn.com
|
112
|
+
https://api-iam.intercom.io wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com
|
113
|
+
https://cdn.segment.com https://api.segment.io https://analytics.pgncs.notion.so
|
114
|
+
https://api.pgncs.notion.so https://o324374.ingest.sentry.io https://checkout.stripe.com
|
115
|
+
https://js.stripe.com https://cdn.contentful.com https://preview.contentful.com
|
116
|
+
https://images.ctfassets.net https://www2.profitwell.com https://tracking.chilipiper.com
|
117
|
+
https://api.chilipiper.com https://api.unsplash.com https://boards-api.greenhouse.io
|
118
|
+
https://user-data.mutinycdn.com https://api-v2.mutinyhq.io https://api.statuspage.io
|
119
|
+
https://pgncd.notion.so; font-src 'self' data: https://cdnjs.cloudflare.com
|
120
|
+
https://js.intercomcdn.com; img-src 'self' data: blob: https: https://platform.twitter.com
|
121
|
+
https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com
|
122
|
+
www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com
|
123
|
+
https://github.githubassets.com https://js.chilipiper.com https://platform.twitter.com
|
124
|
+
https://ton.twimg.com; frame-src https: http:; media-src https: http:"
|
125
|
+
Set-Cookie:
|
126
|
+
- notion_browser_id=785222cc-f76b-43b8-bc0c-dfb20063afb4; Domain=www.notion.so;
|
127
|
+
Path=/; Expires=Wed, 07 May 2053 19:40:59 GMT; Secure
|
128
|
+
Etag:
|
129
|
+
- W/"1adb-S6ZkF0qf8ZYoFRnEMre0eWAonCA"
|
130
|
+
Vary:
|
131
|
+
- Accept-Encoding
|
132
|
+
Cf-Cache-Status:
|
133
|
+
- DYNAMIC
|
134
|
+
Expect-Ct:
|
135
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
136
|
+
Server:
|
137
|
+
- cloudflare
|
138
|
+
Cf-Ray:
|
139
|
+
- 6867a4d52ed94055-CDG
|
140
|
+
body:
|
141
|
+
encoding: UTF-8
|
142
|
+
string:
|
143
|
+
'{"object":"list","results":[{"object":"user","id":"a8da8d30-c858-4c3d-87ad-3f2d477bd98d","name":"Nicolas
|
144
|
+
Goutay","avatar_url":"https://s3-us-west-2.amazonaws.com/public.notion-static.com/5f9b5c65-a7ed-4fc5-983a-6c999b7c2208/Copy_of_P1222454.jpg","type":"person","person":{"email":"nicolas@orbit.love"}}],"next_cursor":null,"has_more":false}'
|
145
|
+
recorded_at: Sun, 29 Aug 2021 17:54:19 GMT
|
133
146
|
recorded_with: VCR 6.0.0
|
@@ -0,0 +1,144 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.notion.com/v1/users/me
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json; charset=utf-8
|
12
|
+
User-Agent:
|
13
|
+
- Notion Ruby Client/0.1.0-beta1
|
14
|
+
Authorization:
|
15
|
+
- Bearer <NOTION_API_TOKEN>
|
16
|
+
Notion-Version:
|
17
|
+
- '2021-08-16'
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Date:
|
26
|
+
- Sun, 20 Mar 2022 16:51:32 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Transfer-Encoding:
|
30
|
+
- chunked
|
31
|
+
Connection:
|
32
|
+
- keep-alive
|
33
|
+
Set-Cookie:
|
34
|
+
- notion_browser_id=9756e0c2-e73b-43bd-8775-5e1f6541cbd1; Domain=www.notion.so;
|
35
|
+
Path=/; Expires=Mon, 20 Mar 2023 16:51:32 GMT; Secure
|
36
|
+
- notion_check_cookie_consent=true; Domain=www.notion.so; Path=/; Expires=Mon,
|
37
|
+
21 Mar 2022 16:51:32 GMT; Secure
|
38
|
+
X-Dns-Prefetch-Control:
|
39
|
+
- 'off'
|
40
|
+
X-Frame-Options:
|
41
|
+
- SAMEORIGIN
|
42
|
+
Strict-Transport-Security:
|
43
|
+
- max-age=5184000; includeSubDomains
|
44
|
+
X-Download-Options:
|
45
|
+
- noopen
|
46
|
+
X-Content-Type-Options:
|
47
|
+
- nosniff
|
48
|
+
X-Xss-Protection:
|
49
|
+
- 1; mode=block
|
50
|
+
Referrer-Policy:
|
51
|
+
- same-origin
|
52
|
+
Content-Security-Policy:
|
53
|
+
- 'script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' https://gist.github.com
|
54
|
+
https://apis.google.com https://cdn.amplitude.com https://api.amplitude.com
|
55
|
+
https://hkfxbbdzib.notion.so https://widget.intercom.io https://js.intercomcdn.com
|
56
|
+
https://logs-01.loggly.com https://cdn.segment.com https://analytics.pgncs.notion.so
|
57
|
+
https://o324374.ingest.sentry.io https://checkout.stripe.com https://js.stripe.com
|
58
|
+
https://embed.typeform.com https://admin.typeform.com https://public.profitwell.com
|
59
|
+
js.sentry-cdn.com https://js.chilipiper.com https://platform.twitter.com https://cdn.syndication.twimg.com;
|
60
|
+
connect-src ''self'' https://msgstore.www.notion.so wss://msgstore.www.notion.so
|
61
|
+
ws://localhost:* ws://127.0.0.1:* https://notion-emojis.s3-us-west-2.amazonaws.com
|
62
|
+
https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
|
63
|
+
https: http: https://cdn.amplitude.com https://api.amplitude.com https://hkfxbbdzib.notion.so
|
64
|
+
https://www.notion.so https://api.embed.ly https://js.intercomcdn.com https://api-iam.intercom.io
|
65
|
+
wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com https://cdn.segment.com
|
66
|
+
https://api.segment.io https://analytics.pgncs.notion.so https://api.pgncs.notion.so
|
67
|
+
https://o324374.ingest.sentry.io https://checkout.stripe.com https://js.stripe.com
|
68
|
+
https://cdn.contentful.com https://preview.contentful.com https://images.ctfassets.net
|
69
|
+
https://www2.profitwell.com https://tracking.chilipiper.com https://api.chilipiper.com
|
70
|
+
https://api.unsplash.com https://boards-api.greenhouse.io https://api.statuspage.io
|
71
|
+
https://pgncd.notion.so https://api.statsig.com; font-src ''self'' data: https://cdnjs.cloudflare.com
|
72
|
+
https://js.intercomcdn.com; img-src ''self'' data: blob: https: https://platform.twitter.com
|
73
|
+
https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com;
|
74
|
+
style-src ''self'' ''unsafe-inline'' https://cdnjs.cloudflare.com https://github.githubassets.com
|
75
|
+
https://js.chilipiper.com https://platform.twitter.com https://ton.twimg.com;
|
76
|
+
frame-src https: http:; media-src https: http:'
|
77
|
+
X-Content-Security-Policy:
|
78
|
+
- 'script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' https://gist.github.com
|
79
|
+
https://apis.google.com https://cdn.amplitude.com https://api.amplitude.com
|
80
|
+
https://hkfxbbdzib.notion.so https://widget.intercom.io https://js.intercomcdn.com
|
81
|
+
https://logs-01.loggly.com https://cdn.segment.com https://analytics.pgncs.notion.so
|
82
|
+
https://o324374.ingest.sentry.io https://checkout.stripe.com https://js.stripe.com
|
83
|
+
https://embed.typeform.com https://admin.typeform.com https://public.profitwell.com
|
84
|
+
js.sentry-cdn.com https://js.chilipiper.com https://platform.twitter.com https://cdn.syndication.twimg.com;
|
85
|
+
connect-src ''self'' https://msgstore.www.notion.so wss://msgstore.www.notion.so
|
86
|
+
ws://localhost:* ws://127.0.0.1:* https://notion-emojis.s3-us-west-2.amazonaws.com
|
87
|
+
https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
|
88
|
+
https: http: https://cdn.amplitude.com https://api.amplitude.com https://hkfxbbdzib.notion.so
|
89
|
+
https://www.notion.so https://api.embed.ly https://js.intercomcdn.com https://api-iam.intercom.io
|
90
|
+
wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com https://cdn.segment.com
|
91
|
+
https://api.segment.io https://analytics.pgncs.notion.so https://api.pgncs.notion.so
|
92
|
+
https://o324374.ingest.sentry.io https://checkout.stripe.com https://js.stripe.com
|
93
|
+
https://cdn.contentful.com https://preview.contentful.com https://images.ctfassets.net
|
94
|
+
https://www2.profitwell.com https://tracking.chilipiper.com https://api.chilipiper.com
|
95
|
+
https://api.unsplash.com https://boards-api.greenhouse.io https://api.statuspage.io
|
96
|
+
https://pgncd.notion.so https://api.statsig.com; font-src ''self'' data: https://cdnjs.cloudflare.com
|
97
|
+
https://js.intercomcdn.com; img-src ''self'' data: blob: https: https://platform.twitter.com
|
98
|
+
https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com;
|
99
|
+
style-src ''self'' ''unsafe-inline'' https://cdnjs.cloudflare.com https://github.githubassets.com
|
100
|
+
https://js.chilipiper.com https://platform.twitter.com https://ton.twimg.com;
|
101
|
+
frame-src https: http:; media-src https: http:'
|
102
|
+
X-Webkit-Csp:
|
103
|
+
- 'script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' https://gist.github.com
|
104
|
+
https://apis.google.com https://cdn.amplitude.com https://api.amplitude.com
|
105
|
+
https://hkfxbbdzib.notion.so https://widget.intercom.io https://js.intercomcdn.com
|
106
|
+
https://logs-01.loggly.com https://cdn.segment.com https://analytics.pgncs.notion.so
|
107
|
+
https://o324374.ingest.sentry.io https://checkout.stripe.com https://js.stripe.com
|
108
|
+
https://embed.typeform.com https://admin.typeform.com https://public.profitwell.com
|
109
|
+
js.sentry-cdn.com https://js.chilipiper.com https://platform.twitter.com https://cdn.syndication.twimg.com;
|
110
|
+
connect-src ''self'' https://msgstore.www.notion.so wss://msgstore.www.notion.so
|
111
|
+
ws://localhost:* ws://127.0.0.1:* https://notion-emojis.s3-us-west-2.amazonaws.com
|
112
|
+
https://s3-us-west-2.amazonaws.com https://s3.us-west-2.amazonaws.com https://notion-production-snapshots-2.s3.us-west-2.amazonaws.com
|
113
|
+
https: http: https://cdn.amplitude.com https://api.amplitude.com https://hkfxbbdzib.notion.so
|
114
|
+
https://www.notion.so https://api.embed.ly https://js.intercomcdn.com https://api-iam.intercom.io
|
115
|
+
wss://nexus-websocket-a.intercom.io https://logs-01.loggly.com https://cdn.segment.com
|
116
|
+
https://api.segment.io https://analytics.pgncs.notion.so https://api.pgncs.notion.so
|
117
|
+
https://o324374.ingest.sentry.io https://checkout.stripe.com https://js.stripe.com
|
118
|
+
https://cdn.contentful.com https://preview.contentful.com https://images.ctfassets.net
|
119
|
+
https://www2.profitwell.com https://tracking.chilipiper.com https://api.chilipiper.com
|
120
|
+
https://api.unsplash.com https://boards-api.greenhouse.io https://api.statuspage.io
|
121
|
+
https://pgncd.notion.so https://api.statsig.com; font-src ''self'' data: https://cdnjs.cloudflare.com
|
122
|
+
https://js.intercomcdn.com; img-src ''self'' data: blob: https: https://platform.twitter.com
|
123
|
+
https://syndication.twitter.com https://pbs.twimg.com https://ton.twimg.com;
|
124
|
+
style-src ''self'' ''unsafe-inline'' https://cdnjs.cloudflare.com https://github.githubassets.com
|
125
|
+
https://js.chilipiper.com https://platform.twitter.com https://ton.twimg.com;
|
126
|
+
frame-src https: http:; media-src https: http:'
|
127
|
+
Etag:
|
128
|
+
- W/"118-qIsZmpzR5IxZzL6qzKmaLGWv15M"
|
129
|
+
Vary:
|
130
|
+
- Accept-Encoding
|
131
|
+
Cf-Cache-Status:
|
132
|
+
- DYNAMIC
|
133
|
+
Expect-Ct:
|
134
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
135
|
+
Server:
|
136
|
+
- cloudflare
|
137
|
+
Cf-Ray:
|
138
|
+
- 6eeff3fabfe2e920-MRS
|
139
|
+
body:
|
140
|
+
encoding: UTF-8
|
141
|
+
string: '{"object":"user","id":"c1464b55-9bec-417d-9392-dc687623ab28","name":"Notion
|
142
|
+
to Orbit","avatar_url":"https://s3-us-west-2.amazonaws.com/public.notion-static.com/f744192d-2a9e-4154-9a1f-1204343d6b52/orbit-logo.png","type":"bot","bot":{"owner":{"type":"workspace","workspace":true}}}'
|
143
|
+
recorded_at: Sun, 20 Mar 2022 16:51:32 GMT
|
144
|
+
recorded_with: VCR 6.0.0
|
@@ -3,38 +3,70 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
RSpec.describe Notion::Api::Endpoints::Blocks do
|
5
5
|
let(:client) { Notion::Client.new }
|
6
|
-
let(:
|
6
|
+
let(:block_id) { '32af3324-ba02-4516-ae88-5728a4d569f4' }
|
7
7
|
let(:children) do
|
8
8
|
[
|
9
9
|
{
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
'object': 'block',
|
11
|
+
'type': 'paragraph',
|
12
|
+
'paragraph': {
|
13
|
+
'rich_text': [
|
14
|
+
{
|
15
|
+
'type': 'text',
|
16
|
+
'text': {
|
17
|
+
'content': 'Another children'
|
18
|
+
}
|
19
|
+
}
|
20
|
+
]
|
14
21
|
}
|
15
22
|
}
|
16
23
|
]
|
17
24
|
end
|
18
25
|
|
19
26
|
context 'blocks' do
|
27
|
+
it 'retrieves', vcr: { cassette_name: 'block' } do
|
28
|
+
response = client.block(block_id: block_id)
|
29
|
+
expect(response).not_to be_empty
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'updates', vcr: { cassette_name: 'update_block' } do
|
33
|
+
to_do = {
|
34
|
+
'text': [
|
35
|
+
{
|
36
|
+
'text': { 'content': 'A todo' }
|
37
|
+
}
|
38
|
+
],
|
39
|
+
'checked': true
|
40
|
+
}
|
41
|
+
to_do_block_id = '6e842658-eb3d-4ea9-9bbf-e86104151729'
|
42
|
+
response = client.update_block(block_id: to_do_block_id, 'to_do' => to_do)
|
43
|
+
expect(response.id).to eql to_do_block_id
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'deletes', vcr: { cassette_name: 'delete_block' } do
|
47
|
+
block_id = '77b5d405a5e840229c70b7766d1e8c4b'
|
48
|
+
response = client.delete_block(block_id: block_id)
|
49
|
+
expect(response).not_to be_empty
|
50
|
+
end
|
51
|
+
|
20
52
|
it 'children', vcr: { cassette_name: 'block_children' } do
|
21
|
-
response = client.block_children(
|
53
|
+
response = client.block_children(block_id: block_id)
|
22
54
|
expect(response.results.length).to be >= 1
|
23
|
-
expect(response.results[0].
|
24
|
-
expect(response.results[1].paragraph.
|
55
|
+
expect(response.results[0].paragraph.rich_text.first.plain_text).to eql 'The first child'
|
56
|
+
expect(response.results[1].paragraph.rich_text.first.plain_text).to eql 'The second child'
|
25
57
|
end
|
26
58
|
|
27
59
|
it 'paginated children', vcr: { cassette_name: 'paginated_block_children' } do
|
28
60
|
children = []
|
29
|
-
client.block_children(
|
61
|
+
client.block_children(block_id: block_id, page_size: 1) do |page|
|
30
62
|
children.concat page.results
|
31
63
|
end
|
32
64
|
expect(children.size).to be >= 1
|
33
65
|
end
|
34
66
|
|
35
67
|
it 'appends', vcr: { cassette_name: 'block_append_children' } do
|
36
|
-
response = client.block_append_children(
|
37
|
-
expect(response.
|
68
|
+
response = client.block_append_children(block_id: block_id, children: children)
|
69
|
+
expect(response.results.first.type).to eql 'paragraph'
|
38
70
|
end
|
39
71
|
end
|
40
|
-
end
|
72
|
+
end
|
@@ -3,38 +3,59 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
RSpec.describe Notion::Api::Endpoints::Databases do
|
5
5
|
let(:client) { Notion::Client.new }
|
6
|
-
let(:database_id) { '
|
6
|
+
let(:database_id) { 'dd428e9dd3fe4171870da7a1902c748b' }
|
7
|
+
let(:page_id) { 'c7fd1abe811444eabe779632ea33e581' }
|
8
|
+
let(:title) do
|
9
|
+
[
|
10
|
+
{
|
11
|
+
"text": {
|
12
|
+
"content": 'Orbit 💜 Notion'
|
13
|
+
}
|
14
|
+
}
|
15
|
+
]
|
16
|
+
end
|
17
|
+
let(:properties) do
|
18
|
+
{
|
19
|
+
"Name": {
|
20
|
+
"title": {}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
end
|
7
24
|
|
8
25
|
context 'databases' do
|
9
|
-
it 'retrieves', vcr: { cassette_name: 'database' } do
|
10
|
-
response = client.database(id: database_id)
|
11
|
-
expect(response.title.first.plain_text).to eql 'A Notion database'
|
12
|
-
end
|
13
|
-
|
14
26
|
it 'queries', vcr: { cassette_name: 'database_query' } do
|
15
|
-
response = client.database_query(
|
27
|
+
response = client.database_query(database_id: database_id)
|
16
28
|
expect(response.results.length).to be >= 1
|
17
29
|
end
|
18
30
|
|
19
31
|
it 'paginated queries', vcr: { cassette_name: 'paginated_database_query' } do
|
20
32
|
pages = []
|
21
|
-
client.database_query(
|
33
|
+
client.database_query(database_id: database_id, page_size: 1) do |page|
|
22
34
|
pages.concat page.results
|
23
35
|
end
|
24
36
|
expect(pages.size).to be >= 1
|
25
37
|
end
|
26
38
|
|
27
|
-
it '
|
28
|
-
response = client.
|
29
|
-
|
39
|
+
it 'creates', vcr: { cassette_name: 'create_database' } do
|
40
|
+
response = client.create_database(
|
41
|
+
parent: { page_id: page_id },
|
42
|
+
title: title,
|
43
|
+
properties: properties
|
44
|
+
)
|
45
|
+
expect(response.title.first.plain_text).to eql 'Orbit 💜 Notion'
|
30
46
|
end
|
31
47
|
|
32
|
-
it '
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
expect(
|
48
|
+
it 'updates', vcr: { cassette_name: 'update_database' } do
|
49
|
+
response = client.update_database(
|
50
|
+
database_id: database_id,
|
51
|
+
title: title
|
52
|
+
)
|
53
|
+
expect(response.title.first.plain_text).to eql 'Orbit 💜 Notion'
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'retrieves', vcr: { cassette_name: 'database' } do
|
57
|
+
response = client.database(database_id: database_id)
|
58
|
+
expect(response.title.first.plain_text).to eql 'Orbit 💜 Notion'
|
38
59
|
end
|
39
60
|
end
|
40
61
|
end
|