cdnweb.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package web
  2. import (
  3. "context"
  4. "fmt"
  5. v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
  6. "github.com/go-nunu/nunu-layout-advanced/internal/model"
  7. )
  8. // CreateCdnWebsite 创建CDN网站
  9. func (s *AidedWebService) CreateCdnWebsite(ctx context.Context, formData v1.Website) (int64, error) {
  10. formDataSend, err := s.BulidFormData(ctx, formData)
  11. if err != nil {
  12. return 0, fmt.Errorf("构建表单数据失败: %w", err)
  13. }
  14. webId, err := s.cdn.CreateWebsite(ctx, formDataSend)
  15. if err != nil {
  16. return 0, fmt.Errorf("创建CDN网站失败: %w", err)
  17. }
  18. return webId, nil
  19. }
  20. // UpdateCdnConfiguration 更新CDN配置
  21. func (s *AidedWebService) UpdateCdnConfiguration(ctx context.Context, req *v1.WebForwardingRequest, oldData *model.WebForwarding, tag string, formData v1.Website) error {
  22. // 修改网站端口、协议或证书
  23. if oldData.Port != req.WebForwardingData.Port || oldData.IsHttps != req.WebForwardingData.IsHttps ||
  24. oldData.HttpsCert != req.WebForwardingData.HttpsCert || oldData.HttpsKey != req.WebForwardingData.HttpsKey {
  25. if err := s.updateWebsiteProtocolAndCert(ctx, req.WebForwardingData.IsHttps, int64(oldData.CdnWebId), formData); err != nil {
  26. return err
  27. }
  28. }
  29. // 修改网站域名
  30. if oldData.Domain != req.WebForwardingData.Domain {
  31. if err := s.updateWebsiteDomain(ctx, req.WebForwardingData.Domain, int64(oldData.CdnWebId)); err != nil {
  32. return err
  33. }
  34. }
  35. // 修改网站名字
  36. if oldData.Comment != req.WebForwardingData.Comment {
  37. if err := s.updateWebsiteBasicInfo(ctx, int64(oldData.CdnWebId), tag); err != nil {
  38. return err
  39. }
  40. }
  41. return nil
  42. }
  43. // DeleteCdnServer 删除CDN服务器
  44. func (s *AidedWebService) DeleteCdnServer(ctx context.Context, cdnWebId int) error {
  45. if err := s.cdn.DelServer(ctx, int64(cdnWebId)); err != nil {
  46. return fmt.Errorf("删除CDN服务器失败: %w", err)
  47. }
  48. return nil
  49. }