/* This file is part of »zeitbild«. Copyright 2025 'kcf' »zeitbild« is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. »zeitbild« is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with »zeitbild«. If not, see . */ namespace _zeitbild.api { /** */ export function register_group_list( rest_subject : lib_plankton.rest_http.type_rest ) : void { register< null, Array< { id : int; name : string; label : string; } > >( rest_subject, lib_plankton.http.enum_method.get, "/groups", { "description": "listet alle Gruppen auf", "query_parameters": () => ([ { "name": "term", "required": false, "description": "search term", }, ]), "output_schema": () => ({ "type": "array", "items": { "nullable": false, "type": "object", "additionalProperties": false, "properties": { "id": { "nullable": false, "type": "number", }, "name": { "nullable": false, "type": "string", }, "label": { "nullable": false, "type": "string", }, }, "required": [ "id", "name", "label", ], } }), "restriction": restriction_logged_in, "execution": async (stuff) => { const result : Array< { id : _zeitbild.type_group_id; name : string; label : string; } > = ( (await _zeitbild.service.group.list()) .map( entry => ( { "id": entry.id, "name": entry.object.name, "label": entry.object.label, } ) ) ); return Promise.resolve( { "status_code": 200, "data": result, } ); } } ); } }