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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +5 -0
  3. data/.devcontainer/boot.sh +1 -0
  4. data/.devcontainer/devcontainer.json +30 -0
  5. data/.github/workflows/ci.yml +1 -0
  6. data/.gitignore +7 -0
  7. data/.rubocop.yml +9 -0
  8. data/CHANGELOG.md +42 -0
  9. data/CONTRIBUTING.md +51 -0
  10. data/Gemfile.lock +39 -12
  11. data/README.md +377 -79
  12. data/bin/console +31 -0
  13. data/lib/notion/api/endpoints/blocks.rb +51 -7
  14. data/lib/notion/api/endpoints/databases.rb +60 -31
  15. data/lib/notion/api/endpoints/pages.rb +25 -8
  16. data/lib/notion/api/endpoints/search.rb +41 -0
  17. data/lib/notion/api/endpoints/users.rb +14 -3
  18. data/lib/notion/api/endpoints.rb +3 -1
  19. data/lib/notion/api/errors/too_many_requests.rb +15 -0
  20. data/lib/notion/api/errors.rb +0 -2
  21. data/lib/notion/config.rb +2 -0
  22. data/lib/notion/pagination/cursor.rb +5 -2
  23. data/lib/notion/version.rb +2 -2
  24. data/lib/notion-ruby-client.rb +2 -0
  25. data/notion-ruby-client.gemspec +4 -2
  26. data/spec/fixtures/notion/block.yml +146 -0
  27. data/spec/fixtures/notion/block_append_children.yml +76 -62
  28. data/spec/fixtures/notion/block_children.yml +80 -65
  29. data/spec/fixtures/notion/create_database.yml +149 -0
  30. data/spec/fixtures/notion/create_page.yml +76 -61
  31. data/spec/fixtures/notion/database.yml +78 -61
  32. data/spec/fixtures/notion/database_query.yml +81 -62
  33. data/spec/fixtures/notion/delete_block.yml +145 -0
  34. data/spec/fixtures/notion/page.yml +78 -61
  35. data/spec/fixtures/notion/page_property_item.yml +143 -0
  36. data/spec/fixtures/notion/paginated_block_children.yml +296 -242
  37. data/spec/fixtures/notion/paginated_database_query.yml +79 -62
  38. data/spec/fixtures/notion/paginated_databases_list.yml +78 -61
  39. data/spec/fixtures/notion/paginated_search.yml +301 -0
  40. data/spec/fixtures/notion/paginated_users_list.yml +143 -130
  41. data/spec/fixtures/notion/search.yml +160 -0
  42. data/spec/fixtures/notion/search_with_query.yml +152 -0
  43. data/spec/fixtures/notion/update_block.yml +148 -0
  44. data/spec/fixtures/notion/update_database.yml +152 -0
  45. data/spec/fixtures/notion/update_page.yml +79 -63
  46. data/spec/fixtures/notion/users.yml +69 -56
  47. data/spec/fixtures/notion/users_list.yml +143 -130
  48. data/spec/fixtures/notion/users_me.yml +144 -0
  49. data/spec/notion/api/endpoints/blocks_spec.rb +44 -12
  50. data/spec/notion/api/endpoints/databases_spec.rb +38 -17
  51. data/spec/notion/api/endpoints/pages_spec.rb +21 -13
  52. data/spec/notion/api/endpoints/search_spec.rb +26 -0
  53. data/spec/notion/api/endpoints/users_spec.rb +9 -4
  54. data/spec/notion/pagination/cursor_spec.rb +126 -0
  55. metadata +73 -19
  56. data/.rspec_status +0 -18
  57. data/notion-ruby-client-0.0.4.gem +0 -0
  58. data/scratchpad.rb +0 -22
  59. data/screenshots/create_notion_bot.png +0 -0
  60. data/spec/fixtures/notion/databases_list.yml +0 -133
@@ -0,0 +1,143 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.notion.com/v1/pages/c7fd1abe-8114-44ea-be77-9632ea33e581/properties/%5BIFC
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 17:10:22 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=7e4e2467-91d3-42e1-ac3e-596e38e11388; Domain=www.notion.so;
35
+ Path=/; Expires=Mon, 20 Mar 2023 17:10:22 GMT; Secure
36
+ - notion_check_cookie_consent=true; Domain=www.notion.so; Path=/; Expires=Mon,
37
+ 21 Mar 2022 17:10:22 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/"52-qP0vXYtccvf52YZtSGh7ylT7yAg"
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
+ - 6ef00f921c8d73d3-MRS
139
+ body:
140
+ encoding: UTF-8
141
+ string: '{"object":"property_item","type":"email","id":"[IFC","email":"nicolas@orbit.love"}'
142
+ recorded_at: Sun, 20 Mar 2022 17:10:22 GMT
143
+ recorded_with: VCR 6.0.0