Fix orphaned channels issue again
This commit is contained in:
parent
314c72e132
commit
094d210f64
@ -172,7 +172,7 @@ pub async fn import_reminders(
|
|||||||
|
|
||||||
create_reminder(
|
create_reminder(
|
||||||
ctx.inner(),
|
ctx.inner(),
|
||||||
transaction,
|
pool.inner(),
|
||||||
GuildId(id),
|
GuildId(id),
|
||||||
UserId(user_id),
|
UserId(user_id),
|
||||||
reminder,
|
reminder,
|
||||||
|
@ -249,9 +249,9 @@ pub async fn create_reminder_template(
|
|||||||
Ok(json!({}))
|
Ok(json!({}))
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
warn!("Could not fetch templates from {}: {:?}", id, e);
|
warn!("Could not create template for {}: {:?}", id, e);
|
||||||
|
|
||||||
json_err!("Could not get templates")
|
json_err!("Could not create template")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ use serenity::{
|
|||||||
http::Http,
|
http::Http,
|
||||||
model::id::{ChannelId, GuildId, UserId},
|
model::id::{ChannelId, GuildId, UserId},
|
||||||
};
|
};
|
||||||
use sqlx::{types::Json, Executor, MySql, Pool};
|
use sqlx::{types::Json, Executor};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
check_guild_subscription, check_subscription,
|
check_guild_subscription, check_subscription,
|
||||||
@ -358,6 +358,23 @@ pub async fn create_reminder(
|
|||||||
user_id: UserId,
|
user_id: UserId,
|
||||||
reminder: Reminder,
|
reminder: Reminder,
|
||||||
) -> JsonResult {
|
) -> JsonResult {
|
||||||
|
// check guild in db
|
||||||
|
match sqlx::query!("SELECT 1 as A FROM guilds WHERE guild = ?", guild_id.0)
|
||||||
|
.fetch_one(pool)
|
||||||
|
.await
|
||||||
|
{
|
||||||
|
Err(sqlx::Error::RowNotFound) => {
|
||||||
|
if sqlx::query!("INSERT INTO guilds (guild) VALUES (?)", guild_id.0)
|
||||||
|
.execute(pool)
|
||||||
|
.await
|
||||||
|
.is_err()
|
||||||
|
{
|
||||||
|
return Err(json!({"error": "Guild could not be created"}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
|
||||||
// validate channel
|
// validate channel
|
||||||
let channel = ChannelId(reminder.channel).to_channel_cached(&ctx);
|
let channel = ChannelId(reminder.channel).to_channel_cached(&ctx);
|
||||||
let channel_exists = channel.is_some();
|
let channel_exists = channel.is_some();
|
||||||
|
Loading…
Reference in New Issue
Block a user