feat: wait invoice is stream of request_lookup_id

This commit is contained in:
thesimplekid
2024-07-05 13:03:15 +01:00
parent 6a315fc3b9
commit 8b775cb7f1
8 changed files with 80 additions and 13 deletions

View File

@@ -1,2 +1,5 @@
ALTER TABLE mint_quote ADD request_lookup_id TEXT;
ALTER TABLE melt_quote ADD request_lookup_id TEXT;
ALTER TABLE mint_quote ADD request_lookup_id TEXT UNIQUE;
ALTER TABLE melt_quote ADD request_lookup_id TEXT UNIQUE;
CREATE INDEX IF NOT EXISTS mint_quote_request_lookup_id_index ON mint_quote(request_lookup_id);
CREATE INDEX IF NOT EXISTS melt_quote_request_lookup_id_index ON melt_quote(request_lookup_id);

View File

@@ -198,6 +198,32 @@ WHERE request=?;
Ok(Some(sqlite_row_to_mint_quote(rec)?))
}
async fn get_mint_quote_by_request_lookup_id(
&self,
request_lookup_id: &str,
) -> Result<Option<MintQuote>, Self::Err> {
let rec = sqlx::query(
r#"
SELECT *
FROM mint_quote
WHERE request_lookup_id=?;
"#,
)
.bind(request_lookup_id)
.fetch_one(&self.pool)
.await;
let rec = match rec {
Ok(rec) => rec,
Err(err) => match err {
sqlx::Error::RowNotFound => return Ok(None),
_ => return Err(Error::SQLX(err).into()),
},
};
Ok(Some(sqlite_row_to_mint_quote(rec)?))
}
async fn update_mint_quote_state(
&self,
quote_id: &str,