chore: remove features that don't compile

add: posts "circle" column
This commit is contained in:
trisua 2025-06-15 12:19:58 -04:00
parent 0310418837
commit 50704d27a9
42 changed files with 71 additions and 365 deletions

View file

@ -3,12 +3,6 @@ name = "tetratto-core"
version = "7.0.0"
edition = "2024"
[features]
postgres = ["oiseau/postgres"]
sqlite = ["oiseau/sqlite"]
redis = ["oiseau/redis"]
default = ["sqlite", "redis"]
[dependencies]
pathbufd = "0.1.4"
serde = { version = "1.0.219", features = ["derive"] }
@ -25,4 +19,4 @@ base16ct = { version = "0.2.0", features = ["alloc"] }
base64 = "0.22.1"
emojis = "0.6.4"
regex = "1.11.1"
oiseau = { version = "0.1.2", default-features = false }
oiseau = { version = "0.1.2", default-features = false, features = ["postgres", "redis"] }

View file

@ -8,20 +8,13 @@ use crate::model::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`ThirdPartyApp`] from an SQL row.
pub(crate) fn get_app_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> ThirdPartyApp {
pub(crate) fn get_app_from_row(x: &PostgresRow) -> ThirdPartyApp {
ThirdPartyApp {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -2,20 +2,13 @@ use oiseau::cache::Cache;
use crate::model::{Error, Result, auth::User, moderation::AuditLogEntry, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get an [`AuditLogEntry`] from an SQL row.
pub(crate) fn get_audit_log_entry_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> AuditLogEntry {
pub(crate) fn get_audit_log_entry_from_row(x: &PostgresRow) -> AuditLogEntry {
AuditLogEntry {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -16,20 +16,13 @@ use tetratto_shared::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, params};
impl DataManager {
/// Get a [`User`] from an SQL row.
pub(crate) fn get_user_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> User {
pub(crate) fn get_user_from_row(x: &PostgresRow) -> User {
User {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -6,20 +6,11 @@ use crate::model::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`Channel`] from an SQL row.
pub(crate) fn get_channel_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Channel {
pub(crate) fn get_channel_from_row(x: &PostgresRow) -> Channel {
Channel {
id: get!(x->0(i64)) as usize,
community: get!(x->1(i64)) as usize,

View file

@ -14,20 +14,11 @@ use pathbufd::PathBufD;
use std::fs::{exists, remove_file};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`Community`] from an SQL row.
pub(crate) fn get_community_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Community {
pub(crate) fn get_community_from_row(x: &PostgresRow) -> Community {
Community {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,
@ -139,15 +130,10 @@ impl DataManager {
Err(e) => return Err(Error::DatabaseConnection(e.to_string())),
};
#[cfg(feature = "sqlite")]
let empty = [];
#[cfg(feature = "postgres")]
let empty = &[];
let res = query_rows!(
&conn,
"SELECT * FROM communities WHERE NOT context LIKE '%\"is_nsfw\":true%' ORDER BY member_count DESC LIMIT 12",
empty,
params![],
|x| { Self::get_community_from_row(x) }
);

View file

@ -3,20 +3,13 @@ use crate::model::moderation::AuditLogEntry;
use crate::model::{Error, Result, auth::User, communities::PostDraft, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`PostDraft`] from an SQL row.
pub(crate) fn get_draft_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> PostDraft {
pub(crate) fn get_draft_from_row(x: &PostgresRow) -> PostDraft {
PostDraft {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -2,13 +2,7 @@ pub mod common;
use std::collections::HashMap;
use tetratto_l10n::{read_langs, LangFile};
#[cfg(feature = "sqlite")]
use oiseau::sqlite::{DataManager as OiseauManager, Result};
#[cfg(feature = "postgres")]
use oiseau::postgres::{DataManager as OiseauManager, Result};
use crate::config::Config;
#[derive(Clone)]

View file

@ -17,5 +17,6 @@ CREATE TABLE IF NOT EXISTS posts (
tsvector_content tsvector GENERATED ALWAYS AS (to_tsvector ('english', coalesce(content, ''))) STORED,
poll_id BIGINT NOT NULL,
title TEXT NOT NULL,
is_open INT NOT NULL DEFAULT 1
is_open INT NOT NULL DEFAULT 1,
circle BIGINT NOT NULL
)

View file

@ -7,20 +7,11 @@ use crate::model::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`CustomEmoji`] from an SQL row.
pub(crate) fn get_emoji_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> CustomEmoji {
pub(crate) fn get_emoji_from_row(x: &PostgresRow) -> CustomEmoji {
CustomEmoji {
id: get!(x->0(i64)) as usize,
owner: get!(x->1(i64)) as usize,

View file

@ -4,20 +4,11 @@ use crate::model::moderation::AuditLogEntry;
use crate::model::{Error, Result, auth::IpBan, auth::User, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`IpBan`] from an SQL row.
pub(crate) fn get_ipban_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> IpBan {
pub(crate) fn get_ipban_from_row(x: &PostgresRow) -> IpBan {
IpBan {
ip: get!(x->0(String)),
created: get!(x->1(i64)) as usize,

View file

@ -2,20 +2,13 @@ use oiseau::cache::Cache;
use crate::model::{Error, Result, auth::User, auth::IpBlock, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, params};
impl DataManager {
/// Get an [`IpBlock`] from an SQL row.
pub(crate) fn get_ipblock_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> IpBlock {
pub(crate) fn get_ipblock_from_row(x: &PostgresRow) -> IpBlock {
IpBlock {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -10,20 +10,11 @@ use crate::model::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`CommunityMembership`] from an SQL row.
pub(crate) fn get_membership_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> CommunityMembership {
pub(crate) fn get_membership_from_row(x: &PostgresRow) -> CommunityMembership {
CommunityMembership {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -11,14 +11,7 @@ use serde::Serialize;
use tetratto_shared::unix_epoch_timestamp;
use crate::{auto_method, DataManager};
#[cfg(feature = "redis")]
use oiseau::cache::redis::Commands;
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{PostgresRow, cache::redis::Commands};
use oiseau::{execute, get, query_rows, params};
@ -29,10 +22,7 @@ struct DeleteMessageEvent {
impl DataManager {
/// Get a [`Message`] from an SQL row.
pub(crate) fn get_message_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Message {
pub(crate) fn get_message_from_row(x: &PostgresRow) -> Message {
Message {
id: get!(x->0(i64)) as usize,
channel: get!(x->1(i64)) as usize,

View file

@ -1,6 +1,7 @@
mod apps;
mod audit_log;
mod auth;
mod channels;
mod common;
mod communities;
pub mod connections;
@ -10,6 +11,7 @@ mod emojis;
mod ipbans;
mod ipblocks;
mod memberships;
mod messages;
mod notifications;
mod polls;
mod pollvotes;
@ -25,9 +27,4 @@ mod user_warnings;
mod userblocks;
mod userfollows;
#[cfg(feature = "redis")]
mod channels;
#[cfg(feature = "redis")]
mod messages;
pub use drivers::DataManager;

View file

@ -3,23 +3,13 @@ use crate::model::socket::{CrudMessageType, PacketType, SocketMessage, SocketMet
use crate::model::{Error, Result, auth::Notification, auth::User, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "redis")]
use oiseau::cache::redis::Commands;
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{PostgresRow, cache::redis::Commands};
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`Notification`] from an SQL row.
pub(crate) fn get_notification_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Notification {
pub(crate) fn get_notification_from_row(x: &PostgresRow) -> Notification {
Notification {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -4,20 +4,13 @@ use crate::model::moderation::AuditLogEntry;
use crate::model::{Error, Result, auth::User, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`Poll`] from an SQL row.
pub(crate) fn get_poll_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Poll {
pub(crate) fn get_poll_from_row(x: &PostgresRow) -> Poll {
Poll {
id: get!(x->0(i64)) as usize,
owner: get!(x->1(i64)) as usize,

View file

@ -5,20 +5,13 @@ use crate::model::moderation::AuditLogEntry;
use crate::model::{Error, Result, auth::User, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, params};
impl DataManager {
/// Get a [`PollVote`] from an SQL row.
pub(crate) fn get_pollvote_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> PollVote {
pub(crate) fn get_pollvote_from_row(x: &PostgresRow) -> PollVote {
PollVote {
id: get!(x->0(i64)) as usize,
owner: get!(x->1(i64)) as usize,

View file

@ -15,15 +15,7 @@ use crate::model::{
use tetratto_shared::unix_epoch_timestamp;
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
#[cfg(feature = "redis")]
use oiseau::cache::redis::Commands;
use oiseau::{PostgresRow, cache::redis::Commands};
use oiseau::{execute, get, query_row, query_rows, params};
pub type FullPost = (
@ -101,10 +93,7 @@ macro_rules! private_post_replying {
impl DataManager {
/// Get a [`Post`] from an SQL row.
pub(crate) fn get_post_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Post {
pub(crate) fn get_post_from_row(x: &PostgresRow) -> Post {
Post {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,
@ -125,6 +114,7 @@ impl DataManager {
poll_id: get!(x->13(i64)) as usize,
title: get!(x->14(String)),
is_open: get!(x->15(i32)) as i8 == 1,
circle: get!(x->16(i64)) as usize,
}
}
@ -1620,7 +1610,7 @@ impl DataManager {
let res = execute!(
&conn,
"INSERT INTO posts VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, DEFAULT, $13, $14, $15)",
"INSERT INTO posts VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, DEFAULT, $13, $14, $15, $16)",
params![
&(data.id as i64),
&(data.created as i64),
@ -1641,6 +1631,7 @@ impl DataManager {
&(data.poll_id as i64),
&data.title,
&{ if data.is_open { 1 } else { 0 } },
&(data.circle as i64),
]
);

View file

@ -11,20 +11,13 @@ use crate::model::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`Question`] from an SQL row.
pub(crate) fn get_question_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Question {
pub(crate) fn get_question_from_row(x: &PostgresRow) -> Question {
Question {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -7,20 +7,11 @@ use crate::model::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`Reaction`] from an SQL row.
pub(crate) fn get_reaction_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Reaction {
pub(crate) fn get_reaction_from_row(x: &PostgresRow) -> Reaction {
Reaction {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -3,20 +3,13 @@ use crate::model::moderation::AuditLogEntry;
use crate::model::{Error, Result, auth::User, moderation::Report, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`Report`] from an SQL row.
pub(crate) fn get_report_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> Report {
pub(crate) fn get_report_from_row(x: &PostgresRow) -> Report {
Report {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -3,20 +3,11 @@ use crate::model::requests::ActionType;
use crate::model::{Error, Result, requests::ActionRequest, auth::User, permissions::FinePermission};
use crate::DataManager;
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get an [`ActionRequest`] from an SQL row.
pub(crate) fn get_request_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> ActionRequest {
pub(crate) fn get_request_from_row(x: &PostgresRow) -> ActionRequest {
ActionRequest {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -3,20 +3,13 @@ use crate::model::stacks::StackPrivacy;
use crate::model::{Error, Result, auth::User, stacks::StackBlock, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, params, query_row, query_rows};
impl DataManager {
/// Get a [`StackBlock`] from an SQL row.
pub(crate) fn get_stackblock_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> StackBlock {
pub(crate) fn get_stackblock_from_row(x: &PostgresRow) -> StackBlock {
StackBlock {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -8,20 +8,13 @@ use crate::model::{
};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`UserStack`] from an SQL row.
pub(crate) fn get_stack_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> UserStack {
pub(crate) fn get_stack_from_row(x: &PostgresRow) -> UserStack {
UserStack {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -4,20 +4,13 @@ use crate::model::permissions::FinePermission;
use crate::model::{Error, Result, uploads::MediaUpload};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_rows, params};
impl DataManager {
/// Get a [`MediaUpload`] from an SQL row.
pub(crate) fn get_upload_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> MediaUpload {
pub(crate) fn get_upload_from_row(x: &PostgresRow) -> MediaUpload {
MediaUpload {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -4,20 +4,11 @@ use crate::model::moderation::AuditLogEntry;
use crate::model::{Error, Result, auth::User, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`UserWarning`] from an SQL row.
pub(crate) fn get_user_warning_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> UserWarning {
pub(crate) fn get_user_warning_from_row(x: &PostgresRow) -> UserWarning {
UserWarning {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -2,20 +2,11 @@ use oiseau::cache::Cache;
use crate::model::{Error, Result, auth::User, auth::UserBlock, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`UserBlock`] from an SQL row.
pub(crate) fn get_userblock_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> UserBlock {
pub(crate) fn get_userblock_from_row(x: &PostgresRow) -> UserBlock {
UserBlock {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -4,20 +4,11 @@ use crate::model::requests::{ActionRequest, ActionType};
use crate::model::{Error, Result, auth::User, auth::UserFollow, permissions::FinePermission};
use crate::{auto_method, DataManager};
#[cfg(feature = "sqlite")]
use oiseau::SqliteRow;
#[cfg(feature = "postgres")]
use oiseau::PostgresRow;
use oiseau::{execute, get, query_row, query_rows, params};
use oiseau::{PostgresRow, execute, get, query_row, query_rows, params};
impl DataManager {
/// Get a [`UserFollow`] from an SQL row.
pub(crate) fn get_userfollow_from_row(
#[cfg(feature = "sqlite")] x: &SqliteRow<'_>,
#[cfg(feature = "postgres")] x: &PostgresRow,
) -> UserFollow {
pub(crate) fn get_userfollow_from_row(x: &PostgresRow) -> UserFollow {
UserFollow {
id: get!(x->0(i64)) as usize,
created: get!(x->1(i64)) as usize,

View file

@ -4,10 +4,3 @@ pub mod model;
pub use database::DataManager;
pub use oiseau::cache;
/// Tells us if pubsub capabilities are provided (via Redis).
///
/// If we have access to pubsub, community channels/messages will be available.
///
/// This is mostly used a flag for the UI.
pub const PUBSUB_ENABLED: bool = cfg!(feature = "redis");

View file

@ -260,6 +260,10 @@ pub struct Post {
pub title: String,
/// If the post is "open". Posts can act as tickets in a forge community.
pub is_open: bool,
/// The ID of the circle this post belongs to. 0 means no circle is connected.
///
/// If circle is not 0, community should be 0 (and vice versa).
pub circle: usize,
}
impl Post {
@ -287,6 +291,7 @@ impl Post {
poll_id,
title: String::new(),
is_open: true,
circle: 0,
}
}

View file

@ -1,6 +1,7 @@
pub mod addr;
pub mod apps;
pub mod auth;
pub mod channels;
pub mod communities;
pub mod communities_permissions;
pub mod moderation;
@ -8,15 +9,10 @@ pub mod oauth;
pub mod permissions;
pub mod reactions;
pub mod requests;
pub mod socket;
pub mod stacks;
pub mod uploads;
#[cfg(feature = "redis")]
pub mod channels;
#[cfg(feature = "redis")]
pub mod socket;
use std::fmt::Display;
use serde::{Deserialize, Serialize};