|
1 | 1 | use crate::app::AppState; |
2 | 2 | use crate::auth::AuthCheck; |
3 | 3 | use crate::controllers::helpers::ok_true; |
4 | | -use crate::models::{Email, NewEmail}; |
| 4 | +use crate::models::NewEmail; |
5 | 5 | use crate::schema::{emails, users}; |
6 | 6 | use crate::tasks::spawn_blocking; |
7 | 7 | use crate::util::diesel::prelude::*; |
8 | 8 | use crate::util::errors::{bad_request, server_error, AppResult}; |
9 | 9 | use axum::extract::Path; |
10 | 10 | use axum::response::Response; |
11 | 11 | use axum::Json; |
12 | | -use diesel::dsl::sql; |
13 | 12 | use diesel_async::async_connection_wrapper::AsyncConnectionWrapper; |
14 | 13 | use http::request::Parts; |
15 | 14 | use lettre::Address; |
@@ -114,47 +113,6 @@ pub async fn update_user( |
114 | 113 | .await |
115 | 114 | } |
116 | 115 |
|
117 | | -/// Handles `PUT /user/:user_id/resend` route |
118 | | -pub async fn regenerate_token_and_send( |
119 | | - state: AppState, |
120 | | - Path(param_user_id): Path<i32>, |
121 | | - req: Parts, |
122 | | -) -> AppResult<Response> { |
123 | | - let mut conn = state.db_write().await?; |
124 | | - let auth = AuthCheck::default().check(&req, &mut conn).await?; |
125 | | - spawn_blocking(move || { |
126 | | - use diesel::RunQueryDsl; |
127 | | - |
128 | | - let conn: &mut AsyncConnectionWrapper<_> = &mut conn.into(); |
129 | | - |
130 | | - let user = auth.user(); |
131 | | - |
132 | | - // need to check if current user matches user to be updated |
133 | | - if user.id != param_user_id { |
134 | | - return Err(bad_request("current user does not match requested user")); |
135 | | - } |
136 | | - |
137 | | - conn.transaction(|conn| -> AppResult<_> { |
138 | | - let email: Email = diesel::update(Email::belonging_to(user)) |
139 | | - .set(emails::token.eq(sql("DEFAULT"))) |
140 | | - .get_result(conn) |
141 | | - .optional()? |
142 | | - .ok_or_else(|| bad_request("Email could not be found"))?; |
143 | | - |
144 | | - let email1 = UserConfirmEmail { |
145 | | - user_name: &user.gh_login, |
146 | | - domain: &state.emails.domain, |
147 | | - token: email.token, |
148 | | - }; |
149 | | - |
150 | | - state.emails.send(&email.email, email1).map_err(Into::into) |
151 | | - })?; |
152 | | - |
153 | | - ok_true() |
154 | | - }) |
155 | | - .await |
156 | | -} |
157 | | - |
158 | 116 | pub struct UserConfirmEmail<'a> { |
159 | 117 | pub user_name: &'a str, |
160 | 118 | pub domain: &'a str, |
|
0 commit comments