From 5f4151e3044dc3f6849a357c398939463f028af6 Mon Sep 17 00:00:00 2001 From: Anshul Gupta Date: Sun, 21 Aug 2022 14:09:50 -0700 Subject: Adds RabbitMQ messaging and management hub --- rust/scraper/src/database/mod.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'rust/scraper/src/database/mod.rs') 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 = std::result::Result; @@ -22,3 +25,24 @@ pub trait DatabaseClient { async fn get_event_by_number(&self, meet_id: u32, number: u32) -> Result; async fn add_event(&self, event: &v1::Event) -> Result<()>; } + +#[async_trait::async_trait] +impl Output for T + where + T: DatabaseClient + Sync { + async fn add_swimmer(&self, swimmer: &v1::Swimmer) -> std::result::Result<(), Box> { + self.add_swimmer(swimmer).err_into().await + } + + async fn add_team(&self, team: &v1::Team) -> std::result::Result<(), Box> { + self.add_team(team).err_into().await + } + + async fn add_meet(&self, meet: &v1::SwimMeet) -> std::result::Result<(), Box> { + self.add_meet(meet).err_into().await + } + + async fn upsert_event(&self, event: &v1::Event) -> std::result::Result<(), Box> { + self.add_event(event).err_into().await + } +} \ No newline at end of file -- cgit v1.2.3