namespace _zeitbild.api { /** */ export function register_session_begin( 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.post, "/session/begin", { "description": "führt die Anmeldung am System aus um geschützte Aktionen nutzen zu können", "input_schema": () => ({ "type": "object", "properties": { "name": { "type": "string" }, "password": { "type": "string" }, }, "additionalProperties": false, "required": [ "name", "password", ] }), "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 ({"input": input}) => { if (input === null) { return Promise.reject(new Error("impossible")); } else { 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, }); } } }, } ); } }