75 lines
2.0 KiB
Go
75 lines
2.0 KiB
Go
|
|
package handler
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"net/http"
|
||
|
|
|
||
|
|
"modelRT/diagram"
|
||
|
|
"modelRT/log"
|
||
|
|
"modelRT/network"
|
||
|
|
|
||
|
|
"github.com/gin-gonic/gin"
|
||
|
|
"github.com/gofrs/uuid"
|
||
|
|
"go.uber.org/zap"
|
||
|
|
)
|
||
|
|
|
||
|
|
// CircuitDiagramUpdateHandler define circuit diagram update process API
|
||
|
|
func CircuitDiagramUpdateHandler(c *gin.Context) {
|
||
|
|
logger := log.GetLoggerInstance()
|
||
|
|
|
||
|
|
var request network.CircuitDiagramUpdateRequest
|
||
|
|
if err := c.ShouldBindJSON(&request); err != nil {
|
||
|
|
logger.Error("unmarshal circuit diagram update info failed", zap.Error(err))
|
||
|
|
header := network.ResponseHeader{Status: http.StatusBadRequest, ErrMsg: err.Error()}
|
||
|
|
resp := network.BasicResponse{
|
||
|
|
ResponseHeader: header,
|
||
|
|
}
|
||
|
|
c.JSON(http.StatusOK, resp)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
graph, err := diagram.GetGraphMap(request.PageID)
|
||
|
|
if err != nil {
|
||
|
|
logger.Error("get topologic data from set by pageID failed", zap.Error(err))
|
||
|
|
header := network.ResponseHeader{Status: http.StatusBadRequest, ErrMsg: err.Error()}
|
||
|
|
resp := network.BasicResponse{
|
||
|
|
ResponseHeader: header,
|
||
|
|
PayLoad: map[string]interface{}{
|
||
|
|
"page_id": request.PageID,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
c.JSON(http.StatusOK, resp)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
for _, newTopologicLink := range request.TopologicLinks {
|
||
|
|
fromUUID, err1 := uuid.FromString(newTopologicLink.FromUUID)
|
||
|
|
toUUID, err2 := uuid.FromString(newTopologicLink.ToUUID)
|
||
|
|
if err1 != nil || err2 != nil {
|
||
|
|
var err error
|
||
|
|
if err1 != nil {
|
||
|
|
err = fmt.Errorf("format from_uuid failed:%w", err1)
|
||
|
|
}
|
||
|
|
|
||
|
|
if err2 != nil {
|
||
|
|
err = fmt.Errorf("%s,format to_uuid failed:%w", err.Error(), err2)
|
||
|
|
}
|
||
|
|
|
||
|
|
logger.Error("format uuid from string failed", zap.Error(err))
|
||
|
|
header := network.ResponseHeader{Status: http.StatusBadRequest, ErrMsg: err.Error()}
|
||
|
|
resp := network.BasicResponse{
|
||
|
|
ResponseHeader: header,
|
||
|
|
PayLoad: map[string]interface{}{
|
||
|
|
"from_uuid": newTopologicLink.FromUUID,
|
||
|
|
"to_uuid": newTopologicLink.ToUUID,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
c.JSON(http.StatusOK, resp)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
graph.AddEdge(fromUUID, toUUID)
|
||
|
|
// TODO 修改 component 先关信息
|
||
|
|
fmt.Println(request.ComponentInfos)
|
||
|
|
}
|
||
|
|
}
|