| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package api
- import (
- "github.com/gin-gonic/gin"
- "github.com/lejianwen/rustdesk-api/v2/global"
- "github.com/lejianwen/rustdesk-api/v2/http/response"
- "github.com/lejianwen/rustdesk-api/v2/http/response/api"
- "github.com/lejianwen/rustdesk-api/v2/service"
- "time"
- )
- type WebClient struct {
- }
- // ServerConfig 服务配置
- // @Tags WEBCLIENT
- // @Summary 服务配置
- // @Description 服务配置,给webclient提供api-server
- // @Accept json
- // @Produce json
- // @Success 200 {object} response.Response
- // @Failure 500 {object} response.Response
- // @Router /server-config [get]
- // @Security token
- func (i *WebClient) ServerConfig(c *gin.Context) {
- u := service.AllService.UserService.CurUser(c)
- peers := map[string]*api.WebClientPeerPayload{}
- abs := service.AllService.AddressBookService.ListByUserIdAndCollectionId(u.Id, 0, 1, 100)
- for _, ab := range abs.AddressBooks {
- pp := &api.WebClientPeerPayload{}
- pp.FromAddressBook(ab)
- peers[ab.Id] = pp
- }
- response.Success(
- c,
- gin.H{
- "id_server": global.Config.Rustdesk.IdServer,
- "key": global.Config.Rustdesk.Key,
- "peers": peers,
- },
- )
- }
- // 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
- }
- if sr.Expire != 0 {
- //判断是否过期,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,
- })
- }
- // ServerConfigV2 服务配置
- // @Tags WEBCLIENT_V2
- // @Summary 服务配置
- // @Description 服务配置,给webclient提供api-server
- // @Accept json
- // @Produce json
- // @Success 200 {object} response.Response
- // @Failure 500 {object} response.Response
- // @Router /server-config-v2 [get]
- // @Security token
- func (i *WebClient) ServerConfigV2(c *gin.Context) {
- response.Success(
- c,
- gin.H{
- "id_server": global.Config.Rustdesk.IdServer,
- "key": global.Config.Rustdesk.Key,
- },
- )
- }
|