diff --git a/contracts/AssociationRegistry.jsligo b/contracts/AssociationRegistry.jsligo index b85e7787611ea36a707c8c90c765de58bd5a5dab..4bfa506c68d5f03834aa2a7afaf96fc14bc60228 100644 --- a/contracts/AssociationRegistry.jsligo +++ b/contracts/AssociationRegistry.jsligo @@ -11,8 +11,7 @@ type associationStatus = type association = { name: string; - coordinate: coordinate; - status: associationStatus; + description: string; admin: option<address>; }; @@ -74,10 +73,26 @@ const changeAdmin = (associationName: string, stor: storage): return_ => { return [list([]), updatedStorage]; } -//List associations -/* +//details d'une associations @view -function getAssociationDetails(associationName: string, storage: storage): option<association> { - return Big_map.find_opt(associationName, storage); +const listDetailsAssociations = (associationName:string, stor: storage): association => { + return match(Big_map.find_opt(associationName, stor)){ + when(Some(value)): value; + when(None): failwith("No value.") + }; +} + +// Function to list details of all associations +@view +const listAllAssociations = (stor: storage): list<association> => { + const associations: list<association> = list([]); + const keys = Big_map.of_list(stor); + for (const name of keys) { + const association = Big_map.find_opt(name, stor); + if (Option.is_some(association)) { + associations.push(Option.unopt(association)); + } + } + return associations; } -*/ +