From e40122f1be76d54f9dc791c005f21290d7f44be2 Mon Sep 17 00:00:00 2001 From: miguelToscano Date: Wed, 19 Oct 2022 14:15:15 -0300 Subject: [PATCH 1/2] added canister method --- candid/registry.did | 1 + registries/canister_registry/src/registry.rs | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/candid/registry.did b/candid/registry.did index f7404a9..914e157 100644 --- a/candid/registry.did +++ b/candid/registry.did @@ -50,6 +50,7 @@ service : { "add" : (trusted_source: opt principal, canister: add_canister_input) -> (operation_response); "remove" : (trusted_source: opt principal, canister: principal) -> (operation_response); "get_all" : () -> (vec canister_metadata) query; + "get_multiple": (vec principal) -> (vec opt canister_metadata) query; "add_admin" : (admin: principal) -> (operation_response); } diff --git a/registries/canister_registry/src/registry.rs b/registries/canister_registry/src/registry.rs index 09bf699..c600fc6 100644 --- a/registries/canister_registry/src/registry.rs +++ b/registries/canister_registry/src/registry.rs @@ -112,6 +112,19 @@ pub fn get(canister: Principal) -> Option<&'static CanisterMetadata> { canister_db.get_info(canister) } +#[query] +pub fn get_multiple(canister_ids: Vec) -> Vec> { + let response = vec![]; + let canister_db = ic::get_mut::(); + + for canister_id in canister_ids { + let canister = canister_db.get_info(canister_id); + response.push(canister); + } + + return response; +} + #[update] pub fn add( trusted_source: Option, From 6cb4fac232ba3f23625506f1af52efb7910faa0c Mon Sep 17 00:00:00 2001 From: miguelToscano Date: Wed, 19 Oct 2022 14:27:16 -0300 Subject: [PATCH 2/2] fixed --- registries/canister_registry/src/registry.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registries/canister_registry/src/registry.rs b/registries/canister_registry/src/registry.rs index c600fc6..51ebb12 100644 --- a/registries/canister_registry/src/registry.rs +++ b/registries/canister_registry/src/registry.rs @@ -114,10 +114,10 @@ pub fn get(canister: Principal) -> Option<&'static CanisterMetadata> { #[query] pub fn get_multiple(canister_ids: Vec) -> Vec> { - let response = vec![]; - let canister_db = ic::get_mut::(); + let mut response = vec![]; for canister_id in canister_ids { + let canister_db = ic::get_mut::(); let canister = canister_db.get_info(canister_id); response.push(canister); }