2020-09-15 14:44:11 +08:00
|
|
|
package services
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
|
|
|
|
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
|
|
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type HTTPWebService struct {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建Web配置
|
|
|
|
|
func (this *HTTPWebService) CreateHTTPWeb(ctx context.Context, req *pb.CreateHTTPWebRequest) (*pb.CreateHTTPWebResponse, error) {
|
|
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
webId, err := models.SharedHTTPWebDAO.CreateWeb(req.Root)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &pb.CreateHTTPWebResponse{WebId: webId}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 查找Web配置
|
|
|
|
|
func (this *HTTPWebService) FindEnabledHTTPWeb(ctx context.Context, req *pb.FindEnabledHTTPWebRequest) (*pb.FindEnabledHTTPWebResponse, error) {
|
|
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
web, err := models.SharedHTTPWebDAO.FindEnabledHTTPWeb(req.WebId)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if web == nil {
|
|
|
|
|
return &pb.FindEnabledHTTPWebResponse{Web: nil}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result := &pb.HTTPWeb{}
|
|
|
|
|
result.Id = int64(web.Id)
|
2020-09-16 09:09:21 +08:00
|
|
|
result.IsOn = web.IsOn == 1
|
2020-09-15 14:44:11 +08:00
|
|
|
result.Root = web.Root
|
2020-09-16 09:09:21 +08:00
|
|
|
result.GzipId = int64(web.GzipId)
|
2020-09-16 20:29:18 +08:00
|
|
|
result.Charset = web.Charset
|
|
|
|
|
result.RequestHeaderPolicyId = int64(web.RequestHeaderPolicyId)
|
|
|
|
|
result.ResponseHeaderPolicyId = int64(web.ResponseHeaderPolicyId)
|
2020-09-15 14:44:11 +08:00
|
|
|
return &pb.FindEnabledHTTPWebResponse{Web: result}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 修改Web配置
|
2020-09-17 10:16:00 +08:00
|
|
|
func (this *HTTPWebService) UpdateHTTPWeb(ctx context.Context, req *pb.UpdateHTTPWebRequest) (*pb.RPCUpdateSuccess, error) {
|
2020-09-15 14:44:11 +08:00
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = models.SharedHTTPWebDAO.UpdateWeb(req.WebId, req.Root)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 10:16:00 +08:00
|
|
|
return &pb.RPCUpdateSuccess{}, nil
|
2020-09-15 14:44:11 +08:00
|
|
|
}
|
2020-09-16 09:09:21 +08:00
|
|
|
|
|
|
|
|
// 修改Gzip配置
|
2020-09-17 10:16:00 +08:00
|
|
|
func (this *HTTPWebService) UpdateHTTPWebGzip(ctx context.Context, req *pb.UpdateHTTPWebGzipRequest) (*pb.RPCUpdateSuccess, error) {
|
2020-09-16 09:09:21 +08:00
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = models.SharedHTTPWebDAO.UpdateWebGzip(req.WebId, req.GzipId)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 10:16:00 +08:00
|
|
|
return &pb.RPCUpdateSuccess{}, nil
|
2020-09-16 09:09:21 +08:00
|
|
|
}
|
2020-09-16 20:29:18 +08:00
|
|
|
|
|
|
|
|
// 修改字符集配置
|
2020-09-17 10:16:00 +08:00
|
|
|
func (this *HTTPWebService) UpdateHTTPWebCharset(ctx context.Context, req *pb.UpdateHTTPWebCharsetRequest) (*pb.RPCUpdateSuccess, error) {
|
2020-09-16 20:29:18 +08:00
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = models.SharedHTTPWebDAO.UpdateWebCharset(req.WebId, req.Charset)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
2020-09-17 10:16:00 +08:00
|
|
|
return &pb.RPCUpdateSuccess{}, nil
|
2020-09-16 20:29:18 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更改请求Header策略
|
2020-09-17 10:16:00 +08:00
|
|
|
func (this *HTTPWebService) UpdateHTTPWebRequestHeaderPolicy(ctx context.Context, req *pb.UpdateHTTPWebRequestHeaderPolicyRequest) (*pb.RPCUpdateSuccess, error) {
|
2020-09-16 20:29:18 +08:00
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 10:16:00 +08:00
|
|
|
err = models.SharedHTTPWebDAO.UpdateWebRequestHeaderPolicy(req.WebId, req.HeaderPolicyId)
|
2020-09-16 20:29:18 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 10:16:00 +08:00
|
|
|
return &pb.RPCUpdateSuccess{}, nil
|
2020-09-16 20:29:18 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更改响应Header策略
|
2020-09-17 10:16:00 +08:00
|
|
|
func (this *HTTPWebService) UpdateHTTPWebResponseHeaderPolicy(ctx context.Context, req *pb.UpdateHTTPWebResponseHeaderPolicyRequest) (*pb.RPCUpdateSuccess, error) {
|
2020-09-16 20:29:18 +08:00
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 10:16:00 +08:00
|
|
|
err = models.SharedHTTPWebDAO.UpdateWebResponseHeaderPolicy(req.WebId, req.HeaderPolicyId)
|
2020-09-16 20:29:18 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-17 10:16:00 +08:00
|
|
|
return &pb.RPCUpdateSuccess{}, nil
|
|
|
|
|
}
|
2020-09-16 20:29:18 +08:00
|
|
|
|
2020-09-17 10:16:00 +08:00
|
|
|
// 更改Shutdown
|
|
|
|
|
func (this *HTTPWebService) UpdateHTTPWebShutdown(ctx context.Context, req *pb.UpdateHTTPWebShutdownRequest) (*pb.RPCUpdateSuccess, error) {
|
|
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = models.SharedHTTPWebDAO.UpdateWebShutdown(req.WebId, req.ShutdownJSON)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
return rpcutils.RPCUpdateSuccess()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更改Pages
|
|
|
|
|
func (this *HTTPWebService) UpdateHTTPWebPages(ctx context.Context, req *pb.UpdateHTTPWebPagesRequest) (*pb.RPCUpdateSuccess, error) {
|
|
|
|
|
// 校验请求
|
|
|
|
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = models.SharedHTTPWebDAO.UpdateWebPages(req.WebId, req.PagesJSON)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
return rpcutils.RPCUpdateSuccess()
|
2020-09-16 20:29:18 +08:00
|
|
|
}
|