2020-09-26 19:54:15 +08:00
|
|
|
package services
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
2024-07-27 14:15:25 +08:00
|
|
|
|
2020-09-26 19:54:15 +08:00
|
|
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
|
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type HTTPWebsocketService struct {
|
2020-11-24 15:02:44 +08:00
|
|
|
BaseService
|
2020-09-26 19:54:15 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建Websocket配置
|
|
|
|
|
func (this *HTTPWebsocketService) CreateHTTPWebsocket(ctx context.Context, req *pb.CreateHTTPWebsocketRequest) (*pb.CreateHTTPWebsocketResponse, error) {
|
|
|
|
|
// 校验请求
|
2022-09-17 16:07:37 +08:00
|
|
|
_, _, err := this.ValidateAdminAndUser(ctx, true)
|
2020-09-26 19:54:15 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-22 15:05:30 +08:00
|
|
|
var tx = this.NullTx()
|
2021-01-01 23:31:30 +08:00
|
|
|
|
|
|
|
|
websocketId, err := models.SharedHTTPWebsocketDAO.CreateWebsocket(tx, req.HandshakeTimeoutJSON, req.AllowAllOrigins, req.AllowedOrigins, req.RequestSameOrigin, req.RequestOrigin)
|
2020-09-26 19:54:15 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
return &pb.CreateHTTPWebsocketResponse{WebsocketId: websocketId}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 修改Websocket配置
|
2020-11-13 18:22:22 +08:00
|
|
|
func (this *HTTPWebsocketService) UpdateHTTPWebsocket(ctx context.Context, req *pb.UpdateHTTPWebsocketRequest) (*pb.RPCSuccess, error) {
|
2020-09-26 19:54:15 +08:00
|
|
|
// 校验请求
|
2022-09-17 16:07:37 +08:00
|
|
|
_, _, err := this.ValidateAdminAndUser(ctx, true)
|
2020-09-26 19:54:15 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
2020-12-23 09:52:50 +08:00
|
|
|
// TODO 用户不能修改别人的WebSocket设置
|
|
|
|
|
|
2022-07-22 15:05:30 +08:00
|
|
|
var tx = this.NullTx()
|
2021-01-01 23:31:30 +08:00
|
|
|
|
|
|
|
|
err = models.SharedHTTPWebsocketDAO.UpdateWebsocket(tx, req.WebsocketId, req.HandshakeTimeoutJSON, req.AllowAllOrigins, req.AllowedOrigins, req.RequestSameOrigin, req.RequestOrigin)
|
2020-09-26 19:54:15 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
2020-11-24 15:02:44 +08:00
|
|
|
return this.Success()
|
2020-09-26 19:54:15 +08:00
|
|
|
}
|