Files
kompress_eshop/src/shared/shipping.rs
2026-06-27 18:03:02 +02:00

32 lines
945 B
Rust

use loco_rs::prelude::*;
use sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, IntoActiveModel, QueryFilter, Set};
use crate::{
models::shipping_methods,
shared::settings,
};
pub fn packeta_ready(ctx: &AppContext) -> bool {
["packeta_api_key", "packeta_api_password", "packeta_sender_label"]
.iter()
.all(|key| settings::get(ctx, key).is_some_and(|value| !value.trim().is_empty()))
}
pub async fn disable_packeta_if_unconfigured(ctx: &AppContext) -> Result<()> {
if packeta_ready(ctx) {
return Ok(());
}
let Some(method) = shipping_methods::Entity::find()
.filter(shipping_methods::Column::Carrier.eq("packeta"))
.filter(shipping_methods::Column::Enabled.eq(true))
.one(&ctx.db)
.await?
else {
return Ok(());
};
let mut active = method.into_active_model();
active.enabled = Set(false);
active.update(&ctx.db).await?;
Ok(())
}