diff --git a/src/api_data/post_api.rs b/src/api_data/post_api.rs index 9f7c353..15da551 100644 --- a/src/api_data/post_api.rs +++ b/src/api_data/post_api.rs @@ -37,6 +37,9 @@ pub struct PostAPI { // Movie specific video_id: Option, video_info: Option, + + // Countdown timer specific + time_end: Option, } impl PostAPI { @@ -67,6 +70,9 @@ impl PostAPI { // Movie specific video_id: None, video_info: None, + + // Countdown timer-specific + time_end: None, }; match &p.kind { @@ -91,7 +97,8 @@ impl PostAPI { post.video_info = Some(MovieAPI::new(&movies_helper::get_info(*movie_id)?)) } - PostKind::POST_KIND_COUNTDOWN => {} + PostKind::POST_KIND_COUNTDOWN(time_end) => post.time_end = Some(*time_end), + PostKind::POST_KIND_SURVEY => {} PostKind::POST_KIND_YOUTUBE => {} } diff --git a/src/data/post.rs b/src/data/post.rs index 5595f17..f44c1b6 100644 --- a/src/data/post.rs +++ b/src/data/post.rs @@ -56,8 +56,10 @@ pub enum PostKind { POST_KIND_IMAGE(PostFile), POST_KIND_WEBLINK(PostWebLink), POST_KIND_PDF(PostFile), - POST_KIND_MOVIE(u64), // The ID of the movie - POST_KIND_COUNTDOWN, + POST_KIND_MOVIE(u64), + // The ID of the movie + POST_KIND_COUNTDOWN(u64), + // End time POST_KIND_SURVEY, POST_KIND_YOUTUBE, } @@ -70,7 +72,7 @@ impl PostKind { PostKind::POST_KIND_WEBLINK(_) => "weblink", PostKind::POST_KIND_PDF(_) => "pdf", PostKind::POST_KIND_MOVIE(_) => "movie", - PostKind::POST_KIND_COUNTDOWN => "countdown", + PostKind::POST_KIND_COUNTDOWN(_) => "countdown", PostKind::POST_KIND_SURVEY => "survey", PostKind::POST_KIND_YOUTUBE => "youtube", }.to_string() diff --git a/src/helpers/posts_helper.rs b/src/helpers/posts_helper.rs index 88efab3..d331b32 100644 --- a/src/helpers/posts_helper.rs +++ b/src/helpers/posts_helper.rs @@ -5,7 +5,7 @@ use crate::constants::database_tables_names::POSTS_TABLE; use crate::data::error::{ExecError, ResultBoxError}; use crate::data::post::{Post, PostFile, PostKind, PostPageKind, PostVisibilityLevel, PostWebLink}; -use crate::data::post::PostKind::{POST_KIND_IMAGE, POST_KIND_MOVIE, POST_KIND_PDF, POST_KIND_WEBLINK}; +use crate::data::post::PostKind::{POST_KIND_COUNTDOWN, POST_KIND_IMAGE, POST_KIND_MOVIE, POST_KIND_PDF, POST_KIND_WEBLINK}; use crate::data::user::UserID; use crate::helpers::{database, friends_helper}; use crate::utils::date_utils::time; @@ -172,6 +172,8 @@ fn db_to_post(res: &database::RowResult) -> ResultBoxError { "video" => post.kind = POST_KIND_MOVIE(res.get_u64("idvideo")?), + "count_down" => post.kind = POST_KIND_COUNTDOWN(res.get_u64("time_end").unwrap_or(0)), + _ => {} }