aboutsummaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorGravatar Jake Swenson <jake@jakeswenson.com> 2021-05-14 08:01:21 -0700
committerGravatar Jake Swenson <jake@jakeswenson.com> 2021-05-14 08:01:21 -0700
commit3db26f295de9e2805a2c1c6a083566da0f4e2b07 (patch)
tree1f66623048249f5eadc96cac0d2226926ecd90a3 /src/models
parent7c069aede00bc1c57910fa2505fd5d0afe747c1c (diff)
downloadnotion-3db26f295de9e2805a2c1c6a083566da0f4e2b07.tar.gz
notion-3db26f295de9e2805a2c1c6a083566da0f4e2b07.tar.zst
notion-3db26f295de9e2805a2c1c6a083566da0f4e2b07.zip
add all properties
Diffstat (limited to 'src/models')
-rw-r--r--src/models/properties.rs83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/models/properties.rs b/src/models/properties.rs
index 37c1a4e..4139712 100644
--- a/src/models/properties.rs
+++ b/src/models/properties.rs
@@ -1,3 +1,4 @@
+use crate::models::DatabaseId;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
@@ -55,6 +56,62 @@ pub struct Select {
}
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
+pub struct Formula {
+ /// Formula to evaluate for this property
+ expression: String,
+}
+
+#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
+pub struct Relation {
+ /// The database this relation refers to.
+ /// New linked pages must belong to this database in order to be valid.
+ database_id: DatabaseId,
+ /// By default, relations are formed as two synced properties across databases:
+ /// if you make a change to one property, it updates the synced property at the same time.
+ /// `synced_property_name` refers to the name of the property in the related database.
+ synced_property_name: Option<String>,
+ /// By default, relations are formed as two synced properties across databases:
+ /// if you make a change to one property, it updates the synced property at the same time.
+ /// `synced_property_id` refers to the id of the property in the related database.
+ /// This is usually a short string of random letters and symbols.
+ synced_property_id: Option<PropertyId>,
+}
+
+#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
+#[serde(rename_all = "snake_case")]
+pub enum RollupFunction {
+ CountAll,
+ CountValues,
+ CountUniqueValues,
+ CountEmpty,
+ CountNotEmpty,
+ PercentEmpty,
+ PercentNotEmpty,
+ Sum,
+ Average,
+ Median,
+ Min,
+ Max,
+ Range,
+}
+
+#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
+pub struct Rollup {
+ /// The name of the relation property this property is responsible for rolling up.
+ relation_property_name: String,
+ /// The id of the relation property this property is responsible for rolling up.
+ relation_property_id: PropertyId,
+ /// The name of the property of the pages in the related database
+ /// that is used as an input to `function`.
+ rollup_property_name: String,
+ /// The id of the property of the pages in the related database
+ /// that is used as an input to `function`.
+ rollup_property_id: String,
+ /// The function that is evaluated for every page in the relation of the rollup.
+ function: RollupFunction,
+}
+
+#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
#[serde(tag = "type")]
#[serde(rename_all = "snake_case")]
pub enum PropertyConfiguration {
@@ -82,4 +139,30 @@ pub enum PropertyConfiguration {
/// See https://developers.notion.com/reference/database#file-configuration
/// Documentation issue: docs claim type name is `file` but it's is in fact `files`
Files { id: PropertyId },
+ /// Represents a Checkbox Property
+ /// See https://developers.notion.com/reference/database#checkbox-configuration
+ Checkbox { id: PropertyId },
+ /// Represents a URL Property
+ /// See https://developers.notion.com/reference/database#url-configuration
+ URL { id: PropertyId },
+ /// Represents a Email Property
+ /// See https://developers.notion.com/reference/database#email-configuration
+ Email { id: PropertyId },
+ /// Represents a Phone number Property
+ /// See https://developers.notion.com/reference/database#phone-number-configuration
+ PhoneNumber { id: PropertyId },
+ /// See https://developers.notion.com/reference/database#formula-configuration
+ Formula { id: PropertyId, formula: Formula },
+ /// See https://developers.notion.com/reference/database#relation-configuration
+ Relation { id: PropertyId, relation: Relation },
+ /// See https://developers.notion.com/reference/database#rollup-configuration
+ Rollup { id: PropertyId, rollup: Rollup },
+ /// See https://developers.notion.com/reference/database#created-time-configuration
+ CreatedTime { id: PropertyId },
+ /// See https://developers.notion.com/reference/database#created-by-configuration
+ CreatedBy { id: PropertyId },
+ /// See https://developers.notion.com/reference/database#last-edited-time-configuration
+ LastEditTime { id: PropertyId },
+ /// See https://developers.notion.com/reference/database#last-edited-by-configuration
+ LastEditBy { id: PropertyId },
}
(unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-04-06fix(node:events): fix abort behaviorGravatar Derrick Farris 3-170/+177
2023-04-06test(node:events): remove `console.log`Gravatar Derrick Farris 1-1/+0
2023-04-06feat(node:events): finish `EE.AsyncIterator` and `node:events.on()`, add ↵Gravatar Derrick Farris 5-369/+276
some tests
2023-04-06wip(node:events): get async iter working, work through test flakinessGravatar Derrick Farris 5-236/+328
2023-04-06wip(node:events): fix `node:events.on` async iter to specGravatar Derrick Farris 16-136/+1116
2023-04-06docs: add a section on uninstalling bun (#2560)Gravatar dave caruso 1-0/+8
2023-04-06docs(cli/bunx): add notice (#2574)Gravatar Jozef Steinhübl 1-0/+4
* docs(cli/bunx): add notice bunx alias bun x * docs: grammar
2023-04-06Fix `toEqual` when the second array has extra array holes (#2580)Gravatar Dylan Conway 3-18/+76
* iterate through remaining indexes, keep prop identifier * tests * format
2023-04-06Add last modify field "mtime" for FileBlob (#1431) (#2491)Gravatar Zhongwei Yao 6-33/+128
* Add lastModified field for FileBlob (#1431) lastModified value is epoch timestamp in millisecond unit. * update according to review comment.
2023-04-06bun-types: infer strict `Subprocess` from `Bun.spawn()` options, part 2 (#2573)Gravatar dave caruso 9-67/+165
2023-04-06cache needs to update, move to another process (#2578)Gravatar Dylan Conway 2-156/+171
2023-04-06fix(ws): export Server (#2575)Gravatar hiroki osame 1-13/+30
2023-04-06docs(CONTRIBUTING): referece development guide (#2576)Gravatar hiroki osame 1-1/+5
2023-04-05rebase (#1501)Gravatar dave caruso 2-144/+305
2023-04-05Update `typecheck` (#2572)Gravatar Colin McDonnell 3-4/+8
* Update typecheck * Test ci * Test ci * Prettify files
2023-04-05prependGravatar Jarred Sumner 1-7/+3
2023-04-05Add tests for `bun test` with preload scripts (#2566)Gravatar Jake Boone 2-1/+107
* Use zsh-compatible syntax in cowsay example zsh interprets the string !" differently than bash or sh, but we can use single quotes in all of them. See https://unix.stackexchange.com/a/497335/548905. * Add tests for bun:test with preload scripts * Look at `stderr` in `bun test --preload` tests
2023-04-05Disable buffering when we clear terminalGravatar Jarred Sumner 1-0/+2
hopefully fixes an issue reported in Discord
2023-04-05PrettierGravatar Jarred Sumner 3-4/+4
2023-04-05fix(fetch.proxy) fix proxy authentication (#2554)Gravatar Ciro Spaciari 3-31/+186
* fix proxy authentication * add auth tests * remove unused
2023-04-05fix: build warnings (#2562)Gravatar hiroki osame 4-4/+1
2023-04-05In Documentation, move --watch before the script name (#2569)Gravatar Lawlzer 1-4/+5
Related message by Jarred: https://discord.com/channels/876711213126520882/876711213126520885/1093286199369682944 If you put `--watch` after the script name, it will not work.
2023-04-05fix `deepEquals` with array holes and accessors (#2557)Gravatar Dylan Conway 2-10/+249
* `deepEqual` handles slow array indexes * another test * oops * remove bad test * compare indexes in non-strict mode * more tests
2023-04-05fix: modules to have null prototype (#2561)Gravatar hiroki osame 2-2/+9
2023-04-04:clock1: :clock2: :clock3:Gravatar Jarred Sumner 1-1/+1
2023-04-04Implement `import.meta.main` (#2556)Gravatar Jarred Sumner 10-8/+89
* Implement `import.meta.main` * Update main-test-1.js * Update fs.test.ts --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-04Dylan/fix some failing tests (#2544)Gravatar Jarred Sumner 10-29/+72
* handle `umask()` invalid arguments * move `bktree-fast` to test root, fix postinstall * fix fs test * could be baseline * handle different timezones * accidentally deleted tests * fix hang in `AbortSignal.timeout` * bring abort tests back * Revert "bring abort tests back" This reverts commit 0ff2ad5bf408694ac719b8ba0a38b16070e10201. * bunx node-gyp * bun x * fix typecheck * test * Update inspect.test.js --------- Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2023-04-04Add npm benchmark (#2555)Gravatar Colin McDonnell 13-1/+271
* Add install bench * Update scripts and readme * remove lockfiles * Format bench * Add dev instructions
2023-04-03Use absolute paths morebun-v0.5.9Gravatar Jarred Sumner 2-6/+11
2023-04-03Fix test failureGravatar Jarred Sumner 1-15/+18