Skip to content
Snippets Groups Projects
Commit 9cf8c435 authored by Sebastian Böckelmann's avatar Sebastian Böckelmann
Browse files

UPD: Generate Description of Parameters for API-Call

parent a99ebb50
No related branches found
No related tags found
No related merge requests found
......@@ -324,7 +324,11 @@ def typescript(output_dir):
def generate_api_function(api_function: ApiFunction)->str:
api_call = ("$METHOD_NAME (config: AxiosConfig, $FUNCTION_PARAMETER)$RETURN_TYPE {\n"
api_call = ("/**\n"
"* @param {AxiosConfig} config AxiosConfig\n"
"$PARAMETER_DESCRIPTION_COMMENTS\n"
"*/\n"
"$METHOD_NAME (config: AxiosConfig, $FUNCTION_PARAMETER)$RETURN_TYPE {\n"
"\tconst requestData: $AXIOS_REQUEST_DATA = $REQUEST_DATA\n\n"
"\tconst axiosRequestConfig: AxiosRequestConfig<$AXIOS_REQUEST_DATA> = {\n"
......@@ -354,18 +358,19 @@ def typescript(output_dir):
function_parameters = ""
request_data = {"old": "", "new": ""}
number_parameters = len(seperated_parameters['old']) + len(seperated_parameters['new'])
parameter_description_comments = ""
for parameter_scope, parameter_list in seperated_parameters.items():
for i, parameter in enumerate(parameter_list):
if api_function.name == "update":
print("Update!")
parameter_definition = "'$PARAMETER_NAME': $PARAMETER_NAME_REFERENCE" if i > 0 else "\t\t'$PARAMETER_NAME': $PARAMETER_NAME_REFERENCE"
parameter_name_reference = parameter.name
if api_function.is_data_manipulating:
function_parameter_item = f"{parameter.name}_{parameter_scope}: {map_netdb_type_to_typescript_type(parameter.data_type)}"
request_data[parameter_scope] += f"f{parameter.name}: {parameter.name}_{parameter_scope}"
parameter_name_reference = parameter.name + "_" + parameter_scope
function_parameter_item = f"{parameter_name_reference}: {map_netdb_type_to_typescript_type(parameter.data_type)}"
request_data[parameter_scope] += f"f{parameter.name}: {parameter_name_reference}"
if i < len(parameter_list) - 1:
request_data[parameter_scope] += ", \n\t\t\t"
else:
function_parameter_item = f"{parameter.name}: {map_netdb_type_to_typescript_type(parameter.data_type)}"
function_parameter_item = f"{parameter_name_reference}: {map_netdb_type_to_typescript_type(parameter.data_type)}"
if parameter.data_type['json_name'] == "array":
parameter_definition = parameter_definition.replace("$PARAMETER_NAME_REFERENCE",
"($PARAMETER_NAME === null) ? null: JSON.stringify($PARAMETER_NAME)")
......@@ -373,7 +378,7 @@ def typescript(output_dir):
parameter_definition = parameter_definition.replace("$PARAMETER_NAME_REFERENCE",
"$PARAMETER_NAME")
parameter_definition = parameter_definition.replace("$PARAMETER_NAME", parameter.name)
parameter_definition = parameter_definition.replace("$PARAMETER_NAME", parameter_name_reference)
if parameter_counter < number_parameters - 1:
parameter_definition += ",\n\t\t"
request_data["old"] += parameter_definition
......@@ -388,11 +393,29 @@ def typescript(output_dir):
else:
function_parameters += function_parameter_item
# generate parameter description comments
parameter_description_comment = f"* @param {{{map_netdb_type_to_typescript_type(parameter.data_type)}}} {parameter_name_reference} {parameter.description_detail}"
if len(parameter_description_comments) > 120:
parameter_description_word_splitted = parameter_description_comment.split(" ")
parameter_description_comment = ""
current_line_length = 0
for j, word in enumerate(parameter_description_word_splitted):
if current_line_length < 120 or j == len(parameter_description_word_splitted) - 1:
parameter_description_comment += word + " "
else:
parameter_description_comment += f"\n * {word} "
current_line_length = 0
current_line_length += len(word)
parameter_description_comments += parameter_description_comment
if parameter_counter < number_parameters - 1:
parameter_description_comments += "\n"
parameter_counter += 1
api_call = api_call.replace("$FUNCTION_PARAMETER", function_parameters)
api_call = api_call.replace("$PARAMETER_DESCRIPTION_COMMENTS", parameter_description_comments)
# determine the type of request: Update, Create, Delete or List?
request_data_declaration_code = ""
if api_function.is_data_manipulating:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment