+use chrono::{DateTime,Utc};
use serde::{Deserialize, Serialize};
use serde_json::Result;
use std::boxed::Box;
struct AccountField {
name: String,
value: String,
- verified_at: Option<String>, // FIXME: date
+ verified_at: Option<DateTime<Utc>>,
}
#[derive(Serialize, Deserialize, Debug)]
moved: Option<Box<Account>>,
suspended: Option<bool>,
limited: Option<bool>,
- created_at: String, // FIXME: sort out dates!
- last_status_at: String, // FIXME: sort out dates!
+ created_at: DateTime<Utc>,
+ // last_status_at: Option<DateTime<Utc>>, // FIXME: server can send just "2023-12-20"
statuses_count: u64,
followers_count: u64,
following_count: u64,
struct Status {
id: String,
uri: String,
- created_at: String, // FIXME: sort out dates!
+ created_at: DateTime<Utc>,
account: Account,
content: String,
visibility: String, // FIXME: enum
// card: Option<PreviewCard>,
language: Option<String>,
text: Option<String>,
- edited_at: Option<String>, // FIXME actually a date
+ edited_at: Option<DateTime<Utc>>,
favourited: Option<bool>,
reblogged: Option<bool>,
muted: Option<bool>,
}
fn main() {
- let body = reqwest::blocking::get(
- "https://hachyderm.io/api/v1/accounts/111096602447828617")
- .unwrap().text().unwrap();
- let acc: Account = serde_json::from_str(&body).unwrap();
- dbg!(acc);
-
let body = reqwest::blocking::get(
"https://hachyderm.io/api/v1/statuses/111602135142646031")
.unwrap().text().unwrap();