create reservatoin status getter that returns enum
This commit is contained in:
parent
21081c3206
commit
07a10fae0e
28
Cargo.lock
generated
28
Cargo.lock
generated
@ -187,6 +187,15 @@ dependencies = [
|
|||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "convert_case"
|
||||||
|
version = "0.6.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
|
||||||
|
dependencies = [
|
||||||
|
"unicode-segmentation",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-foundation"
|
name = "core-foundation"
|
||||||
version = "0.9.4"
|
version = "0.9.4"
|
||||||
@ -440,6 +449,18 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "enum_stringify"
|
||||||
|
version = "0.6.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f9ff9e4dbfa8fb0fd68ff9e4da874ad10774af372f0e2b8d1649c63026434d37"
|
||||||
|
dependencies = [
|
||||||
|
"convert_case",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "envconfig"
|
name = "envconfig"
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
@ -714,6 +735,7 @@ dependencies = [
|
|||||||
"diesel-async",
|
"diesel-async",
|
||||||
"diesel-derive-enum",
|
"diesel-derive-enum",
|
||||||
"dotenvy",
|
"dotenvy",
|
||||||
|
"enum_stringify",
|
||||||
"envconfig",
|
"envconfig",
|
||||||
"serde",
|
"serde",
|
||||||
"teloxide",
|
"teloxide",
|
||||||
@ -2438,6 +2460,12 @@ version = "0.1.3"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
|
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unicode-segmentation"
|
||||||
|
version = "1.12.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-xid"
|
name = "unicode-xid"
|
||||||
version = "0.2.6"
|
version = "0.2.6"
|
||||||
|
|||||||
@ -10,6 +10,7 @@ diesel = { version = "2.2.8", features = ["postgres"] }
|
|||||||
diesel-async = { version = "0.5.2", features = ["bb8", "postgres"] }
|
diesel-async = { version = "0.5.2", features = ["bb8", "postgres"] }
|
||||||
diesel-derive-enum = "2.1.0"
|
diesel-derive-enum = "2.1.0"
|
||||||
dotenvy = "0.15.7"
|
dotenvy = "0.15.7"
|
||||||
|
enum_stringify = "0.6.3"
|
||||||
envconfig = "0.11.0"
|
envconfig = "0.11.0"
|
||||||
serde = { version = "1.0.219", features = ["derive", "serde_derive"] }
|
serde = { version = "1.0.219", features = ["derive", "serde_derive"] }
|
||||||
teloxide = { version = "0.14.0", features = ["macros", "postgres-storage-nativetls"] }
|
teloxide = { version = "0.14.0", features = ["macros", "postgres-storage-nativetls"] }
|
||||||
|
|||||||
18
src/db.rs
18
src/db.rs
@ -9,6 +9,24 @@ use diesel_async::pooled_connection::bb8::Pool;
|
|||||||
use diesel_async::pooled_connection::AsyncDieselConnectionManager;
|
use diesel_async::pooled_connection::AsyncDieselConnectionManager;
|
||||||
use diesel_async::AsyncPgConnection;
|
use diesel_async::AsyncPgConnection;
|
||||||
use diesel_async::RunQueryDsl;
|
use diesel_async::RunQueryDsl;
|
||||||
|
use enum_stringify::EnumStringify;
|
||||||
|
|
||||||
|
#[derive(EnumStringify)]
|
||||||
|
#[enum_stringify(case = "flat")]
|
||||||
|
pub enum ReservationStatus {
|
||||||
|
Booked,
|
||||||
|
Paid,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait GetReservationStatus {
|
||||||
|
fn get_status(&self) -> Option<ReservationStatus>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GetReservationStatus for models::Reservation {
|
||||||
|
fn get_status(&self) -> Option<ReservationStatus> {
|
||||||
|
ReservationStatus::try_from(self.status.clone()).ok()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct DB {
|
pub struct DB {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user