revolt_database/models/safety_reports/ops/
reference.rs

1use revolt_result::Result;
2
3use crate::ReferenceDb;
4use crate::Report;
5
6use super::AbstractReport;
7
8#[async_trait]
9impl AbstractReport for ReferenceDb {
10    /// Insert a new report into the database
11    async fn insert_report(&self, report: &Report) -> Result<()> {
12        let mut reports = self.safety_reports.lock().await;
13        if reports.contains_key(&report.id) {
14            Err(create_database_error!("insert", "report"))
15        } else {
16            reports.insert(report.id.to_string(), report.clone());
17            Ok(())
18        }
19    }
20}