Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions src/apis/user_service_api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,12 @@ pub struct MigrateUserParams {
pub migrate_user_request: crate::models::MigrateUserRequest,
}

/// struct for passing parameters to the method [`migrate_user_password`]
#[derive(Clone, Debug, Default)]
pub struct MigrateUserPasswordParams {
pub migrate_user_password_request: crate::models::MigrateUserPasswordRequest,
}

/// struct for passing parameters to the method [`update_user_email`]
#[derive(Clone, Debug, Default)]
pub struct UpdateUserEmailParams {
Expand Down Expand Up @@ -283,6 +289,15 @@ pub enum MigrateUserError {
UnknownValue(serde_json::Value),
}

/// struct for typed errors of method [`migrate_user_password`]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum MigrateUserPasswordError {
Status400(crate::models::BadMigrateUserPasswordRequest),
Status401(serde_json::Value),
UnknownValue(serde_json::Value),
}

/// struct for typed errors of method [`update_user_email`]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
Expand Down Expand Up @@ -1207,6 +1222,58 @@ pub async fn migrate_user(
}
}

pub async fn migrate_user_password(
configuration: &configuration::Configuration,
params: MigrateUserPasswordParams,
) -> Result<crate::models::SuccessfulResponse, Error<MigrateUserPasswordError>> {
let local_var_configuration = configuration;

// unbox the parameters
let migrate_user_password_request = params.migrate_user_password_request;

let local_var_client = &local_var_configuration.client;

let local_var_uri_str = format!(
"{}/api/backend/v1/migrate_user/password",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());

if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.header(
AUTH_HOSTNAME_HEADER,
local_var_configuration.auth_hostname.to_owned(),
);

local_var_req_builder = local_var_req_builder.json(&migrate_user_password_request);

let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;

let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;

if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<MigrateUserPasswordError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}

pub async fn update_user_email(
configuration: &configuration::Configuration,
params: UpdateUserEmailParams,
Expand Down
31 changes: 31 additions & 0 deletions src/models/bad_migrate_user_password_request.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* propelauth
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 0.1.0
*
* Generated by: https://openapi-generator.tech
*/




#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct BadMigrateUserPasswordRequest {
#[serde(rename = "user_id", skip_serializing_if = "Option::is_none")]
pub user_id: Option<Vec<String>>,
#[serde(rename = "password_hash", skip_serializing_if = "Option::is_none")]
pub password_hash: Option<Vec<String>>,
}

impl BadMigrateUserPasswordRequest {
pub fn new() -> BadMigrateUserPasswordRequest {
BadMigrateUserPasswordRequest {
user_id: None,
password_hash: None,
}
}
}


26 changes: 26 additions & 0 deletions src/models/migrate_user_password_request.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* propelauth
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 0.1.0
*
* Generated by: https://openapi-generator.tech
*/

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct MigrateUserPasswordRequest {
#[serde(rename = "user_id")]
pub user_id: String,
#[serde(rename = "password_hash")]
pub password_hash: String,
}

impl MigrateUserPasswordRequest {
pub fn new(user_id: String, password_hash: String) -> MigrateUserPasswordRequest {
MigrateUserPasswordRequest {
user_id,
password_hash,
}
}
}
4 changes: 4 additions & 0 deletions src/models/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ pub mod bad_fetch_users_in_org_query;
pub use self::bad_fetch_users_in_org_query::BadFetchUsersInOrgQuery;
pub mod bad_migrate_user_request;
pub use self::bad_migrate_user_request::BadMigrateUserRequest;
pub mod bad_migrate_user_password_request;
pub use self::bad_migrate_user_password_request::BadMigrateUserPasswordRequest;
pub mod bad_update_org_request;
pub use self::bad_update_org_request::BadUpdateOrgRequest;
pub mod bad_update_password_request;
Expand Down Expand Up @@ -67,6 +69,8 @@ pub mod magic_link;
pub use self::magic_link::MagicLink;
pub mod migrate_user_request;
pub use self::migrate_user_request::MigrateUserRequest;
pub mod migrate_user_password_request;
pub use self::migrate_user_password_request::MigrateUserPasswordRequest;
pub mod remove_user_from_org_request;
pub use self::remove_user_from_org_request::RemoveUserFromOrgRequest;
pub mod subscribe_org_to_role_mapping_request;
Expand Down
17 changes: 16 additions & 1 deletion src/propelauth/errors.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::models::{
BadCreateAccessTokenError, BadCreateMagicLinkRequest, BadCreateOrgRequest,
BadCreateUserRequest, BadFetchOrgQuery, BadFetchUsersByQuery, BadFetchUsersInOrgQuery,
BadMigrateUserRequest, BadUpdateOrgRequest, BadUpdatePasswordRequest,
BadMigrateUserRequest, BadMigrateUserPasswordRequest, BadUpdateOrgRequest, BadUpdatePasswordRequest,
BadUpdateUserEmailRequest, BadUpdateUserMetadataRequest,
};
use thiserror::Error;
Expand Down Expand Up @@ -183,6 +183,21 @@ pub enum MigrateUserError {
UnexpectedException,
}

