Add roles as argument to request_data

This commit is contained in:
NicolasCantu 2025-03-04 14:49:10 +01:00
parent 8d2c34b13b
commit 544e8989c6

View File

@ -1396,20 +1396,17 @@ pub fn update_process(
}
#[wasm_bindgen]
pub fn request_data(process_id: String, state_ids: Vec<String>) -> ApiResult<ApiReturn> {
pub fn request_data(process_id: String, state_ids: Vec<String>, roles: JsValue) -> ApiResult<ApiReturn> {
let process_id = OutPoint::from_str(&process_id)?;
let local_device = lock_local_device()?;
let sender = local_device.to_member();
let sp_wallet = local_device.get_wallet();
let local_address = sp_wallet.get_client().get_receiving_address();
let roles: Vec<BTreeMap<String, RoleDefinition>> = serde_wasm_bindgen::from_value(roles)?;
let mut send_to: HashSet<SilentPaymentAddress> = HashSet::new();
let processes = lock_processes()?;
let process = processes.get(&process_id).ok_or(ApiError::new("Unknown process".to_owned()))?;
for state_id in &state_ids {
if let Ok(state) = process.get_state_for_id(&state_id) {
let roles = &state.roles;
for (_, role_def) in roles {
for role in roles {
for (_, role_def) in role {
let members = &role_def.members;
if !members.contains(&sender) {
continue;
@ -1421,11 +1418,6 @@ pub fn request_data(process_id: String, state_ids: Vec<String>) -> ApiResult<Api
}
}
}
} else {
// Ignoring unknown state
log::error!("Unknown state");
continue;
}
}
let prd_request = Prd::new_request(