[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< register<
{ {
membership_number : string; membership_number : (null | string);
name_real_value : string; name_real_value : string;
email_address_private : (null | string); email_address_private : (null | string);
}, },
(
string
|
_espe.type.member_id _espe.type.member_id
)
>( >(
rest_subject, rest_subject,
lib_plankton.http.enum_method.post, lib_plankton.http.enum_method.post,
@ -70,6 +74,21 @@ namespace _espe.api
if (input === null) { if (input === null) {
return Promise.reject(new Error("impossible")); return Promise.reject(new Error("impossible"));
} }
else {
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 { else {
const member_id : _espe.type.member_id = await _espe.service.member.project( const member_id : _espe.type.member_id = await _espe.service.member.project(
{ {
@ -93,6 +112,7 @@ namespace _espe.api
} }
} }
} }
}
); );
} }

View file

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

View file

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