#[derive(Error, Debug, PartialEq, Clone)]
pub enum MigrateUserPasswordError {
#[error("Invalid API Key")]
InvalidApiKey,

#[error("Rate limited by PropelAuth")]
PropelAuthRateLimit,

#[error("Bad request")]
BadRequest(BadMigrateUserPasswordRequest),

#[error("Unexpected exception, please try again")]
UnexpectedException,
}

#[derive(Error, Debug, PartialEq, Clone)]
pub enum CreateMagicLinkError {
#[error("Invalid API Key")]
Expand Down
35 changes: 32 additions & 3 deletions src/propelauth/user.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ use crate::apis::user_service_api::{
DisableUserParams, EnableUserParams, FetchUserByEmailParams, FetchUserByIdParams,
FetchUserByUsernameParams, FetchUsersByEmailsError, FetchUsersByEmailsParams,
FetchUsersByIdsError, FetchUsersByIdsParams, FetchUsersByQueryError, FetchUsersByQueryParams,
FetchUsersByUsernamesError, FetchUsersByUsernamesParams, MigrateUserParams,
FetchUsersByUsernamesError, FetchUsersByUsernamesParams, MigrateUserParams, MigrateUserPasswordParams,
UpdateUserEmailParams, UpdateUserMetadataParams, UpdateUserPasswordParams,
};
use crate::models::{
CreateMagicLinkRequest, CreateUserRequest, CreatedUserResponse, MagicLink, MigrateUserRequest,
CreateMagicLinkRequest, CreateUserRequest, CreatedUserResponse, MagicLink, MigrateUserRequest, MigrateUserPasswordRequest,
UserMetadata, UserPagedResponse,
};
use crate::propelauth::errors::{
BatchFetchError, ClearPasswordError, CreateMagicLinkError, CreateUserError, ErrorsWithNotFound,
FetchByQueryError, MigrateUserError, ResendEmailConfirmationError, UpdatePasswordError,
FetchByQueryError, MigrateUserError, MigrateUserPasswordError, ResendEmailConfirmationError, UpdatePasswordError,
UpdateUserEmailError, UpdateUserMetadataError,
};
use crate::propelauth::helpers::{is_valid_id, map_autogenerated_error};
Expand Down Expand Up @@ -543,6 +543,35 @@ impl UserService<'_> {
})
}

pub async fn migrate_user_password(
&self,
migrate_user_password_request: MigrateUserPasswordRequest,
) -> Result<(), MigrateUserPasswordError> {
let params = MigrateUserPasswordParams {
migrate_user_password_request,
};
crate::apis::user_service_api::migrate_user_password(&self.config, params)
.await
.map_err(|err| {
map_autogenerated_error(
err,
MigrateUserPasswordError::UnexpectedException,
|status_code, err_entity| match (status_code.as_u16(), err_entity) {
(
_,
Some(crate::apis::user_service_api::MigrateUserPasswordError::Status400(
bad_request,
)),
) => MigrateUserPasswordError::BadRequest(bad_request),
(401, _) => MigrateUserPasswordError::InvalidApiKey,
(429, _) => MigrateUserPasswordError::PropelAuthRateLimit,
_ => MigrateUserPasswordError::UnexpectedException,
},
)
})?;
Ok(())
}

pub async fn create_magic_link(
&self,
create_magic_link_request: CreateMagicLinkRequest,
Expand Down
Loading