You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
1.9 KiB

2 months ago
package v1
import (
"net/http"
"chat-room/internal/model"
"chat-room/internal/service"
"chat-room/pkg/common/request"
"chat-room/pkg/common/response"
"chat-room/pkg/global/log"
"github.com/gin-gonic/gin"
)
func Login(c *gin.Context) {
var user model.User
c.ShouldBindJSON(&user)
log.Logger.Debug("user", log.Any("user", user))
if service.UserService.Login(&user) {
c.JSON(http.StatusOK, response.SuccessMsg(user))
return
}
c.JSON(http.StatusOK, response.FailMsg("Login failed"))
}
func Register(c *gin.Context) {
var user model.User
c.ShouldBindJSON(&user)
err := service.UserService.Register(&user)
if err != nil {
c.JSON(http.StatusOK, response.FailMsg(err.Error()))
return
}
c.JSON(http.StatusOK, response.SuccessMsg(user))
}
func ModifyUserInfo(c *gin.Context) {
var user model.User
c.ShouldBindJSON(&user)
log.Logger.Debug("user", log.Any("user", user))
if err := service.UserService.ModifyUserInfo(&user); err != nil {
c.JSON(http.StatusOK, response.FailMsg(err.Error()))
return
}
c.JSON(http.StatusOK, response.SuccessMsg(nil))
}
func GetUserDetails(c *gin.Context) {
uuid := c.Param("uuid")
c.JSON(http.StatusOK, response.SuccessMsg(service.UserService.GetUserDetails(uuid)))
}
// 通过用户名获取用户信息
func GetUserOrGroupByName(c *gin.Context) {
name := c.Query("name")
c.JSON(http.StatusOK, response.SuccessMsg(service.UserService.GetUserOrGroupByName(name)))
}
func GetUserList(c *gin.Context) {
uuid := c.Query("uuid")
c.JSON(http.StatusOK, response.SuccessMsg(service.UserService.GetUserList(uuid)))
}
func AddFriend(c *gin.Context) {
var userFriendRequest request.FriendRequest
c.ShouldBindJSON(&userFriendRequest)
err := service.UserService.AddFriend(&userFriendRequest)
if nil != err {
c.JSON(http.StatusOK, response.FailMsg(err.Error()))
return
}
c.JSON(http.StatusOK, response.SuccessMsg(nil))
}