up gorm logger & add share to guest by web client

This commit is contained in:
ljw
2024-10-09 15:53:08 +08:00
parent 9aad62d1e4
commit 6a5408f9b8
23 changed files with 451 additions and 1031 deletions

View File

@@ -6,6 +6,7 @@ import (
"Gwen/http/response/api"
"Gwen/service"
"github.com/gin-gonic/gin"
"time"
)
type WebClient struct {
@@ -40,3 +41,47 @@ func (i *WebClient) ServerConfig(c *gin.Context) {
},
)
}
// SharedPeer 分享的peer
// @Tags WEBCLIENT
// @Summary 分享的peer
// @Description 分享的peer
// @Accept json
// @Produce json
// @Success 200 {object} response.Response
// @Failure 500 {object} response.Response
// @Router /shared-peer [post]
func (i *WebClient) SharedPeer(c *gin.Context) {
j := &gin.H{}
c.ShouldBindJSON(j)
t := (*j)["share_token"].(string)
if t == "" {
response.Fail(c, 101, "share_token is required")
return
}
sr := service.AllService.AddressBookService.SharedPeer(t)
if sr == nil || sr.Id == 0 {
response.Fail(c, 101, "share not found")
return
}
//判断是否过期,created_at + expire > now
ca := time.Time(sr.CreatedAt)
if ca.Add(time.Second * time.Duration(sr.Expire)).Before(time.Now()) {
response.Fail(c, 101, "share expired")
return
}
ab := service.AllService.AddressBookService.InfoByUserIdAndId(sr.UserId, sr.PeerId)
if ab.RowId == 0 {
response.Fail(c, 101, "peer not found")
return
}
pp := &api.WebClientPeerPayload{}
pp.FromShareRecord(sr)
pp.Info.Username = ab.Username
pp.Info.Hostname = ab.Hostname
response.Success(c, gin.H{
"id_server": global.Config.Rustdesk.IdServer,
"key": global.Config.Rustdesk.Key,
"peer": pp,
})
}