(req request.WebsiteDelete)
| 695 | } |
| 696 | |
| 697 | func (w WebsiteService) DeleteWebsite(req request.WebsiteDelete) error { |
| 698 | website, err := websiteRepo.GetFirst(repo.WithByID(req.ID)) |
| 699 | if err != nil { |
| 700 | return err |
| 701 | } |
| 702 | if website.Type != constant.Subsite { |
| 703 | parentWebsites, _ := websiteRepo.List(websiteRepo.WithParentID(website.ID)) |
| 704 | if len(parentWebsites) > 0 { |
| 705 | var names []string |
| 706 | for _, site := range parentWebsites { |
| 707 | names = append(names, site.PrimaryDomain) |
| 708 | } |
| 709 | return buserr.WithName("ErrParentWebsite", strings.Join(names, ",")) |
| 710 | } |
| 711 | } |
| 712 | |
| 713 | if website.Type == constant.Runtime && req.DeleteDB && website.DbID != 0 { |
| 714 | switch website.DbType { |
| 715 | case constant.AppMysql, constant.AppMariaDB: |
| 716 | mysqlDB, _ := mysqlRepo.Get(repo.WithByID(website.DbID)) |
| 717 | if mysqlDB.ID > 0 { |
| 718 | deleteReq := dto.MysqlDBDelete{ |
| 719 | ID: mysqlDB.ID, |
| 720 | Database: mysqlDB.MysqlName, |
| 721 | ForceDelete: req.ForceDelete, |
| 722 | } |
| 723 | if err = NewIMysqlService().Delete(context.TODO(), deleteReq); err != nil && !req.ForceDelete { |
| 724 | return err |
| 725 | } |
| 726 | } |
| 727 | case constant.AppPostgresql, constant.AppPostgres: |
| 728 | pgDB, _ := postgresqlRepo.Get(repo.WithByID(website.DbID)) |
| 729 | if pgDB.ID > 0 { |
| 730 | deleteReq := dto.PostgresqlDBDelete{ |
| 731 | ID: pgDB.ID, |
| 732 | ForceDelete: req.ForceDelete, |
| 733 | Database: pgDB.PostgresqlName, |
| 734 | } |
| 735 | if err = NewIPostgresqlService().Delete(context.TODO(), deleteReq); err != nil && !req.ForceDelete { |
| 736 | return err |
| 737 | } |
| 738 | } |
| 739 | } |
| 740 | } |
| 741 | |
| 742 | if err = delNginxConfig(website, req.ForceDelete); err != nil { |
| 743 | return err |
| 744 | } |
| 745 | |
| 746 | if website.Type != constant.Stream { |
| 747 | if err = delWafConfig(website, req.ForceDelete); err != nil { |
| 748 | return err |
| 749 | } |
| 750 | } |
| 751 | |
| 752 | if checkIsLinkApp(website) && req.DeleteApp { |
| 753 | appInstall, _ := appInstallRepo.GetFirst(repo.WithByID(website.AppInstallID)) |
| 754 | if appInstall.ID > 0 { |
no test coverage detected