/* 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_user_get( rest_subject : lib_plankton.rest_http.type_rest ) : void { register< null, { name : string; groups : Array< int >; email_address : ( null | string ); dav_token : ( null | string ); settings : { use_fallback_for_date_and_time_inputs : boolean; weekview_vertical_default : boolean; }; } >( rest_subject, lib_plankton.http.enum_method.get, "/user", { "description": "gibt die Angaben eines Nutzers aus", "output_schema": () => ({ "nullable": false, "type": "object", "additionalProperties": false, "properties": { "id": { "nullable": false, "type": "number", }, "name": { "nullable": false, "type": "string", }, "groups": { "nullable": false, "type": "array", "items": { "nullable": false, "type": "int", } }, "email_address": { "nullable": true, "type": "string", }, "dav_token": { "nullable": true, "type": "string", }, "settings": { "nullable": false, "type": "object", "additionalProperties": false, "properties": { "use_fallback_for_date_and_time_inputs": { "nullable": false, "type": "boolean", }, "weekview_vertical_default": { "nullable": false, "type": "boolean", }, }, "required": [ "use_fallback_for_date_and_time_inputs", "weekview_vertical_default", ], }, }, "required": [ "id", "name", ], }), "restriction": restriction_logged_in, "execution": async (stuff) => { const session : {key : string; value : lib_plankton.session.type_session;} = await session_from_stuff(stuff); const user_id : _zeitbild.type_user_id = await _zeitbild.service.user.identify(session.value.name); const result : _zeitbild.type_user_object = await _zeitbild.service.user.get(user_id); return Promise.resolve( { "status_code": 200, "data": result, } ); } } ); } }