backend/source/api/actions/member_get.ts

68 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-04-29 00:15:32 +02:00
namespace _espe.api
{
/**
* @todo types
* @todo restriction
*/
export function register_member_get(
rest_subject : lib_plankton.rest.type_rest
) : void
{
lib_plankton.rest.register<
int,
(
null
|
{
name_real : string;
name_login : string;
email_address_numerical_value : string;
email_address_namely_value : string;
}
)
>(
rest_subject,
lib_plankton.http.enum_method.get,
"/member/get/:id",
{
"description": "gibt Angaben über ein Mitglied aus, die für die Registrierung verwendet werden dürfen",
"query_parameters": [
{
"name": "key",
"required": true,
"description": "Zugriffs-Schlüssel",
},
],
"restriction": restriction_none,
"execution": async ({"path_parameters": path_parameters, "query_parameters": query_parameters, "input": input}) => {
const key : string = query_parameters["key"];
const member_id : _espe.service.member.type_id = parseInt(path_parameters["id"]);
const member_value : _espe.service.member.type_value = await _espe.service.member.get(member_id);
if (member_value.registered) {
return Promise.resolve({
"status_code": 409,
"data": /*"bereits registriert"*/null,
});
}
else {
return Promise.resolve({
"status_code": 200,
"data": {
"name_real": member_value.name_real_value,
"name_login": _espe.service.member.derive_login_name(member_value),
// TODO
"email_address_numerical_value": _espe.service.member.derive_email_address_numerical(member_value),
// TODO
"email_address_namely_value": _espe.service.member.derive_email_address_namely(member_value),
},
});
}
},
}
)
}
}