use crate::database::pool::shared::pool;
use sqlx::postgres::{PgArguments, PgQueryResult, PgRow};
use sqlx::query::Query;
use sqlx::Postgres;
type Raw<'q> = Query<'q, Postgres, PgArguments>;
pub async fn execute(query: Raw<'_>) -> Result<PgQueryResult, sqlx::Error> {
query.execute(pool().await).await
}
pub async fn query_one(query: Raw<'_>) -> Result<PgRow, sqlx::Error> {
query.fetch_one(pool().await).await
}
pub async fn query_all(query: Raw<'_>) -> Result<Vec<PgRow>, sqlx::Error> {
query.fetch_all(pool().await).await
}
pub async fn query_optional(query: Raw<'_>) -> Result<Option<PgRow>, sqlx::Error> {
query.fetch_optional(pool().await).await
}