namespace _zeitbild.api { /** */ export function register_session_prepare( rest_subject : lib_plankton.rest.type_rest ) : void { lib_plankton.rest.register< { name : string; password : string; }, ( null | string ) >( rest_subject, lib_plankton.http.enum_method.get, "/session/prepare", { "description": "gibt die nötigen Werkzeuge für eine Anmeldung aus", "input_schema": () => ({ "nullable": true, }), "output_schema": () => ({ "type": "string", "description": "der Sitzungs-Schlüssel, der als Header 'X-Session-Key' gesetzt werden muss um Erlaubnis zur Ausführung geschützter Aktionen zu erhalten", }), "restriction": restriction_none, "execution": async () => { const admin : (null | _zeitbild.service.admin.type_value) = await _zeitbild.service.admin.login(input.name, input.password); if (admin === null) { return Promise.resolve({ "status_code": 403, "data": null, }); } else { const session_key : string = await lib_plankton.session.begin(admin.name); return Promise.resolve({ "status_code": 201, "data": session_key, }); } }, } ); } }