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

UPD: Fix typos in generated api code

parent 3b1173fd
No related branches found
No related tags found
No related merge requests found
......@@ -286,11 +286,11 @@ def typescript(output_dir):
def generate_imports()->str:
return ("import type { ParamList } from '@/util/api/ParamList'\n"
"import type { AxiosConfig } from '@/util/api/AxiosConfig"
"import type { AxiosRe"
"import type { AxiosRequestConfig } from 'axios'"
"import type { AxiosConfig } from '@/util/api/AxiosConfig'\n"
"import type {AxiosCreateRequestBody, AxiosDeleteRequestBody, AxiosUpdateRequestBody} from '@/util/api/AxiosRequestBody'\n"
"import type { AxiosRequestConfig } from 'axios'\n"
"import { useAxios, type UseAxiosReturn } from '@vueuse/integrations/useAxios'\n"
"import APIUtils from '@/util/apiutil'\n"
"import APIUtils from '@/util/api/apiutil'\n"
"import NETVSConfig from '@/netvs.config'\n\n")
......@@ -324,13 +324,13 @@ def typescript(output_dir):
def generate_api_function(api_function: ApiFunction)->str:
api_call = ("$METHOD_NAME (config: AxiosConfig, $FUNCTION_PARAMETER) $RETURN_TYPE {\n"
"\tconst requestData = $REQUEST_DATA\n\n"
api_call = ("$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"
"\t\tmethod: $HTTP_METHOD,\n"
"\t\tbaseUrl: config.baseUrl, \n"
"\t\theaders: config.headers\n"
"\t\tmethod: '$HTTP_METHOD',\n"
"\t\tbaseURL: config.baseUrl, \n"
"\t\theaders: config.headers,\n"
"\t\t$PARAMS_OR_REQUEST_BODY: requestData\n"
"\t}\n\n"
"\tconst url = `${NETVSConfig.NETDB_API_BASE_URL}/${NETVSConfig.NETDB_API_VERSION}/$PATH`\n"
......@@ -342,7 +342,7 @@ def typescript(output_dir):
api_call = api_call.replace("$HTTP_METHOD", "POST" if api_function.is_data_manipulating else "GET")
api_call = api_call.replace("$PATH", api_function.fq_name.replace(".", "/"))
return_type = f"Promise<UseAxiosReturn<{api_function.object_type.capitalize()}>>" if api_function.is_returning else ""
return_type = f": Promise<UseAxiosReturn<{api_function.object_type.capitalize()}>>" if api_function.is_returning else ""
api_call = api_call.replace("$RETURN_TYPE", return_type)
api_call = api_call.replace("$RETURN_ENABLED", "return" if api_function.is_returning else "")
......@@ -353,8 +353,11 @@ def typescript(output_dir):
signature_length = indent
function_parameters = ""
request_data = {"old": "", "new": ""}
number_parameters = len(seperated_parameters['old']) + len(seperated_parameters['new'])
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"
if api_function.is_data_manipulating:
function_parameter_item = f"{parameter.name}_{parameter_scope}: {map_netdb_type_to_typescript_type(parameter.data_type)}"
......@@ -371,13 +374,13 @@ def typescript(output_dir):
"$PARAMETER_NAME")
parameter_definition = parameter_definition.replace("$PARAMETER_NAME", parameter.name)
if parameter_counter < len(api_function.parameters) - 1:
if parameter_counter < number_parameters - 1:
parameter_definition += ",\n\t\t"
request_data["old"] += parameter_definition
if parameter_counter < len(api_function.parameters.values()) - 1:
if parameter_counter < number_parameters - 1:
if signature_length > 120:
function_parameters += function_parameter_item + "\n" + " " * (indent + 1)
function_parameters += function_parameter_item + ",\n" + " " * (indent + 1)
signature_length = indent
else:
function_parameters += function_parameter_item + ", "
......@@ -398,16 +401,18 @@ def typescript(output_dir):
request_data_declaration_code = ("{\n"
"\t\told: {\n"
f"\t\t\t{request_data["old"]},\n"
"\t\t}\n"
"\t\t},\n"
"\t\tnew: {\n"
f"\t\t\t{request_data["new"]},\n"
"\t\t}")
"\t\t}\n"
"\t}")
elif len(seperated_parameters["old"]) > 0 and len(seperated_parameters["new"]) == 0:
request_type = "AxiosDeleteRequestBody<any>"
request_data_declaration_code = ("{\n"
"\t\told: {\n"
f"\t\t\t{request_data["old"]},\n"
"\t\t}")
"\t\t}\n"
"\t}")
else:
request_type = "AxiosCreateRequestBody<any>"
request_data_declaration_code = ("{\n"
......@@ -419,7 +424,7 @@ def typescript(output_dir):
request_type = "any"
request_data_declaration_code = ("APIUtils.denullify_dict({\n"
f"{request_data["old"]}\n"
"\t}")
"\t})")
api_call = api_call.replace("$AXIOS_REQUEST_DATA", request_type)
api_call = api_call.replace("$REQUEST_DATA", request_data_declaration_code)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment