Split intervals
This commit is contained in:
@ -51,16 +51,19 @@ pub async fn bot_data(cookies: &CookieJar<'_>, pool: &State<Pool<MySql>>) -> Jso
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let schedule = sqlx::query_as_unchecked!(
|
||||
let schedule_once = sqlx::query_as_unchecked!(
|
||||
TimeFrame,
|
||||
"SELECT
|
||||
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(`utc_time`) / 60) * 60) AS `time_key`,
|
||||
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(`utc_time`) / 600) * 600) AS `time_key`,
|
||||
COUNT(1) AS `count`
|
||||
FROM reminders
|
||||
WHERE
|
||||
`utc_time` < DATE_ADD(NOW(), INTERVAL 1 DAY) AND
|
||||
`utc_time` >= NOW() AND
|
||||
`enabled` = 1
|
||||
`enabled` = 1 AND
|
||||
`interval_seconds` IS NULL AND
|
||||
`interval_months` IS NULL AND
|
||||
`interval_days` IS NULL
|
||||
GROUP BY `time_key`
|
||||
ORDER BY `time_key`"
|
||||
)
|
||||
@ -68,16 +71,40 @@ pub async fn bot_data(cookies: &CookieJar<'_>, pool: &State<Pool<MySql>>) -> Jso
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let schedule_long = sqlx::query_as_unchecked!(
|
||||
let schedule_interval = sqlx::query_as_unchecked!(
|
||||
TimeFrame,
|
||||
"SELECT
|
||||
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(`utc_time`) / 600) * 600) AS `time_key`,
|
||||
COUNT(1) AS `count`
|
||||
FROM reminders
|
||||
WHERE
|
||||
`utc_time` < DATE_ADD(NOW(), INTERVAL 1 DAY) AND
|
||||
`utc_time` >= NOW() AND
|
||||
`enabled` = 1 AND (
|
||||
`interval_seconds` IS NOT NULL OR
|
||||
`interval_months` IS NOT NULL OR
|
||||
`interval_days` IS NOT NULL
|
||||
)
|
||||
GROUP BY `time_key`
|
||||
ORDER BY `time_key`"
|
||||
)
|
||||
.fetch_all(pool.inner())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let schedule_once_long = sqlx::query_as_unchecked!(
|
||||
TimeFrame,
|
||||
"SELECT
|
||||
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(`utc_time`) / 86400) * 86400) AS `time_key`,
|
||||
COUNT(1) AS `count`
|
||||
FROM reminders
|
||||
WHERE
|
||||
`utc_time` < DATE_ADD(NOW(), INTERVAL 31 DAY) AND
|
||||
`utc_time` < DATE_ADD(NOW(), INTERVAL 14 DAY) AND
|
||||
`utc_time` >= NOW() AND
|
||||
`enabled` = 1
|
||||
`enabled` = 1 AND
|
||||
`interval_seconds` IS NULL AND
|
||||
`interval_months` IS NULL AND
|
||||
`interval_days` IS NULL
|
||||
GROUP BY `time_key`
|
||||
ORDER BY `time_key`"
|
||||
)
|
||||
@ -85,5 +112,36 @@ pub async fn bot_data(cookies: &CookieJar<'_>, pool: &State<Pool<MySql>>) -> Jso
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
Ok(json!({ "backlog": backlog.backlog, "schedule": schedule, "scheduleLong": schedule_long }))
|
||||
let schedule_interval_long = sqlx::query_as_unchecked!(
|
||||
TimeFrame,
|
||||
"SELECT
|
||||
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(`utc_time`) / 86400) * 86400) AS `time_key`,
|
||||
COUNT(1) AS `count`
|
||||
FROM reminders
|
||||
WHERE
|
||||
`utc_time` < DATE_ADD(NOW(), INTERVAL 14 DAY) AND
|
||||
`utc_time` >= NOW() AND
|
||||
`enabled` = 1 AND (
|
||||
`interval_seconds` IS NOT NULL OR
|
||||
`interval_months` IS NOT NULL OR
|
||||
`interval_days` IS NOT NULL
|
||||
)
|
||||
GROUP BY `time_key`
|
||||
ORDER BY `time_key`"
|
||||
)
|
||||
.fetch_all(pool.inner())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
Ok(json!({
|
||||
"backlog": backlog.backlog,
|
||||
"scheduleShort": {
|
||||
"once": schedule_once,
|
||||
"interval": schedule_interval
|
||||
},
|
||||
"scheduleLong": {
|
||||
"once": schedule_once_long,
|
||||
"interval": schedule_interval_long,
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
Reference in New Issue
Block a user