#[warn(missing_docs)]
use crate::models::{DeezerObject, User};
use crate::Result;
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, Debug)]
pub struct Comment {
pub id: u64,
pub text: String,
pub date: u64,
object: CommentParent,
pub author: CommentAuthor,
}
impl DeezerObject for Comment {
fn get_api_url(id: u64) -> String {
format!("comment/{}", id)
}
}
#[derive(Deserialize, Serialize, Debug)]
pub struct CommentAuthor {
pub id: u64,
pub name: String,
pub link: String,
pub picture: String,
pub picture_small: String,
pub picture_medium: String,
pub picture_big: String,
pub picture_xl: String,
}
impl CommentAuthor {
pub async fn get_full(&self) -> Result<User> {
let user = User::get(self.id).await?.unwrap();
Ok(user)
}
}
#[derive(Deserialize, Serialize, Debug)]
struct CommentParent {
id: String,
#[serde(rename = "type")]
object_type: String,
}