Skip to content

Commit

Permalink
refactor(client)!: refactor AuthClient::user_delete
Browse files Browse the repository at this point in the history
Signed-off-by: lxl66566 <[email protected]>
  • Loading branch information
lxl66566 committed Jul 14, 2024
1 parent 05954e0 commit dcf15fa
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 58 deletions.
12 changes: 4 additions & 8 deletions crates/xline-client/examples/auth_user.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use anyhow::Result;
use xline_client::{
types::auth::{
AuthUserAddRequest, AuthUserChangePasswordRequest, AuthUserDeleteRequest,
AuthUserGetRequest, AuthUserGrantRoleRequest, AuthUserRevokeRoleRequest,
AuthUserAddRequest, AuthUserChangePasswordRequest, AuthUserGetRequest,
AuthUserGrantRoleRequest, AuthUserRevokeRoleRequest,
},
Client, ClientOptions,
};
Expand Down Expand Up @@ -54,12 +54,8 @@ async fn main() -> Result<()> {
.await?;

// delete users
client
.user_delete(AuthUserDeleteRequest::new("user1"))
.await?;
client
.user_delete(AuthUserDeleteRequest::new("user2"))
.await?;
client.user_delete("user1").await?;
client.user_delete("user2").await?;

Ok(())
}
20 changes: 6 additions & 14 deletions crates/xline-client/src/clients/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ use crate::{
types::auth::{
AuthRoleAddRequest, AuthRoleDeleteRequest, AuthRoleGetRequest,
AuthRoleGrantPermissionRequest, AuthRoleRevokePermissionRequest, AuthUserAddRequest,
AuthUserChangePasswordRequest, AuthUserDeleteRequest, AuthUserGetRequest,
AuthUserGrantRoleRequest, AuthUserRevokeRoleRequest, AuthenticateRequest,
AuthUserChangePasswordRequest, AuthUserGetRequest, AuthUserGrantRoleRequest,
AuthUserRevokeRoleRequest, AuthenticateRequest,
},
AuthService, CurpClient,
};
Expand Down Expand Up @@ -340,23 +340,15 @@ impl AuthClient {
/// .await?
/// .auth_client();
///
/// // add the user
///
/// let resp = client.user_list().await?;
///
/// for user in resp.users {
/// println!("user: {}", user);
/// }
/// let resp = client.user_delete("user").await?;
///
/// Ok(())
/// }
///```
#[inline]
pub async fn user_delete(
&self,
request: AuthUserDeleteRequest,
) -> Result<AuthUserDeleteResponse> {
self.handle_req(request.inner, false).await
pub async fn user_delete(&self, name: impl Into<String>) -> Result<AuthUserDeleteResponse> {
self.handle_req(xlineapi::AuthUserDeleteRequest { name: name.into() }, false)
.await
}

/// Change password for an user.
Expand Down
26 changes: 0 additions & 26 deletions crates/xline-client/src/types/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,32 +98,6 @@ impl From<AuthUserGetRequest> for xlineapi::AuthUserGetRequest {
}
}

/// Request for `AuthUserDelete`
#[derive(Debug, PartialEq)]
pub struct AuthUserDeleteRequest {
/// Inner request
pub(crate) inner: xlineapi::AuthUserDeleteRequest,
}

impl AuthUserDeleteRequest {
/// Creates a new `AuthUserDeleteRequest`.
#[inline]
pub fn new(user_name: impl Into<String>) -> Self {
Self {
inner: xlineapi::AuthUserDeleteRequest {
name: user_name.into(),
},
}
}
}

impl From<AuthUserDeleteRequest> for xlineapi::AuthUserDeleteRequest {
#[inline]
fn from(req: AuthUserDeleteRequest) -> Self {
req.inner
}
}

/// Request for `AuthUserChangePassword`
#[derive(Debug, PartialEq)]
pub struct AuthUserChangePasswordRequest {
Expand Down
8 changes: 3 additions & 5 deletions crates/xline-client/tests/it/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ use xline_client::{
types::auth::{
AuthRoleAddRequest, AuthRoleDeleteRequest, AuthRoleGetRequest,
AuthRoleGrantPermissionRequest, AuthRoleRevokePermissionRequest, AuthUserAddRequest,
AuthUserChangePasswordRequest, AuthUserDeleteRequest, AuthUserGetRequest,
AuthUserGrantRoleRequest, AuthUserRevokeRoleRequest, Permission, PermissionType,
AuthUserChangePasswordRequest, AuthUserGetRequest, AuthUserGrantRoleRequest,
AuthUserRevokeRoleRequest, Permission, PermissionType,
},
};

Expand Down Expand Up @@ -140,9 +140,7 @@ async fn user_operations_should_success_in_normal_path() -> Result<()> {
.user_change_password(AuthUserChangePasswordRequest::new(name1, password2))
.await?;

client
.user_delete(AuthUserDeleteRequest::new(name1))
.await?;
client.user_delete(name1).await?;
client
.user_get(AuthUserGetRequest::new(name1))
.await
Expand Down
10 changes: 5 additions & 5 deletions crates/xlinectl/src/command/user/delete.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use clap::{arg, ArgMatches, Command};
use xline_client::{error::Result, types::auth::AuthUserDeleteRequest, Client};
use xline_client::{error::Result, Client};

use crate::utils::printer::Printer;

Expand All @@ -11,9 +11,9 @@ pub(super) fn command() -> Command {
}

/// Build request from matches
pub(super) fn build_request(matches: &ArgMatches) -> AuthUserDeleteRequest {
pub(super) fn build_request(matches: &ArgMatches) -> String {
let name = matches.get_one::<String>("name").expect("required");
AuthUserDeleteRequest::new(name)
name.to_owned()
}

/// Execute the command
Expand All @@ -30,13 +30,13 @@ mod tests {
use super::*;
use crate::test_case_struct;

test_case_struct!(AuthUserDeleteRequest);
test_case_struct!(String);

#[test]
fn command_parse_should_be_valid() {
let test_cases = vec![TestCase::new(
vec!["delete", "JohnDoe"],
Some(AuthUserDeleteRequest::new("JohnDoe")),
Some("JohnDoe".into()),
)];

for case in test_cases {
Expand Down

0 comments on commit dcf15fa

Please sign in to comment.