• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

geo-engine / geoengine / 11911118784

19 Nov 2024 10:06AM UTC coverage: 90.448% (-0.2%) from 90.687%
11911118784

push

github

web-flow
Merge pull request #994 from geo-engine/workspace-dependencies

use workspace dependencies, update toolchain, use global lock in expression

9 of 11 new or added lines in 6 files covered. (81.82%)

369 existing lines in 74 files now uncovered.

132871 of 146904 relevant lines covered (90.45%)

54798.62 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.67
/services/src/workflows/postgres_workflow_registry.rs
1
use crate::contexts::PostgresDb;
2
use crate::error::Result;
3
use crate::workflows::workflow::{Workflow, WorkflowId};
4
use crate::{error, workflows::registry::WorkflowRegistry};
5
use async_trait::async_trait;
6
use bb8_postgres::{
7
    tokio_postgres::tls::MakeTlsConnect, tokio_postgres::tls::TlsConnect, tokio_postgres::Socket,
8
};
9
use snafu::ResultExt;
10

11
#[async_trait]
12
impl<Tls> WorkflowRegistry for PostgresDb<Tls>
13
where
14
    Tls: MakeTlsConnect<Socket> + Clone + Send + Sync + 'static + std::fmt::Debug,
15
    <Tls as MakeTlsConnect<Socket>>::Stream: Send + Sync,
16
    <Tls as MakeTlsConnect<Socket>>::TlsConnect: Send,
17
    <<Tls as MakeTlsConnect<Socket>>::TlsConnect as TlsConnect<Socket>>::Future: Send,
18
{
19
    async fn register_workflow(&self, workflow: Workflow) -> Result<WorkflowId> {
103✔
20
        let conn = self.conn_pool.get().await?;
103✔
21
        let stmt = conn
103✔
22
            .prepare(
103✔
23
                "INSERT INTO workflows (id, workflow) VALUES ($1, $2) 
103✔
24
            ON CONFLICT DO NOTHING;",
103✔
25
            )
103✔
26
            .await?;
85✔
27

28
        let workflow_id = WorkflowId::from_hash(&workflow);
103✔
29

103✔
30
        conn.execute(
103✔
31
            &stmt,
103✔
32
            &[
103✔
33
                &workflow_id,
103✔
34
                &serde_json::to_value(&workflow).context(error::SerdeJson)?,
103✔
35
            ],
36
        )
37
        .await?;
91✔
38

39
        Ok(workflow_id)
103✔
40
    }
206✔
41

42
    async fn load_workflow(&self, id: &WorkflowId) -> Result<Workflow> {
33✔
43
        let conn = self.conn_pool.get().await?;
33✔
44
        let stmt = conn
33✔
45
            .prepare("SELECT workflow FROM workflows WHERE id = $1")
33✔
46
            .await?;
27✔
47

48
        let row = conn.query(&stmt, &[&id]).await?;
33✔
49

50
        if row.is_empty() {
33✔
UNCOV
51
            return Err(error::Error::NoWorkflowForGivenId);
×
52
        }
33✔
53

33✔
54
        Ok(serde_json::from_value(row[0].get(0)).context(error::SerdeJson)?)
33✔
55
    }
66✔
56
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc