Skip to content

Commit 9d799a4

Browse files
authored
refactor: move tokenserver's Db to async-trait (#1799)
Closes STOR-142
1 parent ffade2f commit 9d799a4

File tree

4 files changed

+195
-133
lines changed

4 files changed

+195
-133
lines changed

tokenserver-db/src/error.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use syncserver_db_common::error::SqlError;
77
use thiserror::Error;
88
use tokenserver_common::TokenserverError;
99

10-
pub(crate) type DbFuture<'a, T> = syncserver_db_common::DbFuture<'a, T, DbError>;
1110
pub(crate) type DbResult<T> = Result<T, DbError>;
1211

1312
/// An error type that represents any database-related errors that may occur while processing a

tokenserver-db/src/lib.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,3 @@ pub mod results;
1313

1414
pub use models::{Db, TokenserverDb};
1515
pub use pool::{DbPool, TokenserverPool};
16-
17-
#[macro_export]
18-
macro_rules! async_db_method {
19-
($name:ident, $async_name:path, $type:ident) => {
20-
async_db_method!($name, $async_name, $type, results::$type);
21-
};
22-
($name:ident, $async_name:path, $type:ident, $result:ty) => {
23-
fn $name(&mut self, params: params::$type) -> DbFuture<'_, $result, DbError> {
24-
Box::pin($async_name(self, params))
25-
}
26-
};
27-
}

tokenserver-db/src/mock.rs

Lines changed: 60 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#![allow(clippy::new_without_default)]
22

33
use async_trait::async_trait;
4-
use futures::future;
54
use syncserver_db_common::{GetPoolState, PoolState};
65

7-
use super::error::{DbError, DbFuture};
6+
use super::error::DbError;
87
use super::models::Db;
98
use super::params;
109
use super::pool::DbPool;
@@ -49,112 +48,125 @@ impl MockDb {
4948
}
5049
}
5150

51+
#[async_trait(?Send)]
5252
impl Db for MockDb {
53-
fn replace_user(&mut self, _params: params::ReplaceUser) -> DbFuture<'_, results::ReplaceUser> {
54-
Box::pin(future::ok(()))
53+
async fn replace_user(
54+
&mut self,
55+
_params: params::ReplaceUser,
56+
) -> Result<results::ReplaceUser, DbError> {
57+
Ok(())
5558
}
5659

57-
fn replace_users(
60+
async fn replace_users(
5861
&mut self,
5962
_params: params::ReplaceUsers,
60-
) -> DbFuture<'_, results::ReplaceUsers> {
61-
Box::pin(future::ok(()))
63+
) -> Result<results::ReplaceUsers, DbError> {
64+
Ok(())
6265
}
6366

64-
fn post_user(&mut self, _params: params::PostUser) -> DbFuture<'_, results::PostUser> {
65-
Box::pin(future::ok(results::PostUser::default()))
67+
async fn post_user(&mut self, _params: params::PostUser) -> Result<results::PostUser, DbError> {
68+
Ok(results::PostUser::default())
6669
}
6770

68-
fn put_user(&mut self, _params: params::PutUser) -> DbFuture<'_, results::PutUser> {
69-
Box::pin(future::ok(()))
71+
async fn put_user(&mut self, _params: params::PutUser) -> Result<results::PutUser, DbError> {
72+
Ok(())
7073
}
7174

72-
fn check(&mut self) -> DbFuture<'_, results::Check> {
73-
Box::pin(future::ok(true))
75+
async fn check(&mut self) -> Result<results::Check, DbError> {
76+
Ok(true)
7477
}
7578

76-
fn get_node_id(&mut self, _params: params::GetNodeId) -> DbFuture<'_, results::GetNodeId> {
77-
Box::pin(future::ok(results::GetNodeId::default()))
79+
async fn get_node_id(
80+
&mut self,
81+
_params: params::GetNodeId,
82+
) -> Result<results::GetNodeId, DbError> {
83+
Ok(results::GetNodeId::default())
7884
}
7985

80-
fn get_best_node(
86+
async fn get_best_node(
8187
&mut self,
8288
_params: params::GetBestNode,
83-
) -> DbFuture<'_, results::GetBestNode> {
84-
Box::pin(future::ok(results::GetBestNode::default()))
89+
) -> Result<results::GetBestNode, DbError> {
90+
Ok(results::GetBestNode::default())
8591
}
8692

87-
fn add_user_to_node(
93+
async fn add_user_to_node(
8894
&mut self,
8995
_params: params::AddUserToNode,
90-
) -> DbFuture<'_, results::AddUserToNode> {
91-
Box::pin(future::ok(()))
96+
) -> Result<results::AddUserToNode, DbError> {
97+
Ok(())
9298
}
9399

94-
fn get_users(&mut self, _params: params::GetUsers) -> DbFuture<'_, results::GetUsers> {
95-
Box::pin(future::ok(results::GetUsers::default()))
100+
async fn get_users(&mut self, _params: params::GetUsers) -> Result<results::GetUsers, DbError> {
101+
Ok(results::GetUsers::default())
96102
}
97103

98-
fn get_or_create_user(
104+
async fn get_or_create_user(
99105
&mut self,
100106
_params: params::GetOrCreateUser,
101-
) -> DbFuture<'_, results::GetOrCreateUser> {
102-
Box::pin(future::ok(results::GetOrCreateUser::default()))
107+
) -> Result<results::GetOrCreateUser, DbError> {
108+
Ok(results::GetOrCreateUser::default())
103109
}
104110

105-
fn get_service_id(
111+
async fn get_service_id(
106112
&mut self,
107113
_params: params::GetServiceId,
108-
) -> DbFuture<'_, results::GetServiceId> {
109-
Box::pin(future::ok(results::GetServiceId::default()))
114+
) -> Result<results::GetServiceId, DbError> {
115+
Ok(results::GetServiceId::default())
110116
}
111117

112118
#[cfg(test)]
113-
fn set_user_created_at(
119+
async fn set_user_created_at(
114120
&mut self,
115121
_params: params::SetUserCreatedAt,
116-
) -> DbFuture<'_, results::SetUserCreatedAt> {
117-
Box::pin(future::ok(()))
122+
) -> Result<results::SetUserCreatedAt, DbError> {
123+
Ok(())
118124
}
119125

120126
#[cfg(test)]
121-
fn set_user_replaced_at(
127+
async fn set_user_replaced_at(
122128
&mut self,
123129
_params: params::SetUserReplacedAt,
124-
) -> DbFuture<'_, results::SetUserReplacedAt> {
125-
Box::pin(future::ok(()))
130+
) -> Result<results::SetUserReplacedAt, DbError> {
131+
Ok(())
126132
}
127133

128134
#[cfg(test)]
129-
fn get_user(&mut self, _params: params::GetUser) -> DbFuture<'_, results::GetUser> {
130-
Box::pin(future::ok(results::GetUser::default()))
135+
async fn get_user(&mut self, _params: params::GetUser) -> Result<results::GetUser, DbError> {
136+
Ok(results::GetUser::default())
131137
}
132138

133139
#[cfg(test)]
134-
fn post_node(&mut self, _params: params::PostNode) -> DbFuture<'_, results::PostNode> {
135-
Box::pin(future::ok(results::PostNode::default()))
140+
async fn post_node(&mut self, _params: params::PostNode) -> Result<results::PostNode, DbError> {
141+
Ok(results::PostNode::default())
136142
}
137143

138144
#[cfg(test)]
139-
fn get_node(&mut self, _params: params::GetNode) -> DbFuture<'_, results::GetNode> {
140-
Box::pin(future::ok(results::GetNode::default()))
145+
async fn get_node(&mut self, _params: params::GetNode) -> Result<results::GetNode, DbError> {
146+
Ok(results::GetNode::default())
141147
}
142148

143149
#[cfg(test)]
144-
fn unassign_node(
150+
async fn unassign_node(
145151
&mut self,
146152
_params: params::UnassignNode,
147-
) -> DbFuture<'_, results::UnassignNode> {
148-
Box::pin(future::ok(()))
153+
) -> Result<results::UnassignNode, DbError> {
154+
Ok(())
149155
}
150156

151157
#[cfg(test)]
152-
fn remove_node(&mut self, _params: params::RemoveNode) -> DbFuture<'_, results::RemoveNode> {
153-
Box::pin(future::ok(()))
158+
async fn remove_node(
159+
&mut self,
160+
_params: params::RemoveNode,
161+
) -> Result<results::RemoveNode, DbError> {
162+
Ok(())
154163
}
155164

156165
#[cfg(test)]
157-
fn post_service(&mut self, _params: params::PostService) -> DbFuture<'_, results::PostService> {
158-
Box::pin(future::ok(results::PostService::default()))
166+
async fn post_service(
167+
&mut self,
168+
_params: params::PostService,
169+
) -> Result<results::PostService, DbError> {
170+
Ok(results::PostService::default())
159171
}
160172
}

0 commit comments

Comments
 (0)