rename RecyclePolicy→RotationPolicy, collapse AccessMode, clean OIDC refs
This commit is contained in:
@@ -4,7 +4,7 @@ use sqlx::{Row, SqlitePool};
|
||||
use uuid::Uuid;
|
||||
|
||||
use adapter_common::{
|
||||
map_sqlx_error, parse_dt, parse_enum_or_default, parse_recycle_policy, parse_schedule_config,
|
||||
map_sqlx_error, parse_dt, parse_enum_or_default, parse_rotation_policy, parse_schedule_config,
|
||||
parse_uuid, serialize_enum_as_string,
|
||||
};
|
||||
use domain::{
|
||||
@@ -23,7 +23,7 @@ impl SqliteChannelRepository {
|
||||
}
|
||||
}
|
||||
|
||||
const SELECT_COLS: &str = "id, owner_id, name, description, timezone, schedule_config, recycle_policy, auto_schedule, access_mode, access_password_hash, logo, logo_position, logo_opacity, webhook_url, webhook_poll_interval_secs, webhook_body_template, webhook_headers, created_at, updated_at";
|
||||
const SELECT_COLS: &str = "id, owner_id, name, description, timezone, schedule_config, recycle_policy AS rotation_policy, auto_schedule, access_mode, logo, logo_position, logo_opacity, webhook_url, webhook_poll_interval_secs, webhook_body_template, webhook_headers, created_at, updated_at";
|
||||
|
||||
#[derive(Debug, sqlx::FromRow)]
|
||||
struct ChannelRow {
|
||||
@@ -33,10 +33,9 @@ struct ChannelRow {
|
||||
description: Option<String>,
|
||||
timezone: String,
|
||||
schedule_config: String,
|
||||
recycle_policy: String,
|
||||
rotation_policy: String,
|
||||
auto_schedule: i64,
|
||||
access_mode: String,
|
||||
access_password_hash: Option<String>,
|
||||
logo: Option<String>,
|
||||
logo_position: String,
|
||||
logo_opacity: f32,
|
||||
@@ -53,7 +52,7 @@ impl ChannelRow {
|
||||
let id = ChannelId::from_uuid(parse_uuid(&self.id, "channel id")?);
|
||||
let owner_id = UserId::from_uuid(parse_uuid(&self.owner_id, "owner id")?);
|
||||
let schedule_config = parse_schedule_config(&self.schedule_config)?;
|
||||
let recycle_policy = parse_recycle_policy(&self.recycle_policy)?;
|
||||
let rotation_policy = parse_rotation_policy(&self.rotation_policy)?;
|
||||
let access_mode: AccessMode = parse_enum_or_default(self.access_mode);
|
||||
let logo_position: LogoPosition = parse_enum_or_default(self.logo_position);
|
||||
|
||||
@@ -64,10 +63,9 @@ impl ChannelRow {
|
||||
description: self.description,
|
||||
timezone: self.timezone,
|
||||
schedule_config,
|
||||
recycle_policy,
|
||||
rotation_policy,
|
||||
auto_schedule: self.auto_schedule != 0,
|
||||
access_mode,
|
||||
access_password_hash: self.access_password_hash,
|
||||
logo: self.logo,
|
||||
logo_position,
|
||||
logo_opacity: self.logo_opacity,
|
||||
@@ -109,8 +107,8 @@ impl ChannelCommand for SqliteChannelRepository {
|
||||
async fn save(&self, channel: &Channel) -> DomainResult<()> {
|
||||
let schedule_config = serde_json::to_string(channel.schedule_config())
|
||||
.map_err(|e| DomainError::RepositoryError(format!("serialize schedule_config: {e}")))?;
|
||||
let recycle_policy = serde_json::to_string(channel.recycle_policy())
|
||||
.map_err(|e| DomainError::RepositoryError(format!("serialize recycle_policy: {e}")))?;
|
||||
let rotation_policy = serde_json::to_string(channel.rotation_policy())
|
||||
.map_err(|e| DomainError::RepositoryError(format!("serialize rotation_policy: {e}")))?;
|
||||
let access_mode = serialize_enum_as_string(channel.access_mode(), "public");
|
||||
let logo_position = serialize_enum_as_string(channel.logo_position(), "top_right");
|
||||
|
||||
@@ -118,10 +116,10 @@ impl ChannelCommand for SqliteChannelRepository {
|
||||
r#"
|
||||
INSERT INTO channels
|
||||
(id, owner_id, name, description, timezone, schedule_config, recycle_policy,
|
||||
auto_schedule, access_mode, access_password_hash, logo, logo_position,
|
||||
auto_schedule, access_mode, logo, logo_position,
|
||||
logo_opacity, webhook_url, webhook_poll_interval_secs, webhook_body_template,
|
||||
webhook_headers, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
ON CONFLICT(id) DO UPDATE SET
|
||||
name = excluded.name,
|
||||
description = excluded.description,
|
||||
@@ -130,7 +128,6 @@ impl ChannelCommand for SqliteChannelRepository {
|
||||
recycle_policy = excluded.recycle_policy,
|
||||
auto_schedule = excluded.auto_schedule,
|
||||
access_mode = excluded.access_mode,
|
||||
access_password_hash = excluded.access_password_hash,
|
||||
logo = excluded.logo,
|
||||
logo_position = excluded.logo_position,
|
||||
logo_opacity = excluded.logo_opacity,
|
||||
@@ -147,10 +144,9 @@ impl ChannelCommand for SqliteChannelRepository {
|
||||
.bind(channel.description())
|
||||
.bind(channel.timezone())
|
||||
.bind(&schedule_config)
|
||||
.bind(&recycle_policy)
|
||||
.bind(&rotation_policy)
|
||||
.bind(channel.auto_schedule() as i64)
|
||||
.bind(&access_mode)
|
||||
.bind(channel.access_password_hash())
|
||||
.bind(channel.logo())
|
||||
.bind(&logo_position)
|
||||
.bind(channel.logo_opacity())
|
||||
|
||||
Reference in New Issue
Block a user