Create client to establish connection with discord and add basic framework with sample command

This commit is contained in:
2025-01-29 22:22:08 +00:00
parent fc07051558
commit a719b143de
50 changed files with 1712 additions and 128 deletions

View File

@@ -0,0 +1,29 @@
use diesel::Connection;
use diesel::SqliteConnection;
use diesel_async::pooled_connection::bb8::Pool;
use diesel_async::pooled_connection::AsyncDieselConnectionManager;
use diesel_migrations::embed_migrations;
use diesel_migrations::EmbeddedMigrations;
use diesel_migrations::MigrationHarness;
use repository::SqliteRepositoryProvider;
use crate::BackendError;
pub mod repository;
mod schema;
const MIGRATIONS: EmbeddedMigrations = embed_migrations!("migrations/sqlite");
pub fn run_pending_migrations(database_url: &str) -> Result<(), BackendError> {
let mut connection = SqliteConnection::establish(database_url)?;
connection
.run_pending_migrations(MIGRATIONS)
.map_err(BackendError::DieselMigrationError)?;
Ok(())
}
pub async fn repository_provider(database_url: &str) -> Result<SqliteRepositoryProvider, BackendError> {
let config = AsyncDieselConnectionManager::new(database_url);
let pool = Pool::builder().build(config).await?;
Ok(SqliteRepositoryProvider::new(pool))
}