package web_im import ( "91porn-server/common" "91porn-server/common/stderr" "91porn-server/skd/job" "91porn-server/services/srv_im" "github.com/gin-gonic/gin" ) type syncIMUsersResp struct { Accepted bool `json:"accepted"` Running bool `json:"running"` Message string `json:"message"` Task job.SyncIMUsersTaskStatus `json:"task"` } func SyncIMUsers(ctx *gin.Context) { accepted, status := job.RequestSyncIMUsers() resp := syncIMUsersResp{ Accepted: accepted, Running: status.Running, Task: status, } if accepted { resp.Message = "sync task queued" } else if status.Running { resp.Message = "sync task already in progress" } else { resp.Message = "sync task already queued" } common.ServeJSON(ctx, stderr.Success, resp) } func SyncIMUsersStatus(ctx *gin.Context) { common.ServeJSON(ctx, stderr.Success, job.GetSyncIMUsersStatus()) } func ListIMUsers(ctx *gin.Context) { var req srv_im.UserListReq if err := ctx.ShouldBindJSON(&req); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } resp, code, msg := srv_im.ListUsers(req) if code != stderr.Success { common.ServeJSON(ctx, code, msg) return } common.ServeJSON(ctx, stderr.Success, resp) } func SyncIMUsersByIDs(ctx *gin.Context) { var req srv_im.SyncUsersReq if err := ctx.ShouldBindJSON(&req); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } resp, code, msg := srv_im.SyncUsers(req) if code != stderr.Success { common.ServeJSON(ctx, code, msg) return } common.ServeJSON(ctx, stderr.Success, resp) } func AddIMFriendDirect(ctx *gin.Context) { var req srv_im.FriendAddDirectReq if err := ctx.ShouldBindJSON(&req); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } code, msg := srv_im.AddFriendDirect(req) if code != stderr.Success { common.ServeJSON(ctx, code, msg) return } common.ServeJSON(ctx, stderr.Success, gin.H{"ok": true}) } func BatchIMOnlineStatus(ctx *gin.Context) { var req srv_im.OnlineStatusReq if err := ctx.ShouldBindJSON(&req); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } resp, code, msg := srv_im.BatchOnlineStatus(req) if code != stderr.Success { common.ServeJSON(ctx, code, msg) return } common.ServeJSON(ctx, stderr.Success, resp) } func SendIMPassthrough(ctx *gin.Context) { var req srv_im.PassthroughReq if err := ctx.ShouldBindJSON(&req); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } resp, code, msg := srv_im.SendPassthrough(req) if code != stderr.Success { common.ServeJSON(ctx, code, msg) return } common.ServeJSON(ctx, stderr.Success, resp) } func SendIMAdNotify(ctx *gin.Context) { var req srv_im.AdNotifyReq if err := ctx.ShouldBindJSON(&req); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } resp, code, msg := srv_im.SendAdNotify(req) if code != stderr.Success { common.ServeJSON(ctx, code, msg) return } common.ServeJSON(ctx, stderr.Success, resp) } func SendIMMessage(ctx *gin.Context) { var req srv_im.SendMessageReq if err := ctx.ShouldBindJSON(&req); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } resp, code, msg := srv_im.SendMessage(req) if code != stderr.Success { common.ServeJSON(ctx, code, msg) return } common.ServeJSON(ctx, stderr.Success, resp) }