export async function handleDeleteRoute()

in src/commands/route/delete.ts [33:78]


export async function handleDeleteRoute(argv: ArgumentsCamelCase) {
  if (!checkDirectory()) {
    return;
  }

  const projectConfig = getProjectConfig();
  if (!projectConfig) return logger.notInProject();

  const isSuccess = await checkIsLoginSuccess();
  if (!isSuccess) return;
  await validRoutine(projectConfig.name);

  const server = await ApiService.getInstance();

  const req: GetRoutineReq = { Name: projectConfig.name };
  const routineDetail = await server.getRoutine(req);
  if (!routineDetail) return;

  const relatedRoutes: RelatedRouteProps[] =
    routineDetail.data?.RelatedRoutes ?? [];
  const deleteDomain: string = argv.route as string;

  const matchedSite = relatedRoutes.find((item) => {
    return String(item.Route) === deleteDomain;
  });

  if (matchedSite === undefined) {
    logger.error(t('route_not_exist').d('Route not exist!'));
    return;
  }
  const request: DeleteRoutineRelatedRouteReq = {
    Name: projectConfig.name,
    SiteId: matchedSite.SiteId,
    SiteName: matchedSite.SiteName,
    Route: matchedSite.Route,
    RouteId: matchedSite.RouteId
  };

  const res = await server.deleteRoutineRelatedRoute(request);
  const isDeleteSuccess = res?.data.Status === 'OK';
  if (isDeleteSuccess) {
    logger.success(t('route_delete_success').d('Delete route success!'));
  } else {
    logger.error(t('route_delete_fail').d('Delete route fail!'));
  }
}