diff --git a/source/api/actions/member_delete.ts b/source/api/actions/member_delete.ts index 7562d53..81976be 100644 --- a/source/api/actions/member_delete.ts +++ b/source/api/actions/member_delete.ts @@ -7,10 +7,10 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register<_espe.service.member.type_value, null>( + register<_espe.service.member.type_value, null>( rest_subject, lib_plankton.http.enum_method.delete, - _espe.conf.get().server.path_base + "/member/:id", + "/member/:id", { "description": "löscht ein vorhandenes Mitglied", "restriction": restriction_logged_in, diff --git a/source/api/actions/member_info.ts b/source/api/actions/member_info.ts index 81f43a5..b0a6fc6 100644 --- a/source/api/actions/member_info.ts +++ b/source/api/actions/member_info.ts @@ -8,7 +8,7 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register< + register< int, ( null @@ -24,7 +24,7 @@ namespace _espe.api >( rest_subject, lib_plankton.http.enum_method.get, - _espe.conf.get().server.path_base + "/member/info/:id", + "/member/info/:id", { "description": "gibt Angaben über ein Mitglied aus, die für die Registrierung verwendet werden dürfen", "input_schema": () => ({ diff --git a/source/api/actions/member_list.ts b/source/api/actions/member_list.ts index d92c598..877c3d7 100644 --- a/source/api/actions/member_list.ts +++ b/source/api/actions/member_list.ts @@ -7,7 +7,7 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register< + register< null, Array< { @@ -22,7 +22,7 @@ namespace _espe.api >( rest_subject, lib_plankton.http.enum_method.get, - _espe.conf.get().server.path_base + "/member/list", + "/member/list", { "description": "listet alle Mitglieder auf", "query_parameters": [ diff --git a/source/api/actions/member_modify.ts b/source/api/actions/member_modify.ts index b87886c..d2659e8 100644 --- a/source/api/actions/member_modify.ts +++ b/source/api/actions/member_modify.ts @@ -7,7 +7,7 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register< + register< { email_address_private : (null | string); registered : boolean; @@ -17,7 +17,7 @@ namespace _espe.api >( rest_subject, lib_plankton.http.enum_method.patch, - _espe.conf.get().server.path_base + "/member/modify/:id", + "/member/modify/:id", { "description": "ändert die Angaben eines vorhandenen Mitglieds", "input_schema": () => ({ diff --git a/source/api/actions/member_project.ts b/source/api/actions/member_project.ts index 8315efe..de30b97 100644 --- a/source/api/actions/member_project.ts +++ b/source/api/actions/member_project.ts @@ -7,7 +7,7 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register< + register< { membership_number : string; name_real_value : string; @@ -17,7 +17,7 @@ namespace _espe.api >( rest_subject, lib_plankton.http.enum_method.post, - _espe.conf.get().server.path_base + "/member/project", + "/member/project", { "description": "erstellt ein neues Mitglied und gibt die erzeugte ID aus", "input_schema": () => ({ diff --git a/source/api/actions/member_read.ts b/source/api/actions/member_read.ts index 2602679..2037f37 100644 --- a/source/api/actions/member_read.ts +++ b/source/api/actions/member_read.ts @@ -7,7 +7,7 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register< + register< null, { membership_number : string; @@ -28,7 +28,7 @@ namespace _espe.api >( rest_subject, lib_plankton.http.enum_method.get, - _espe.conf.get().server.path_base + "/member/read/:id", + "/member/read/:id", { "description": "gibt ein Mitglied anhand seiner ID aus", "output_schema": () => ({ diff --git a/source/api/actions/member_register.ts b/source/api/actions/member_register.ts index 9179ee0..ed52303 100644 --- a/source/api/actions/member_register.ts +++ b/source/api/actions/member_register.ts @@ -8,7 +8,7 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register< + register< { email_use_veiled_address : boolean; email_use_nominal_address : boolean; @@ -24,7 +24,7 @@ namespace _espe.api >( rest_subject, lib_plankton.http.enum_method.post, - _espe.conf.get().server.path_base + "/member/register/:id", + "/member/register/:id", { "description": "nimmt zusätzliche Angaben eines Mitglieds entgegen", "input_schema": () => ({ diff --git a/source/api/actions/session_end.ts b/source/api/actions/session_end.ts index 563ab2a..3732b08 100644 --- a/source/api/actions/session_end.ts +++ b/source/api/actions/session_end.ts @@ -7,10 +7,10 @@ namespace _espe.api rest_subject : lib_plankton.rest.type_rest ) : void { - lib_plankton.rest.register( + register( rest_subject, lib_plankton.http.enum_method.delete, - _espe.conf.get().server.path_base + "/session/end", + "/session/end", { "description": "beendet eine Sitzung", "input_schema": () => ({ diff --git a/source/api/base.ts b/source/api/base.ts index 494ca84..f134479 100644 --- a/source/api/base.ts +++ b/source/api/base.ts @@ -65,5 +65,47 @@ namespace _espe.api ) ); } + + + /** + */ + export function register( + rest_subject : lib_plankton.rest.type_rest, + http_method : lib_plankton.http.enum_method, + path : string, + options : { + active ?: ((version : string) => boolean); + restriction ?: (null | lib_plankton.rest.type_restriction); + execution ?: lib_plankton.rest.type_execution; + title ?: (null | string); + description ?: (null | string); + query_parameters ?: Array< + { + name : string; + description : (null | string); + required : boolean; + } + >; + input_schema ?: ((version: (null | string)) => lib_plankton.rest.type_oas_schema); + output_schema ?: ((version: (null | string)) => lib_plankton.rest.type_oas_schema); + request_body_mimetype ?: string; + request_body_decode ?: ((http_request_body : Buffer, http_request_header_content_type : (null | string)) => any); + response_body_mimetype ?: string; + response_body_encode ?: ((output : any) => Buffer); + } = {} + ) : void + { + options = Object.assign( + { + }, + options + ); + lib_plankton.rest.register( + rest_subject, + http_method, + (_espe.conf.get().server.path_base + path), + options + ); + } }