This commit is contained in:
roydfalk 2024-04-29 00:15:32 +02:00
parent 46ee340e17
commit 5f79d2566d
6 changed files with 103 additions and 4 deletions

View file

@ -66,6 +66,7 @@ namespace _espe.api
"email_address_namebased_use": input["email_address_namebased_use"],
"email_redirect_to_private": input["email_redirect_to_private"],
"salutation": input["salutation"],
"registered": false,
};
const member_id : _espe.service.member.type_id = await _espe.service.member.add(member_value);
return Promise.resolve({

View file

@ -0,0 +1,67 @@
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),
},
});
}
},
}
)
}
}

View file

@ -30,6 +30,7 @@ namespace _espe.api
"email_address_namebased_use": input["email_address_namebased_use"],
"email_redirect_to_private": input["email_redirect_to_private"],
"salutation": input["salutation"],
"registered": /*input["registered"]*/member_value_old.registered,
};
await _espe.service.member.modify(member_id, member_value_new);
return Promise.resolve({

View file

@ -37,6 +37,7 @@ namespace _espe.api
_espe.api.register_member_create(rest_subject);
_espe.api.register_member_update(rest_subject);
// _espe.api.register_member_delete(rest_subject);
_espe.api.register_member_get(rest_subject);
_espe.api.register_member_register(rest_subject);
_espe.api.register_member_urge_for_registration(rest_subject);
}

View file

@ -21,6 +21,7 @@ namespace _espe.service.member
email_address_namebased_use : boolean;
email_redirect_to_private : boolean;
salutation : (null | string);
registered : boolean;
};
@ -87,6 +88,7 @@ namespace _espe.service.member
"email_address_namebased_use": (value.email_address_namebased_use ? 1 : 0),
"email_redirect_to_private": (value.email_redirect_to_private ? 1 : 0),
"salutation": value.salutation,
"registered": (value.registered ? 1 : 0),
};
}
@ -110,6 +112,7 @@ namespace _espe.service.member
"email_address_namebased_use": (row["email_address_namebased_use"] > 0),
"email_redirect_to_private": (row["email_redirect_to_private"] > 0),
"salutation": row["salutation"],
"registered": (row["registered"] > 0),
};
}
@ -246,6 +249,7 @@ namespace _espe.service.member
member.email_address_namebased_use = data.email_address_namebased_use
member.email_redirect_to_private = data.email_redirect_to_private;
member.password_image = await _espe.helpers.bcrypt_compute(data.password);
member.registered = true;
await modify(id, member);
}
@ -254,7 +258,31 @@ namespace _espe.service.member
/**
*/
function derive_email_address_namebased(
export function derive_login_name(
value : type_value
) : string
{
return lib_plankton.string.coin(
"{{value}}{{extension}}",
{
"value": value.name_real_value.toLowerCase().replace(new RegExp(" ", "g"), "."),
"extension": (
(
(value.name_real_extension === null)
||
(value.name_real_extension === "")
)
? ""
: ("." + value.name_real_extension)
),
}
);
}
/**
*/
export function derive_email_address_namely(
value : type_value
) : string
{
@ -279,7 +307,7 @@ namespace _espe.service.member
/**
*/
function derive_email_address_numberbased(
export function derive_email_address_numerical(
value : type_value
) : string
{
@ -302,10 +330,10 @@ namespace _espe.service.member
{
return (
value.email_address_namebased_use
? derive_email_address_namebased(value)
? derive_email_address_namely(value)
: (
value.email_address_numberbased_use
? derive_email_address_numberbased(value)
? derive_email_address_numerical(value)
: value.email_address_private_value
)
);

View file

@ -41,6 +41,7 @@ ${dir_temp}/espe-unlinked.js: \
${dir_source}/api/actions/member_create.ts \
${dir_source}/api/actions/member_update.ts \
${dir_source}/api/actions/member_delete.ts \
${dir_source}/api/actions/member_get.ts \
${dir_source}/api/actions/member_urge_for_registration.ts \
${dir_source}/api/actions/member_register.ts \
${dir_source}/api/functions.ts \