Files
movies-diary/crates/application/src/auth/register_and_login.rs
Gabriel Kaszewski 5e0dde656c refactor: LOW cleanups — dedup secure_flag, remove vestigial social_query,
drop PersistedImportSession, rename LoginQuery→LoginCommand, own
DeleteAccountDeps, PersonId via uuid_id! macro, rename SortDirection→
ReviewSortBy, TUI fs::read→Command, generic PaginatedResponse<T>
2026-07-10 05:04:35 +02:00

51 lines
1.3 KiB
Rust

use domain::errors::DomainError;
use crate::auth::{
commands::{RegisterAndLoginCommand, RegisterCommand},
deps::{LoginDeps, RegisterAndLoginDeps, RegisterDeps},
login::{self, LoginResult},
queries::LoginCommand,
register,
};
pub async fn execute(
deps: &RegisterAndLoginDeps,
cmd: RegisterAndLoginCommand,
) -> Result<LoginResult, DomainError> {
let reg_deps = RegisterDeps {
user: deps.user.clone(),
password_hasher: deps.password_hasher.clone(),
config: deps.config.clone(),
};
register::execute(
&reg_deps,
RegisterCommand {
email: cmd.email.clone(),
username: cmd.username,
password: cmd.password.clone(),
role: domain::models::UserRole::Standard,
},
)
.await?;
let log_deps = LoginDeps {
user: deps.user.clone(),
password_hasher: deps.password_hasher.clone(),
auth: deps.auth.clone(),
refresh_session: deps.refresh_session.clone(),
config: deps.config.clone(),
};
login::execute(
&log_deps,
LoginCommand {
email: cmd.email,
password: cmd.password,
},
)
.await
}
#[cfg(test)]
#[path = "tests/register_and_login.rs"]
mod tests;