[mod] allow empty membership number

This commit is contained in:
roydfalk 2024-05-27 19:10:01 +02:00
parent 5457c6dd4d
commit 70b9bd0073
3 changed files with 43 additions and 21 deletions

View file

@ -24,11 +24,15 @@ namespace _espe.api
{
register<
{
membership_number : string;
membership_number : (null | string);
name_real_value : string;
email_address_private : (null | string);
},
_espe.type.member_id
(
string
|
_espe.type.member_id
)
>(
rest_subject,
lib_plankton.http.enum_method.post,
@ -71,25 +75,41 @@ namespace _espe.api
return Promise.reject(new Error("impossible"));
}
else {
const member_id : _espe.type.member_id = await _espe.service.member.project(
{
"membership_number": input.membership_number,
"name_real_value": input.name_real_value,
"email_address_private": (
("email_address_private" in input)
? (
(input.email_address_private !== "")
? input.email_address_private
if (
(! _espe.conf.get().settings.facultative_membership_number)
&&
(
(input.membership_number === null)
||
(input.membership_number === "")
)
) {
return Promise.resolve({
"status_code": 400,
"data": "membership number required"
});
}
else {
const member_id : _espe.type.member_id = await _espe.service.member.project(
{
"membership_number": input.membership_number,
"name_real_value": input.name_real_value,
"email_address_private": (
("email_address_private" in input)
? (
(input.email_address_private !== "")
? input.email_address_private
: null
)
: null
)
: null
),
}
);
return Promise.resolve({
"status_code": 201,
"data": member_id
});
),
}
);
return Promise.resolve({
"status_code": 201,
"data": member_id
});
}
}
}
}

View file

@ -97,6 +97,7 @@ namespace _espe.conf
target_domain : string;
frontend_url_base : (null | string);
prefix_for_nominal_email_addresses : string;
facultative_membership_number : boolean;
registration_email : {
subject : string;
body : string;
@ -248,6 +249,7 @@ namespace _espe.conf
"target_domain": (node_settings["target_domain"] ?? "example.org"),
"frontend_url_base": (node_settings["frontend_url_base"] ?? null), // TODO: mandatory?
"prefix_for_nominal_email_addresses": (node_settings["prefix_for_nominal_email_addresses"] ?? "member-"),
"facultative_membership_number": (node_settings["facultative_membership_number"] ?? false),
"registration_email": {
"subject": ((node_settings["registration_email"] ?? {})["subject"] ?? "Registration"),
"body": ((node_settings["registration_email"] ?? {})["body"] ?? "URL: {{url}}"),

View file

@ -307,7 +307,7 @@ namespace _espe.service.member
*/
export async function project(
data : {
membership_number : string;
membership_number : (null | string);
name_real_value : string;
email_address_private : (null | string);
}