export async function handleDeleteDomain()

in src/commands/domain/delete.ts [34:78]


export async function handleDeleteDomain(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 relatedRecords: RelatedRecordProps[] =
    routineDetail.data?.RelatedRecords ?? [];
  const relatedDomain: string = argv.domain as string;

  const matchedSite = relatedRecords.find((item) => {
    return String(item.RecordName) === relatedDomain;
  });

  if (matchedSite === undefined) {
    logger.error(t('domain_delete_not_found').d("Domain doesn't exist"));
    return;
  }
  const record: DeleteRoutineRelatedRecordReq = {
    RecordName: matchedSite.RecordName,
    Name: projectConfig.name || '',
    SiteId: matchedSite.SiteId,
    SiteName: matchedSite.SiteName,
    RecordId: matchedSite.RecordId
  };

  const res = await server.deleteRoutineRelatedRecord(record);
  if (res?.data.Status === 'OK') {
    logger.success(t('domain_delete_success').d('Delete domain success'));
  } else {
    logger.error(t('domain_delete_failed').d('Delete domain failed'));
  }
}