| 6 | use station_api::{ListUsersInput, ListUsersResponse}; |
| 7 | |
| 8 | pub fn add_user( |
| 9 | env: &PocketIc, |
| 10 | station_canister_id: Principal, |
| 11 | requester: Principal, |
| 12 | group_ids: Vec<String>, |
| 13 | ) -> station_api::UserDTO { |
| 14 | let next_id = next_unique_id(); |
| 15 | let user_name = format!("user-{next_id}"); |
| 16 | let next_id = next_id.to_be_bytes(); |
| 17 | let identity = Principal::from_slice(next_id.as_ref()); |
| 18 | let add_user = |
| 19 | station_api::RequestOperationInput::AddUser(station_api::AddUserOperationInput { |
| 20 | name: user_name, |
| 21 | identities: vec![identity], |
| 22 | groups: group_ids, |
| 23 | status: station_api::UserStatusDTO::Active, |
| 24 | }); |
| 25 | let add_user_request = submit_request(env, requester, station_canister_id, add_user); |
| 26 | let new_request = wait_for_request(env, requester, station_canister_id, add_user_request) |
| 27 | .expect("Failed to add user"); |
| 28 | |
| 29 | match new_request.operation { |
| 30 | station_api::RequestOperationDTO::AddUser(add_user) => add_user.user.unwrap(), |
| 31 | _ => panic!("invalid request operation"), |
| 32 | } |
| 33 | } |
| 34 | |
| 35 | pub fn edit_user_name( |
| 36 | env: &PocketIc, |