diff options
author | 2022-08-21 14:09:50 -0700 | |
---|---|---|
committer | 2022-08-21 14:09:50 -0700 | |
commit | 5f4151e3044dc3f6849a357c398939463f028af6 (patch) | |
tree | 8f8c2610544d8bf1df426e4e41cd6a6ea676618f /rust/scraper/src/database/mod.rs | |
parent | a75e41e9cce5d2e4ede08ef2def8add124a49c73 (diff) | |
download | touchpad-5f4151e3044dc3f6849a357c398939463f028af6.tar.gz touchpad-5f4151e3044dc3f6849a357c398939463f028af6.tar.zst touchpad-5f4151e3044dc3f6849a357c398939463f028af6.zip |
Adds RabbitMQ messaging and management hub
Diffstat (limited to 'rust/scraper/src/database/mod.rs')
-rw-r--r-- | rust/scraper/src/database/mod.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/rust/scraper/src/database/mod.rs b/rust/scraper/src/database/mod.rs index d712259..ee15e3b 100644 --- a/rust/scraper/src/database/mod.rs +++ b/rust/scraper/src/database/mod.rs @@ -1,9 +1,12 @@ pub mod postgres; pub mod error; +use std::error::Error; +use futures::TryFutureExt; pub use error::DatabaseError; use proto::touchpad::common::v1; +use crate::hub::Output; type Result<T> = std::result::Result<T, DatabaseError>; @@ -22,3 +25,24 @@ pub trait DatabaseClient { async fn get_event_by_number(&self, meet_id: u32, number: u32) -> Result<v1::Event>; async fn add_event(&self, event: &v1::Event) -> Result<()>; } + +#[async_trait::async_trait] +impl<T> Output for T + where + T: DatabaseClient + Sync { + async fn add_swimmer(&self, swimmer: &v1::Swimmer) -> std::result::Result<(), Box<dyn Error>> { + self.add_swimmer(swimmer).err_into().await + } + + async fn add_team(&self, team: &v1::Team) -> std::result::Result<(), Box<dyn Error>> { + self.add_team(team).err_into().await + } + + async fn add_meet(&self, meet: &v1::SwimMeet) -> std::result::Result<(), Box<dyn Error>> { + self.add_meet(meet).err_into().await + } + + async fn upsert_event(&self, event: &v1::Event) -> std::result::Result<(), Box<dyn std::error::Error>> { + self.add_event(event).err_into().await + } +}
\ No newline at end of file |