Skip to content

Commit f2df2d6

Browse files
authored
feat(db): Implement ReverseLookupInterface for MockDb (#2119)
1 parent d52fe7f commit f2df2d6

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

crates/diesel_models/src/reverse_lookup.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,14 @@ pub struct ReverseLookupNew {
3131
pub sk_id: String,
3232
pub source: String,
3333
}
34+
35+
impl From<ReverseLookupNew> for ReverseLookup {
36+
fn from(new: ReverseLookupNew) -> Self {
37+
Self {
38+
lookup_id: new.lookup_id,
39+
sk_id: new.sk_id,
40+
pk_id: new.pk_id,
41+
source: new.source,
42+
}
43+
}
44+
}

crates/router/src/db/reverse_lookup.rs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,31 @@ impl ReverseLookupInterface for Store {
4848
impl ReverseLookupInterface for MockDb {
4949
async fn insert_reverse_lookup(
5050
&self,
51-
_new: ReverseLookupNew,
51+
new: ReverseLookupNew,
5252
) -> CustomResult<ReverseLookup, errors::StorageError> {
53-
Err(errors::StorageError::MockDbError.into())
53+
let reverse_lookup_insert = ReverseLookup::from(new);
54+
self.reverse_lookups
55+
.lock()
56+
.await
57+
.push(reverse_lookup_insert.clone());
58+
Ok(reverse_lookup_insert)
5459
}
5560
async fn get_lookup_by_lookup_id(
5661
&self,
57-
_id: &str,
62+
lookup_id: &str,
5863
) -> CustomResult<ReverseLookup, errors::StorageError> {
59-
Err(errors::StorageError::MockDbError.into())
64+
self.reverse_lookups
65+
.lock()
66+
.await
67+
.iter()
68+
.find(|reverse_lookup| reverse_lookup.lookup_id == lookup_id)
69+
.ok_or(
70+
errors::StorageError::ValueNotFound(format!(
71+
"No reverse lookup found for lookup_id = {}",
72+
lookup_id
73+
))
74+
.into(),
75+
)
76+
.cloned()
6077
}
6178
}

crates/storage_impl/src/mock_db.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ pub struct MockDb {
3939
pub captures: Arc<Mutex<Vec<crate::store::capture::Capture>>>,
4040
pub merchant_key_store: Arc<Mutex<Vec<crate::store::merchant_key_store::MerchantKeyStore>>>,
4141
pub business_profiles: Arc<Mutex<Vec<crate::store::business_profile::BusinessProfile>>>,
42+
pub reverse_lookups: Arc<Mutex<Vec<store::ReverseLookup>>>,
4243
}
4344

4445
impl MockDb {
@@ -70,6 +71,7 @@ impl MockDb {
7071
captures: Default::default(),
7172
merchant_key_store: Default::default(),
7273
business_profiles: Default::default(),
74+
reverse_lookups: Default::default(),
7375
})
7476
}
7577
}

0 commit comments

Comments
 (0)