67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
|
namespace _aum.api
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* @todo types
|
||
|
*/
|
||
|
export function register_member_register(
|
||
|
rest_subject : lib_plankton.rest.type_rest
|
||
|
) : void
|
||
|
{
|
||
|
lib_plankton.rest.register<
|
||
|
{
|
||
|
name_login : string;
|
||
|
name_display : string;
|
||
|
salutation : string;
|
||
|
email_mode : ("none" | "number" | "number_and_name");
|
||
|
email_redirect : boolean;
|
||
|
password : string;
|
||
|
},
|
||
|
null
|
||
|
>(
|
||
|
rest_subject,
|
||
|
lib_plankton.http.enum_method.post,
|
||
|
"/member/register/:id",
|
||
|
{
|
||
|
"description": "nimmt zusätzliche Angaben eines Mitglieds entgegen",
|
||
|
"query_parameters": [
|
||
|
{
|
||
|
"name": "verification",
|
||
|
"required": true,
|
||
|
"description": "Prüfwert",
|
||
|
},
|
||
|
],
|
||
|
"restriction": restriction_verification(stuff => parseInt(stuff.path_parameters["id"])),
|
||
|
"execution": async ({"path_parameters": path_parameters, "query_parameters": query_parameters, "input": input}) => {
|
||
|
const id : _aum.service.member.type_id = parseInt(path_parameters["id"]);
|
||
|
try {
|
||
|
await _aum.service.member.register(
|
||
|
id,
|
||
|
{
|
||
|
"name_login": input.name_login,
|
||
|
"name_display": input.name_display,
|
||
|
"salutation": input.salutation,
|
||
|
"email_address_numberbased_use": ["number", "number_and_name"].includes(input.email_mode),
|
||
|
"email_address_namebased_use": ["number_and_name"].includes(input.email_mode),
|
||
|
"email_redirect_to_private": input.email_redirect,
|
||
|
"password": input.password,
|
||
|
}
|
||
|
);
|
||
|
return Promise.resolve({
|
||
|
"status_code": 200,
|
||
|
"data": null,
|
||
|
});
|
||
|
}
|
||
|
catch (error) {
|
||
|
return Promise.resolve({
|
||
|
"status_code": 409,
|
||
|
"data": "bereits registriert",
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
|
||
|
}
|