From 1c22088640e5deeadd61017bd90920b652685b5f Mon Sep 17 00:00:00 2001 From: Jake Swenson Date: Sun, 29 Aug 2021 12:59:04 -0700 Subject: Notion API Version 2021-08-16 support; fix a bunch of modling errors as well --- src/models/users.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/models/users.rs (limited to 'src/models/users.rs') diff --git a/src/models/users.rs b/src/models/users.rs new file mode 100644 index 0000000..b7702d0 --- /dev/null +++ b/src/models/users.rs @@ -0,0 +1,34 @@ +use crate::ids::UserId; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)] +pub struct UserCommon { + pub id: UserId, + pub name: Option, + pub avatar_url: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)] +pub struct Person { + pub email: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)] +pub struct Bot { + pub email: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)] +#[serde(tag = "type", rename_all = "snake_case")] +pub enum User { + Person { + #[serde(flatten)] + common: UserCommon, + person: Person, + }, + Bot { + #[serde(flatten)] + common: UserCommon, + bot: Bot, + }, +} -- cgit v1.2.3