mirror of
https://github.com/danbulant/Portfolio
synced 2026-06-18 22:11:14 +00:00
45 lines
No EOL
1.8 KiB
Rust
45 lines
No EOL
1.8 KiB
Rust
use entity::admin_session;
|
|
use sea_orm::DbConn;
|
|
|
|
use crate::Query;
|
|
use crate::error::ServiceError;
|
|
|
|
pub async fn get_recipients(db: &DbConn, candidate_pubkey: &str) -> Result<Vec<String>, ServiceError> {
|
|
let mut admin_public_keys = Query::get_all_admin_public_keys(db).await?;
|
|
let mut recipients = vec![candidate_pubkey.to_string()];
|
|
recipients.append(&mut admin_public_keys);
|
|
Ok(recipients)
|
|
}
|
|
|
|
pub async fn get_memory_sqlite_connection() -> sea_orm::DbConn {
|
|
use entity::{admin, candidate, parent, session};
|
|
use sea_orm::{Schema, Database};
|
|
use sea_orm::{sea_query::TableCreateStatement, ConnectionTrait, DbBackend};
|
|
|
|
|
|
let base_url = "sqlite::memory:";
|
|
let db: DbConn = Database::connect(base_url).await.unwrap();
|
|
|
|
let schema = Schema::new(DbBackend::Sqlite);
|
|
let stmt: TableCreateStatement = schema.create_table_from_entity(candidate::Entity);
|
|
let stmt2: TableCreateStatement = schema.create_table_from_entity(admin::Entity);
|
|
let stmt3: TableCreateStatement = schema.create_table_from_entity(session::Entity);
|
|
let stmt4: TableCreateStatement = schema.create_table_from_entity(parent::Entity);
|
|
let stmt5: TableCreateStatement = schema.create_table_from_entity(admin_session::Entity);
|
|
db.execute(db.get_database_backend().build(&stmt)).await.unwrap();
|
|
db.execute(db.get_database_backend().build(&stmt2)).await.unwrap();
|
|
db.execute(db.get_database_backend().build(&stmt3)).await.unwrap();
|
|
db.execute(db.get_database_backend().build(&stmt4)).await.unwrap();
|
|
db.execute(db.get_database_backend().build(&stmt5)).await.unwrap();
|
|
db
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::get_memory_sqlite_connection;
|
|
|
|
#[tokio::test]
|
|
async fn test_get_memory_sqlite_connection() {
|
|
get_memory_sqlite_connection().await;
|
|
}
|
|
} |