Files
EdgeAPI/internal/rpc/services/service_http_rewrite_rule.go

56 lines
1.7 KiB
Go
Raw Normal View History

2020-09-28 16:25:39 +08:00
package services
import (
"context"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/iwind/TeaGo/types"
)
// HTTPRewriteRuleService 重写规则相关服务
2020-09-28 16:25:39 +08:00
type HTTPRewriteRuleService struct {
2020-11-24 15:02:44 +08:00
BaseService
2020-09-28 16:25:39 +08:00
}
// CreateHTTPRewriteRule 创建重写规则
2020-09-28 16:25:39 +08:00
func (this *HTTPRewriteRuleService) CreateHTTPRewriteRule(ctx context.Context, req *pb.CreateHTTPRewriteRuleRequest) (*pb.CreateHTTPRewriteRuleResponse, error) {
// 校验请求
2023-07-04 18:31:12 +08:00
_, userId, err := this.ValidateAdminAndUser(ctx, true)
2020-09-28 16:25:39 +08:00
if err != nil {
return nil, err
}
2022-07-22 15:05:30 +08:00
var tx = this.NullTx()
2023-07-04 18:31:12 +08:00
rewriteRuleId, err := models.SharedHTTPRewriteRuleDAO.CreateRewriteRule(tx, userId, req.Pattern, req.Replace, req.Mode, types.Int(req.RedirectStatus), req.IsBreak, req.ProxyHost, req.WithQuery, req.IsOn, req.CondsJSON)
2020-09-28 16:25:39 +08:00
if err != nil {
return nil, err
}
return &pb.CreateHTTPRewriteRuleResponse{RewriteRuleId: rewriteRuleId}, nil
}
// UpdateHTTPRewriteRule 修改重写规则
func (this *HTTPRewriteRuleService) UpdateHTTPRewriteRule(ctx context.Context, req *pb.UpdateHTTPRewriteRuleRequest) (*pb.RPCSuccess, error) {
2020-09-28 16:25:39 +08:00
// 校验请求
2023-07-04 18:31:12 +08:00
_, userId, err := this.ValidateAdminAndUser(ctx, true)
2020-09-28 16:25:39 +08:00
if err != nil {
return nil, err
}
2022-07-22 15:05:30 +08:00
var tx = this.NullTx()
2023-07-04 18:31:12 +08:00
if userId > 0 {
err = models.SharedHTTPRewriteRuleDAO.CheckUserRewriteRule(tx, userId, req.RewriteRuleId)
if err != nil {
return nil, err
}
}
err = models.SharedHTTPRewriteRuleDAO.UpdateRewriteRule(tx, req.RewriteRuleId, req.Pattern, req.Replace, req.Mode, types.Int(req.RedirectStatus), req.IsBreak, req.ProxyHost, req.WithQuery, req.IsOn, req.CondsJSON)
2020-09-28 16:25:39 +08:00
if err != nil {
return nil, err
}
2020-11-24 15:02:44 +08:00
return this.Success()
2020-09-28 16:25:39 +08:00
}