//! # Likes helper //! //! Module dedicated to likes management use crate::data::error::ResultBoxError; use crate::helpers::database::QueryInfo; use crate::constants::database_tables_names::LIKES_TABLE; pub enum LikeType { USER, POST, COMMENT, GROUP } impl LikeType { /// Get matching database type pub fn to_db_type(&self) -> String { match self { LikeType::USER => "page".to_string(), LikeType::POST => "texte".to_string(), LikeType::COMMENT => "commentaire".to_string(), LikeType::GROUP => "group".to_string(), } } } /// Count the number of likes over an element pub fn count(id: u64, kind: LikeType) -> ResultBoxError { QueryInfo::new(LIKES_TABLE) .cond_u64("ID_type", id) .cond("type", kind.to_db_type().as_ref()) .exec_count() }