Add more db shite
This commit is contained in:
73
src/db/tables/records/awards.rs
Normal file
73
src/db/tables/records/awards.rs
Normal file
@@ -0,0 +1,73 @@
|
||||
use anyhow::Result;
|
||||
|
||||
use crate::db::CurrPool;
|
||||
|
||||
#[derive(Debug, Default, Clone)]
|
||||
pub struct AwardRecord {
|
||||
pub id: i64,
|
||||
pub user_id: i64,
|
||||
pub award_id: i64,
|
||||
pub author_id: i64,
|
||||
pub created_at: i64,
|
||||
}
|
||||
|
||||
impl AwardRecord {
|
||||
pub async fn insert_new(&self, pool: &CurrPool) -> Result<Self> {
|
||||
let session = sqlx::query_as!(
|
||||
AwardRecord,
|
||||
r#"
|
||||
INSERT INTO records_awards (user_id, award_id, author_id, created_at)
|
||||
VALUES ($1, $2, $3, $4)
|
||||
RETURNING *
|
||||
"#,
|
||||
self.user_id,
|
||||
self.award_id,
|
||||
self.author_id,
|
||||
self.created_at,
|
||||
)
|
||||
.fetch_one(pool)
|
||||
.await?;
|
||||
|
||||
Ok(session)
|
||||
}
|
||||
pub async fn get_by_id(pool: &CurrPool, id: i64) -> anyhow::Result<Self> {
|
||||
let session = sqlx::query_as!(
|
||||
AwardRecord,
|
||||
"SELECT * FROM records_awards WHERE id = $1",
|
||||
id
|
||||
)
|
||||
.fetch_one(pool)
|
||||
.await?;
|
||||
Ok(session)
|
||||
}
|
||||
pub async fn get_by_user_id(pool: &CurrPool, id: i64) -> anyhow::Result<Vec<Self>> {
|
||||
let session = sqlx::query_as!(
|
||||
AwardRecord,
|
||||
"SELECT * FROM records_awards WHERE user_id = $1",
|
||||
id
|
||||
)
|
||||
.fetch_all(pool)
|
||||
.await?;
|
||||
Ok(session)
|
||||
}
|
||||
pub async fn get_by_author_id(pool: &CurrPool, id: i64) -> anyhow::Result<Vec<Self>> {
|
||||
let session = sqlx::query_as!(
|
||||
AwardRecord,
|
||||
"SELECT * FROM records_awards WHERE author_id = $1",
|
||||
id
|
||||
)
|
||||
.fetch_all(pool)
|
||||
.await?;
|
||||
Ok(session)
|
||||
}
|
||||
pub async fn get_by_award_id(pool: &CurrPool, id: i64) -> anyhow::Result<Vec<Self>> {
|
||||
let session = sqlx::query_as!(
|
||||
AwardRecord,
|
||||
"SELECT * FROM records_awards WHERE award_id = $1",
|
||||
id
|
||||
)
|
||||
.fetch_all(pool)
|
||||
.await?;
|
||||
Ok(session)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user