mirror of https://github.com/TaKO8Ki/gobang
move utils into database module
parent
8f26ffed09
commit
781f07f211
@ -0,0 +1,27 @@
|
|||||||
|
pub mod mysql;
|
||||||
|
|
||||||
|
pub use mysql::MySqlPool;
|
||||||
|
|
||||||
|
use async_trait::async_trait;
|
||||||
|
use database_tree::{Database, Table};
|
||||||
|
|
||||||
|
pub const RECORDS_LIMIT_PER_PAGE: u8 = 200;
|
||||||
|
|
||||||
|
#[async_trait]
|
||||||
|
pub trait Pool {
|
||||||
|
async fn get_databases(&self) -> anyhow::Result<Vec<Database>>;
|
||||||
|
async fn get_tables(&self, database: String) -> anyhow::Result<Vec<Table>>;
|
||||||
|
async fn get_records(
|
||||||
|
&self,
|
||||||
|
database: &str,
|
||||||
|
table: &str,
|
||||||
|
page: u16,
|
||||||
|
filter: Option<String>,
|
||||||
|
) -> anyhow::Result<(Vec<String>, Vec<Vec<String>>)>;
|
||||||
|
async fn get_columns(
|
||||||
|
&self,
|
||||||
|
database: &str,
|
||||||
|
table: &str,
|
||||||
|
) -> anyhow::Result<(Vec<String>, Vec<Vec<String>>)>;
|
||||||
|
async fn close(&self);
|
||||||
|
}
|
@ -1,30 +1,10 @@
|
|||||||
|
use super::{Pool, RECORDS_LIMIT_PER_PAGE};
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use chrono::NaiveDate;
|
use chrono::NaiveDate;
|
||||||
use database_tree::{Database, Table};
|
use database_tree::{Database, Table};
|
||||||
use futures::TryStreamExt;
|
use futures::TryStreamExt;
|
||||||
use sqlx::mysql::{MySqlColumn, MySqlPool as MPool, MySqlRow};
|
use sqlx::mysql::{MySqlColumn, MySqlPool as MPool, MySqlRow};
|
||||||
use sqlx::{Column as _, Row, TypeInfo};
|
use sqlx::{Column as _, Row as _, TypeInfo as _};
|
||||||
|
|
||||||
pub const RECORDS_LIMIT_PER_PAGE: u8 = 200;
|
|
||||||
|
|
||||||
#[async_trait]
|
|
||||||
pub trait Pool {
|
|
||||||
async fn get_databases(&self) -> anyhow::Result<Vec<Database>>;
|
|
||||||
async fn get_tables(&self, database: String) -> anyhow::Result<Vec<Table>>;
|
|
||||||
async fn get_records(
|
|
||||||
&self,
|
|
||||||
database: &str,
|
|
||||||
table: &str,
|
|
||||||
page: u16,
|
|
||||||
filter: Option<String>,
|
|
||||||
) -> anyhow::Result<(Vec<String>, Vec<Vec<String>>)>;
|
|
||||||
async fn get_columns(
|
|
||||||
&self,
|
|
||||||
database: &str,
|
|
||||||
table: &str,
|
|
||||||
) -> anyhow::Result<(Vec<String>, Vec<Vec<String>>)>;
|
|
||||||
async fn close(&self);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct MySqlPool {
|
pub struct MySqlPool {
|
||||||
pool: MPool,
|
pool: MPool,
|
Loading…
Reference in New Issue