mirror of
https://github.com/n08i40k/schedule-parser-rusted.git
synced 2025-12-06 17:57:47 +03:00
Использование функции для осуществления операций в базе данных вместо ручного блокирования мьютекса.
This commit is contained in:
@@ -7,8 +7,7 @@ use diesel::{Connection, PgConnection};
|
||||
use sha1::{Digest, Sha1};
|
||||
use std::env;
|
||||
use std::hash::Hash;
|
||||
use std::ops::DerefMut;
|
||||
use std::sync::{Mutex, MutexGuard};
|
||||
use std::sync::Mutex;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Schedule {
|
||||
@@ -74,23 +73,6 @@ impl AppState {
|
||||
}
|
||||
}
|
||||
|
||||
impl AppState {
|
||||
/// Получение объекта соединения с базой данных PostgreSQL
|
||||
pub fn connection(&self) -> MutexGuard<PgConnection> {
|
||||
self.database.lock().unwrap()
|
||||
}
|
||||
|
||||
pub fn lock_connection<T, F>(&self, f: F) -> T
|
||||
where
|
||||
F: FnOnce(&mut PgConnection) -> T,
|
||||
{
|
||||
let mut lock = self.connection();
|
||||
let conn = lock.deref_mut();
|
||||
|
||||
f(conn)
|
||||
}
|
||||
}
|
||||
|
||||
/// Создание нового объекта web::Data<AppState>
|
||||
pub fn app_state() -> web::Data<AppState> {
|
||||
web::Data::new(AppState::new())
|
||||
|
||||
Reference in New Issue
Block a user