wip: started working on test
This commit is contained in:
parent
31df01e46e
commit
9278a1afc1
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
|
.env
|
||||||
/target
|
/target
|
||||||
/Cargo.lock
|
/Cargo.lock
|
||||||
|
|
|
@ -21,4 +21,5 @@ serde = { version = "1.0.152", features = ["derive"] }
|
||||||
serde_json = "1.0.91"
|
serde_json = "1.0.91"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
dotenv = "0.15.0"
|
||||||
tokio = { version = "1.28.1", features = ["macros"] }
|
tokio = { version = "1.28.1", features = ["macros"] }
|
||||||
|
|
171
src/lib.rs
171
src/lib.rs
|
@ -368,48 +368,6 @@ impl Databases {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
#[tokio::test]
|
|
||||||
async fn check_database_query() {
|
|
||||||
let databases = Client::new()
|
|
||||||
.api_key("secret_FuhJkAoOVZlk8YUT9ZOeYqWBRRZN6OMISJwhb4dTnud")
|
|
||||||
.build()
|
|
||||||
.search::<Database>(SearchOptions {
|
|
||||||
filter: Some(json!(
|
|
||||||
{
|
|
||||||
"value": "database",
|
|
||||||
"property": "object"
|
|
||||||
}
|
|
||||||
)),
|
|
||||||
query: None,
|
|
||||||
page_size: None,
|
|
||||||
sort: None,
|
|
||||||
start_cursor: None,
|
|
||||||
})
|
|
||||||
.await;
|
|
||||||
|
|
||||||
println!("{databases:#?}");
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test]
|
|
||||||
async fn test_blocks() {
|
|
||||||
let blocks = Client::new()
|
|
||||||
.api_key("secret_FuhJkAoOVZlk8YUT9ZOeYqWBRRZN6OMISJwhb4dTnud")
|
|
||||||
.build()
|
|
||||||
.blocks
|
|
||||||
.children()
|
|
||||||
.list(BlockChildrenListOptions {
|
|
||||||
block_id: "0d253ab0f751443aafb9bcec14012897",
|
|
||||||
})
|
|
||||||
.await;
|
|
||||||
|
|
||||||
println!("{blocks:#?}")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct DatabaseQueryOptions<'a> {
|
pub struct DatabaseQueryOptions<'a> {
|
||||||
pub database_id: &'a str,
|
pub database_id: &'a str,
|
||||||
|
@ -1211,10 +1169,20 @@ where
|
||||||
(
|
(
|
||||||
key.to_owned(),
|
key.to_owned(),
|
||||||
serde_json::from_value::<Property>(value.to_owned()).unwrap_or_else(|error| {
|
serde_json::from_value::<Property>(value.to_owned()).unwrap_or_else(|error| {
|
||||||
log::warn!(
|
println!("GOT HERE????");
|
||||||
"Could not parse value because of error, defaulting to Property::Unsupported:\n= ERROR:\n{error:#?}\n= JSON:\n{}\n---",
|
match value.get("type") {
|
||||||
serde_json::to_string_pretty(&value).unwrap()
|
Some(Value::String(kind)) => match kind.as_ref() {
|
||||||
);
|
"multi_select" => println!("found multi_select!"),
|
||||||
|
_ => {}
|
||||||
|
},
|
||||||
|
Some(_) | None => {
|
||||||
|
log::warn!(
|
||||||
|
"Could not parse value because of error, defaulting to Property::Unsupported:\n= ERROR:\n{error:#?}\n= JSON:\n{}\n---",
|
||||||
|
serde_json::to_string_pretty(&value).unwrap()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Property::Unsupported(value.to_owned())
|
Property::Unsupported(value.to_owned())
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
@ -1473,3 +1441,114 @@ pub enum DatabaseFormulaType {
|
||||||
Number,
|
Number,
|
||||||
String,
|
String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
fn get_key() -> String {
|
||||||
|
let _ = dotenv::dotenv();
|
||||||
|
std::env::var("NOTION_API_KEY").unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn check_database_query() {
|
||||||
|
let databases = Client::new()
|
||||||
|
.api_key(&get_key())
|
||||||
|
.build()
|
||||||
|
.search::<Database>(SearchOptions {
|
||||||
|
filter: Some(json!(
|
||||||
|
{
|
||||||
|
"value": "database",
|
||||||
|
"property": "object"
|
||||||
|
}
|
||||||
|
)),
|
||||||
|
query: None,
|
||||||
|
page_size: None,
|
||||||
|
sort: None,
|
||||||
|
start_cursor: None,
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
|
||||||
|
println!("{databases:#?}");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_blocks() {
|
||||||
|
let blocks = Client::new()
|
||||||
|
.api_key(&get_key())
|
||||||
|
.build()
|
||||||
|
.blocks
|
||||||
|
.children()
|
||||||
|
.list(BlockChildrenListOptions {
|
||||||
|
block_id: "0d253ab0f751443aafb9bcec14012897",
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
|
||||||
|
println!("{blocks:#?}")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_json_1() {
|
||||||
|
let data = r#"
|
||||||
|
{
|
||||||
|
"id": "FzYl",
|
||||||
|
"name": "Currently with",
|
||||||
|
"select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "nT[N",
|
||||||
|
"name": "Someone else"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"description": null,
|
||||||
|
"id": "fgu_",
|
||||||
|
"name": "Me"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"type": "select"
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
serde_json::from_str::<DatabaseProperty>(data).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: write test using https://stackoverflow.com/a/75979520
|
||||||
|
#[test]
|
||||||
|
fn parse_json_multi_select_failed_because_of_map_instead_of_sequence() {
|
||||||
|
let data = r#"
|
||||||
|
{
|
||||||
|
"id": "pvSs",
|
||||||
|
"multi_select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "orange",
|
||||||
|
"description": null,
|
||||||
|
"id": "|FMC",
|
||||||
|
"name": "Loan"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "\\Iu\\",
|
||||||
|
"name": "Checking "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": "q]rZ",
|
||||||
|
"name": "Credit"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Type",
|
||||||
|
"type": "multi_select"
|
||||||
|
}
|
||||||
|
"#;
|
||||||
|
|
||||||
|
serde_json::from_str::<Property>(data).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
464
unit-testable-json.txt
Normal file
464
unit-testable-json.txt
Normal file
|
@ -0,0 +1,464 @@
|
||||||
|
{
|
||||||
|
"id": "FzYl",
|
||||||
|
"name": "Currently with",
|
||||||
|
"select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "nT[N",
|
||||||
|
"name": "Someone else"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"description": null,
|
||||||
|
"id": "fgu_",
|
||||||
|
"name": "Me"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"type": "select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"files": null,
|
||||||
|
"id": "KTSO",
|
||||||
|
"name": "Files & media",
|
||||||
|
"type": "files"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "CEPX",
|
||||||
|
"name": "Focus",
|
||||||
|
"select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "orange",
|
||||||
|
"description": null,
|
||||||
|
"id": "J^N_",
|
||||||
|
"name": "Web Dev"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "purple",
|
||||||
|
"description": null,
|
||||||
|
"id": "}xYt",
|
||||||
|
"name": "Work"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": ";<tP",
|
||||||
|
"name": "University"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "x=t?",
|
||||||
|
"name": "Home"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"type": "select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "XwUK",
|
||||||
|
"name": "Remarks",
|
||||||
|
"rich_text": null,
|
||||||
|
"type": "rich_text"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "%3BH%60D",
|
||||||
|
"multi_select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "02648794-ae08-408a-8ecf-0775bf71f505",
|
||||||
|
"name": "UK Move"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "@Mb:",
|
||||||
|
"name": "Generic Tasks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "xNf;",
|
||||||
|
"name": "Finance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "gGrj",
|
||||||
|
"name": "Management"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "uiTJ",
|
||||||
|
"name": "Gym"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "=Dwo",
|
||||||
|
"name": "Career Development"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "cVoq",
|
||||||
|
"name": "Primary Role"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "\\;{[",
|
||||||
|
"name": "Personal Goals"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Sub-Focus",
|
||||||
|
"type": "multi_select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "SPW%3D",
|
||||||
|
"name": "Fee",
|
||||||
|
"number": {
|
||||||
|
"format": "dollar"
|
||||||
|
},
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "%40o%60J",
|
||||||
|
"multi_select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": ">u]:",
|
||||||
|
"name": "UK"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "yellow",
|
||||||
|
"description": null,
|
||||||
|
"id": "d{Rl",
|
||||||
|
"name": "US"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Location",
|
||||||
|
"type": "multi_select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "%7CMD%3B",
|
||||||
|
"multi_select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "pink",
|
||||||
|
"description": null,
|
||||||
|
"id": "gks?",
|
||||||
|
"name": "Yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "moPz",
|
||||||
|
"name": "No"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Subscriptions?",
|
||||||
|
"type": "multi_select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "pvSs",
|
||||||
|
"multi_select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "orange",
|
||||||
|
"description": null,
|
||||||
|
"id": "|FMC",
|
||||||
|
"name": "Loan"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "\\Iu\\",
|
||||||
|
"name": "Checking "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": "q]rZ",
|
||||||
|
"name": "Credit"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Type",
|
||||||
|
"type": "multi_select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "yDni",
|
||||||
|
"multi_select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": "a8225f34-713e-48da-92d6-f372a814f048",
|
||||||
|
"name": "Onboarding"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "7f2c6dcf-6c6a-4b9d-8e11-d2966b670bf5",
|
||||||
|
"name": "Design"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Tags",
|
||||||
|
"type": "multi_select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "H%7D%3BY",
|
||||||
|
"last_edited_time": null,
|
||||||
|
"name": "上次编辑时间",
|
||||||
|
"type": "last_edited_time"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"created_time": null,
|
||||||
|
"id": "notion%3A%2F%2Fmeetings%2Fcreated_time_property",
|
||||||
|
"name": "Created time",
|
||||||
|
"type": "created_time"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "notion%3A%2F%2Fmeetings%2Flast_edited_time_property",
|
||||||
|
"last_edited_time": null,
|
||||||
|
"name": "Last edited time",
|
||||||
|
"type": "last_edited_time"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"created_time": null,
|
||||||
|
"id": "notion%3A%2F%2Fmeetings%2Fcreated_time_property",
|
||||||
|
"name": "Created time",
|
||||||
|
"type": "created_time"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "notion%3A%2F%2Fmeetings%2Flast_edited_time_property",
|
||||||
|
"last_edited_time": null,
|
||||||
|
"name": "Last edited time",
|
||||||
|
"type": "last_edited_time"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "notion%3A%2F%2Fmeetings%2Fmeeting_type_property",
|
||||||
|
"name": "Type",
|
||||||
|
"select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "yellow",
|
||||||
|
"description": null,
|
||||||
|
"id": "standup",
|
||||||
|
"name": "Standup"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": "brainstorm",
|
||||||
|
"name": "Brainstorm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "team_weekly",
|
||||||
|
"name": "Team weekly"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "pink",
|
||||||
|
"description": null,
|
||||||
|
"id": "training",
|
||||||
|
"name": "Training"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"type": "select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "notion%3A%2F%2Ftasks%2Fpriority_property",
|
||||||
|
"name": "Priority",
|
||||||
|
"select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "priority_low",
|
||||||
|
"name": "Low"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "yellow",
|
||||||
|
"description": null,
|
||||||
|
"id": "priority_medium",
|
||||||
|
"name": "Medium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"description": null,
|
||||||
|
"id": "priority_high",
|
||||||
|
"name": "High"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"type": "select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "notion%3A%2F%2Ftasks%2Ftags_property",
|
||||||
|
"multi_select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "purple",
|
||||||
|
"description": null,
|
||||||
|
"id": "Mobile",
|
||||||
|
"name": "Mobile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": "Website",
|
||||||
|
"name": "Website"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "pink",
|
||||||
|
"description": null,
|
||||||
|
"id": "Improvement",
|
||||||
|
"name": "Improvement"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "Tags",
|
||||||
|
"type": "multi_select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "rWCq",
|
||||||
|
"name": "Address",
|
||||||
|
"rich_text": null,
|
||||||
|
"type": "rich_text"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"id": "jhSN",
|
||||||
|
"name": "Category",
|
||||||
|
"select": {
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"color": "pink",
|
||||||
|
"description": null,
|
||||||
|
"id": "f7672afb-be22-44e8-b01e-76b3edaaa0b2",
|
||||||
|
"name": "Healing (Social & Emotional Wellbeing) ✨"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "pink",
|
||||||
|
"description": null,
|
||||||
|
"id": "yyXf",
|
||||||
|
"name": "Personal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "pink",
|
||||||
|
"description": null,
|
||||||
|
"id": "fee9b2a6-4bb0-4064-b328-23cbf9b7fbc9",
|
||||||
|
"name": "Medication"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "pink",
|
||||||
|
"description": null,
|
||||||
|
"id": "4cb37ac5-8182-4948-b4a9-a43c3f7b44bd",
|
||||||
|
"name": "Physical Healing ✨"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "purple",
|
||||||
|
"description": null,
|
||||||
|
"id": "kAOz",
|
||||||
|
"name": "Work"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "purple",
|
||||||
|
"description": null,
|
||||||
|
"id": "BL[V",
|
||||||
|
"name": "Home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "purple",
|
||||||
|
"description": null,
|
||||||
|
"id": "48ad8f71-98f5-463c-a057-cb72ce1c47f1",
|
||||||
|
"name": "Car"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": "<r:U",
|
||||||
|
"name": "Malachi "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "blue",
|
||||||
|
"description": null,
|
||||||
|
"id": "lQ~P",
|
||||||
|
"name": "Isaiah"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "?Mk{",
|
||||||
|
"name": "Business"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"description": null,
|
||||||
|
"id": "172a8fff-cae3-477f-8dc0-22837e56936c",
|
||||||
|
"name": "Meeting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"description": null,
|
||||||
|
"id": "f27efcba-7687-4494-9438-21c6f11fbfb5",
|
||||||
|
"name": "DCJ"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "default",
|
||||||
|
"description": null,
|
||||||
|
"id": "0a6ea6ea-1b93-415e-a8bb-d555afbd41a2",
|
||||||
|
"name": "Yuck"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"description": null,
|
||||||
|
"id": "6c949785-1b8c-4a27-97b5-ebcf0462209f",
|
||||||
|
"name": "Healing & Growth (Financial) ✨"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"type": "select"
|
||||||
|
}
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"files": null,
|
||||||
|
"id": "svj%5C",
|
||||||
|
"name": "Files & media",
|
||||||
|
"type": "files"
|
||||||
|
}
|
||||||
|
---
|
Loading…
Reference in a new issue