Skip to content

Commit d922a2d

Browse files
committed
creating pages
1 parent 359be0c commit d922a2d

File tree

3 files changed

+31
-25
lines changed

3 files changed

+31
-25
lines changed

src/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use reqwest::{Body, Error};
1010
use serde_json::{json, Value};
1111
use tokio::time::Instant;
1212
use crate::model::models::{Ancestor, CreatePage, CreatePageSpace, PageBody, Storage};
13-
use crate::pages::page_service::{create_page, get_page};
13+
use crate::pages::page_service::{create_page, get_children, get_page};
1414

1515

1616
#[tokio::main]
@@ -23,7 +23,7 @@ async fn main() -> Result<(), Error> {
2323
let conf_url = "http://localhost:8110";
2424

2525
// get page
26-
let page = get_page(conf_url, token, "1213317".to_string()).await;
26+
let page = get_children(conf_url, token, "1213317".to_string()).await;
2727
println!("{:?}", page);
2828

2929

src/model.rs

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,26 @@ pub mod models {
7171
context: String,
7272
}
7373

74+
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
75+
#[allow(non_snake_case)]
76+
pub struct ContentArrPage {
77+
id: String,
78+
#[serde(rename(serialize = "type"))]
79+
#[serde(rename(deserialize = "type"))]
80+
Type: String,
81+
status: String,
82+
title: String,
83+
#[serde(skip_serializing_if = "Option::is_none")]
84+
extensions: Option<Extentions<String>>,
85+
#[serde(rename(deserialize = "_expandable"))]
86+
_expandable: Expandable,
87+
_links: ContentLinks,
88+
}
89+
7490
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
7591
#[allow(non_snake_case)]
7692
pub struct ContentResponse {
77-
results: Vec<Content>,
93+
results: Vec<ContentArrPage>,
7894
start: i8,
7995
limit: i8,
8096
size: i8,
@@ -121,27 +137,6 @@ pub mod models {
121137
pub(crate) id: i32,
122138
}
123139

124-
// One content page
125-
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
126-
#[serde(rename_all = "camelCase")]
127-
pub struct CntPage {
128-
pub id: String,
129-
#[serde(rename = "type")]
130-
pub type_field: String,
131-
pub status: String,
132-
pub title: String,
133-
pub space: CntSpace,
134-
pub history: CntHistory,
135-
pub version: Version,
136-
pub extensions: Extentions<String>,
137-
#[serde(rename = "_links")]
138-
#[serde(skip)]
139-
pub links: Links,
140-
#[serde(skip)]
141-
// #[serde(rename = "_expandable")]
142-
pub expandable: Expandable,
143-
}
144-
145140
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
146141
#[serde(rename_all = "camelCase")]
147142
pub struct CntSpace {

src/pages.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
pub mod page_service {
22
use reqwest::Response;
3-
use crate::model::models::{Content, CreatePage};
3+
use crate::model::models::{Content, CreatePage, ContentResponse};
44

55
pub async fn get_page(url: &str, token: String, id: String) -> Content {
66
let request_url = format!("{url}/rest/api/content/{id}");
@@ -13,6 +13,17 @@ pub mod page_service {
1313
return serde_json::from_str(body.as_str()).unwrap();
1414
}
1515

16+
pub async fn get_children(url: &str, token: String, id: String) -> ContentResponse {
17+
let request_url = format!("{url}/rest/api/content/{id}/child/page");
18+
let client = reqwest::Client::new();
19+
let resp: Response = client.get(&request_url)
20+
.header("Authorization", format!("Basic {token}"))
21+
.header("Accept", "application/json")
22+
.send().await.unwrap();
23+
let body = resp.text().await.unwrap();
24+
return serde_json::from_str(body.as_str()).unwrap();
25+
}
26+
1627
pub async fn create_page(conf_url: &str, token: &str, page: CreatePage) -> String {
1728
let request_url = format!("{conf_url}/rest/api/content/");
1829
let client = reqwest::Client::new();

0 commit comments

Comments
 (0)