in src/vtok_srv/src/worker.rs [226:246]
fn remove_token(label: String, pin: String) -> ApiResponse {
let mut config = config::Config::load_rw().map_err(|_| ApiError::InternalError)?;
let slot = config
.slots_mut()
.iter_mut()
.find(|s| match s {
None => false,
Some(tok) => tok.label == label,
})
.ok_or(ApiError::TokenNotFound)?;
if let Some(tok) = slot {
if tok.pin != pin {
return Err(ApiError::AccessDenied);
}
}
slot.take();
config.save().map_err(|_| ApiError::InternalError)?;
Ok(ApiOk::None)
}