in src/aaz_dev/swagger/controller/command_generator.py [0:0]
def _generate_command_name(cls, path_item, resource, method, output):
group_name = cls.generate_command_group_name_by_resource(
resource_path=resource.path, rp_name=resource.rp_name)
url_path = resource.id.split("?")[0]
if method == "get":
if url_path.endswith("/{}"):
command_name = f"{group_name} show"
else:
sub_url_path = url_path + "/{}"
if path_item.get.x_ms_pageable:
command_name = f"{group_name} list"
elif isinstance(output, CMDArrayOutput) and output.next_link is not None:
command_name = f"{group_name} list"
# logger.debug(
# f"Command Name For Get set to 'list' by nexLink: {resource.path} :"
# f" {path_item.get.operation_id} : {path_item.traces}"
# )
elif isinstance(resource, Resource) and sub_url_path in resource.resource_provider.get_resource_map():
# CMDResource for typespec does not have resource_map for its resource_provider
# For those resourceid who does not have pageable result, resource from tsp cannot apply this branch
command_name = f"{group_name} list"
# logger.debug(
# f"Command Name For Get set to 'list' by sub_url_path: {resource.path} :"
# f" {path_item.get.operation_id} : {path_item.traces}"
# )
else:
# by operation id
op_parts = operation_id_separate(path_item.get.operation_id)
contain_list = False
contain_get = False
for part in op_parts:
if "list" in part:
contain_list = True
elif "get" in part:
contain_get = True
if contain_list and not contain_get:
command_name = f"{group_name} list"
# logger.debug(
# f"Command Name For Get set to 'list' by operation_id: {resource.path} :"
# f" {path_item.get.operation_id} : {path_item.traces}"
# )
elif contain_get and not contain_list:
command_name = f"{group_name} show"
# logger.debug(
# f"Command Name For Get set to 'show' by operation_id: {resource.path} :"
# f" {path_item.get.operation_id} : {path_item.traces}"
# )
else:
command_name = f"{group_name} " + '-'.join(op_parts[-1])
logger.warning(
f"Command Name For Get set by operation_id: {command_name} : {resource.path} :"
f" {path_item.get.operation_id} : {path_item.traces}"
)
elif method == "delete":
command_name = f"{group_name} delete"
elif method == "put":
command_name = f"{group_name} create"
elif method == "patch":
command_name = f"{group_name} update"
elif method == "head":
command_name = f"{group_name} head"
elif method == "post":
if not url_path.endswith("/{}") and not path_item.get and not path_item.put and not path_item.patch and \
not path_item.delete and not path_item.head:
# directly use group name as command name
command_name = group_name
else:
op_parts = operation_id_separate(path_item.post.operation_id)
command_name = f"{group_name} " + '-'.join(op_parts[-1])
logger.warning(f"Command Name For Post set by operation_id: {command_name} : {resource.path} :"
f" {path_item.post.operation_id} : {path_item.traces}")
else:
raise NotImplementedError()
return command_name