123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package web
- import (
- "context"
- "fmt"
- v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
- "github.com/go-nunu/nunu-layout-advanced/internal/model"
- "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf/common"
- )
- type Database interface {
- SaveToDatabase(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, webId int64, cdnOriginIds map[string]int64) (int, error)
- UpdateDatabaseRecords(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, ipData *model.WebForwardingRule) error
- CleanupDatabaseRecords(ctx context.Context, id int) error
- }
- // SaveToDatabase 保存到数据库
- func (s *aidedWebService) SaveToDatabase(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, webId int64, cdnOriginIds map[string]int64) (int, error) {
- webModel := s.BuildWebForwardingModel(&req.WebForwardingData, int(webId), require)
- id, err := s.webForwardingRepository.AddWebForwarding(ctx, webModel)
- if err != nil {
- return 0, fmt.Errorf("添加Web转发记录失败: %w", err)
- }
- webRuleModel := s.BuildWebRuleModel(&req.WebForwardingData, require, id, cdnOriginIds)
- if _, err = s.webForwardingRepository.AddWebForwardingIps(ctx, *webRuleModel); err != nil {
- return 0, fmt.Errorf("添加Web转发规则失败: %w", err)
- }
- return id, nil
- }
- // UpdateDatabaseRecords 更新数据库记录
- func (s *aidedWebService) UpdateDatabaseRecords(ctx context.Context, req *v1.WebForwardingRequest, require common.RequireResponse, ipData *model.WebForwardingRule) error {
- webModel := s.BuildWebForwardingModel(&req.WebForwardingData, req.WebForwardingData.CdnWebId, require)
- webModel.Id = req.WebForwardingData.Id
- if err := s.webForwardingRepository.EditWebForwarding(ctx, webModel); err != nil {
- return fmt.Errorf("更新Web转发记录失败: %w", err)
- }
- webRuleModel := s.BuildWebRuleModel(&req.WebForwardingData, require, req.WebForwardingData.Id, ipData.CdnOriginIds)
- if err := s.webForwardingRepository.EditWebForwardingIps(ctx, *webRuleModel); err != nil {
- return fmt.Errorf("更新Web转发规则失败: %w", err)
- }
- return nil
- }
- // CleanupDatabaseRecords 清理数据库记录
- func (s *aidedWebService) CleanupDatabaseRecords(ctx context.Context, id int) error {
- if err := s.webForwardingRepository.DeleteWebForwarding(ctx, int64(id)); err != nil {
- return fmt.Errorf("删除Web转发记录失败: %w", err)
- }
- if err := s.webForwardingRepository.DeleteWebForwardingIpsById(ctx, id); err != nil {
- return fmt.Errorf("删除Web转发规则失败: %w", err)
- }
- return nil
- }
|