notion_ruby_mapping 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d23747cdc47703e365e86a5d25d712ea5f11230d0c91b7f9f2d47e48ff6776c
4
- data.tar.gz: 7144a79367f716eb887c34bab7eeeb95125854a3294615f7ea4693cd24b7667b
3
+ metadata.gz: 30bf2ddaea8b93f043bee15eebc6ac4cd20af0717365ca6f1b51bbd2267f8484
4
+ data.tar.gz: 6a8914b322cbce8d5c86ee911cacb5980da56f1236856e7226a7b88b059674f2
5
5
  SHA512:
6
- metadata.gz: e24af3a6728a7971c1a78f049adba2869a7efc9b36cfe35c60dfb23480943916795383abbe3c8d85e18af1dd3fc4a777b207646278858c2f095cd678277b500c
7
- data.tar.gz: d1dceae5b59b71145652dcfb111dd6f82d85ef03ded827a5ae6074c48fccd0dc9a5534484ce55f06b891c09abd94df3467d0ef8576212895e24b699facace115
6
+ metadata.gz: 93a41accb8a2833fb6046cc01a283a93ac26aad3468334dafeafa95cce47d1ba87913d0f9b6b5180b3bc4b5674b51f506ffd5c84d7f34878fe828e464e654403
7
+ data.tar.gz: 325ca25b2820ae361149094f368a956581c50e9621b524051136b121636befb667af9434a1cb2da03889737130b9f8926bb746bd3c68f9804f5de088e66fb934
data/README.md CHANGED
@@ -6,7 +6,7 @@ Development note is here. → [Idea note of "notion_ruby_mapping"](https://www.n
6
6
 
7
7
  ## Table of Contents
8
8
 
9
- - [notion\_ruby\_mapping](#notion_ruby_mapping)
9
+ - [notion_ruby_mapping](#notion_ruby_mapping)
10
10
  - [Table of Contents](#table-of-contents)
11
11
  - [1. Installation](#1-installation)
12
12
  - [2. Example code](#2-example-code)
@@ -31,6 +31,7 @@ Development note is here. → [Idea note of "notion_ruby_mapping"](https://www.n
31
31
  - [4.2.6 Add a database property](#426-add-a-database-property)
32
32
  - [4.2.7 Rename a database property](#427-rename-a-database-property)
33
33
  - [4.2.8 Remove database properties](#428-remove-database-properties)
34
+ - [4.2.9 other methods](#429-other-methods)
34
35
  - [4.3 List class](#43-list-class)
35
36
  - [4.4 Block class](#44-block-class)
36
37
  - [4.5 Property classes](#45-property-classes)
@@ -133,12 +134,13 @@ page = Page.find "c01166c6-13ae-45cb-b968-18b4ef2f5a77" # Notion API call
133
134
  ```
134
135
 
135
136
  - result of dry run
137
+
136
138
  ```bash
137
139
  #!/bin/sh
138
- curl 'https://api.notion.com/v1/pages/c01166c6-13ae-45cb-b968-18b4ef2f5a77'\
139
- -H 'Notion-Version: 2022-02-22'\
140
- -H 'Authorization: Bearer '"$NOTION_API_KEY"''\
141
- -H 'Content-Type: application/json'
140
+ curl 'https://api.notion.com/v1/pages/c01166c6-13ae-45cb-b968-18b4ef2f5a77' \
141
+ -H 'Notion-Version: 2022-02-22' \
142
+ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \
143
+ -H 'Content-Type: application/json'
142
144
  ```
143
145
 
144
146
  `Page.new(id)` creates a Page object without the Notion API. Since Page.new does not acquire property information, so you need to assign yourself.
@@ -217,7 +219,7 @@ db = Database.find "c37a2c66-e3aa-4a0d-a447-73de3b80c253" # Notion API call
217
219
  curl 'https://api.notion.com/v1/databases/c37a2c66-e3aa-4a0d-a447-73de3b80c253'\
218
220
  -H 'Notion-Version: 2022-02-22'\
219
221
  -H 'Authorization: Bearer '"$NOTION_API_KEY"''\
220
- -H 'Content-Type: application/json'
222
+ -H 'Content-Type: application/json'
221
223
  ```
222
224
 
223
225
  `Database.new(id)` creates a Database object without the Notion API. Since Database.new does not acquire property information, so you need to assign yourself.
@@ -522,7 +524,6 @@ print db.query_database query, dry_run: true
522
524
 
523
525
  ```
524
526
 
525
-
526
527
  #### 4.2.3 Create child page
527
528
 
528
529
  `create_child_page` creates a child page object of the database. After setting some properties, please call `page.save` to send page information to Notion.
@@ -534,6 +535,7 @@ page.save
534
535
  ```
535
536
 
536
537
  - result of dry run
538
+
537
539
  ```bash
538
540
  #!/bin/sh
539
541
  curl -X POST 'https://api.notion.com/v1/pages'\
@@ -546,6 +548,7 @@ curl -X POST 'https://api.notion.com/v1/pages'\
546
548
  #### 4.2.4 Create database
547
549
 
548
550
  `create_child_database` method of an existing page creates a child database object. Some properties of the database can be arrange the option. Here is a sample script for creating a database that set all types of properties.
551
+
549
552
  ```Ruby
550
553
  page = Page.find "a sample page id"
551
554
  db = parent_page.create_child_database "New database title",
@@ -666,6 +669,19 @@ curl -X PATCH 'https://api.notion.com/v1/databases/c7697137d49f49c2bbcdd6a665c4f
666
669
  --data '{"properties":{"renamed number property":null,"renamed url property":null}}'
667
670
  ```
668
671
 
672
+ #### 4.2.9 other methods
673
+
674
+ - `Database.find id, dry_run: true` create shell script for verification.
675
+ - `db.save` call Notion API, and so on and replace object information.
676
+ - `db.save dry_run: true` create shell script for verification.
677
+ - `db.new_record?` returns true if the database was generated by `create_child_database`.
678
+ - `db.database_title` returns plain_text string of `Database`.
679
+ - `db.title` returns plain_text string of `TitleProperty`.
680
+ - `db.icon` returns JSON hash for the page icon.
681
+ - `db[key]` returns a hash or an array object except "properties".
682
+ - `db.created_time` returns CreatedTimeProperty for filter
683
+ - `db.last_edited_time` returns LastEditedTimeProperty for filter
684
+
669
685
  ### 4.3 List class
670
686
 
671
687
  `db.query_database` and other API list results returns a List object.
@@ -1016,7 +1032,6 @@ p rp.property_values_json
1016
1032
  # Result => {"rp"=>{"type"=>"relation", "relation"=>[{"id"=>"R2"}, {"id"=>"R3"}]}}
1017
1033
  ```
1018
1034
 
1019
-
1020
1035
  #### 4.5.4 create or update values for Database properties
1021
1036
 
1022
1037
  Retrieving Database object with `find` method has database properties of XXXProperties with values. On the other hand, Assigned Database object has also XXXProperties, but they don't have any information for databases.
@@ -1046,6 +1061,7 @@ print sp.property_schema_json
1046
1061
  ```
1047
1062
 
1048
1063
  If you want to edit existing values, you should access `edit_select_options` array. It sets `will_update` flag to true.
1064
+
1049
1065
  ```Ruby
1050
1066
  sp.edit_select_options[0]["name"] = "new S1"
1051
1067
  p sp.property_values_json
@@ -1064,6 +1080,7 @@ print msp.property_schema_json
1064
1080
  ```
1065
1081
 
1066
1082
  If you want to edit existing values, you should access `edit_multi_select_options` array. It sets `will_update` flag to true.
1083
+
1067
1084
  ```Ruby
1068
1085
  msp.edit_multi_select_options[0]["name"] = "new MS1"
1069
1086
  p msp.property_values_json
@@ -41,7 +41,7 @@ module NotionRubyMapping
41
41
 
42
42
  # @return [NotionRubyMapping::CreatedTimeProperty]
43
43
  def created_time
44
- @created_time ||= CreatedTimeProperty.new("title")
44
+ @created_time ||= CreatedTimeProperty.new("__timestamp__")
45
45
  end
46
46
 
47
47
  # @return [TrueClass, FalseClass] true if Database object
@@ -54,6 +54,11 @@ module NotionRubyMapping
54
54
  self["icon"]
55
55
  end
56
56
 
57
+ # @return [NotionRubyMapping::LastEditedTimeProperty]
58
+ def last_edited_time
59
+ @last_edited_time ||= LastEditedTimeProperty.new("__timestamp__")
60
+ end
61
+
57
62
  # @return [Boolean] true if new record
58
63
  def new_record?
59
64
  @new_record
@@ -189,11 +194,11 @@ module NotionRubyMapping
189
194
  shell = [
190
195
  "#!/bin/sh\ncurl #{method == :get ? "" : "-X #{method.to_s.upcase}"} 'https://api.notion.com/#{path}'",
191
196
  " -H 'Notion-Version: 2022-02-22'",
192
- " -H 'Authorization: Bearer '\"$NOTION_API_KEY\"''"
197
+ " -H 'Authorization: Bearer '\"$NOTION_API_KEY\"''",
193
198
  ]
194
199
  shell << " -H 'Content-Type: application/json'" unless path == :get
195
200
  shell << " --data '#{JSON.generate json}'" if json
196
- shell.join("\\ \n")
201
+ shell.join(" \\\n")
197
202
  end
198
203
 
199
204
  protected
@@ -91,6 +91,8 @@ module NotionRubyMapping
91
91
  def make_filter_query(key, value, rollup = nil, rollup_type = nil)
92
92
  if rollup
93
93
  Query.new filter: {"property" => @name, rollup => {rollup_type => {key => value}}}
94
+ elsif @name == "__timestamp__"
95
+ Query.new filter: {"timestamp" => type, type => {key => value}}
94
96
  else
95
97
  Query.new filter: {"property" => @name, type => {key => value}}
96
98
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NotionRubyMapping
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  NOTION_VERSION = "2022-02-22"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notion_ruby_mapping
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyuki KOBAYASHI
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-25 00:00:00.000000000 Z
11
+ date: 2022-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday