Files
IUQT/acquaintances/biz/handler/user/chat_group_service.go

157 lines
3.7 KiB
Go

// Code generated by hertz generator.
package user
import (
"acquaintances/biz/dal/mysql"
"acquaintances/biz/model"
user "acquaintances/biz/model/user"
"acquaintances/biz/utils"
"context"
"github.com/cloudwego/hertz/pkg/app"
"github.com/cloudwego/hertz/pkg/protocol/consts"
)
// CreateChatGroup .
// @router /v1/cg/ [POST]
func CreateChatGroup(ctx context.Context, c *app.RequestContext) {
var err error
var req user.CreateChatGroupReq
err = c.BindAndValidate(&req)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
data := &model.ChatGroupInfo{ChatGroupID: utils.GenerateChatGroupID(), ChatGroupName: req.ChatGroupName}
err = mysql.CreateChatGroupInfo(req.UserID, data)
if err != nil {
c.JSON(consts.StatusInternalServerError, err.Error())
return
}
resp := new(user.CreateChatGroupRes)
c.JSON(consts.StatusOK, resp)
}
// DeleteChatGroup .
// @router /v1/cg/ [DELETE]
func DeleteChatGroup(ctx context.Context, c *app.RequestContext) {
var err error
var req user.DeleteChatGroupReq
err = c.BindAndValidate(&req)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
err = mysql.DeleteChatGroupInfo(req.ChatGroupID, req.UserID)
if err != nil {
c.JSON(consts.StatusInternalServerError, err.Error())
return
}
resp := new(user.DeleteChatGroupRes)
c.JSON(consts.StatusOK, resp)
}
// UpdateChatGroup .
// @router /v1/cg/ [PUT]
func UpdateChatGroup(ctx context.Context, c *app.RequestContext) {
var err error
var req user.UpdateChatGroupReq
err = c.BindAndValidate(&req)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
err = mysql.UpdatesChatGroupInfo(&req)
if err != nil {
c.JSON(consts.StatusInternalServerError, err.Error())
return
}
resp := new(user.UpdateChatGroupRes)
c.JSON(consts.StatusOK, resp)
}
// ListChatGroupByUser .
// @router /v1/cg/ [GET]
func ListChatGroupByUser(ctx context.Context, c *app.RequestContext) {
var err error
var req user.ListChatGroupByUserReq
err = c.BindAndValidate(&req)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
data, err := mysql.GetChatGroupListByUser(&req)
if err != nil {
c.JSON(consts.StatusInternalServerError, err.Error())
return
}
resp := new(user.ListChatGroupByUserRes)
resp.ChatGroups = data
resp.Total = int64(len(data))
c.JSON(consts.StatusOK, resp)
}
// ListUserChatGroup .
// @router /v1/cg/users/ [GET]
func ListUserChatGroup(ctx context.Context, c *app.RequestContext) {
var err error
var req user.ListUserChatGroupReq
err = c.BindAndValidate(&req)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
data, err := mysql.GetUserListByChatGroup(&req)
if err != nil {
c.JSON(consts.StatusInternalServerError, err.Error())
return
}
resp := new(user.ListUserChatGroupRes)
resp.Users = data
resp.Total = int64(len(data))
c.JSON(consts.StatusOK, resp)
}
// JoinChatGroup .
// @router /v1/cg/join/ [POST]
func JoinChatGroup(ctx context.Context, c *app.RequestContext) {
var err error
var req user.JoinChatGroupReq
err = c.BindAndValidate(&req)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
err = mysql.JoinChatGroup(&req)
if err != nil {
c.JSON(consts.StatusInternalServerError, err.Error())
return
}
resp := new(user.JoinChatGroupRes)
c.JSON(consts.StatusOK, resp)
}
// ExitChatGroup .
// @router /v1/cg/exit/ [POST]
func ExitChatGroup(ctx context.Context, c *app.RequestContext) {
var err error
var req user.ExitChatGroupReq
err = c.BindAndValidate(&req)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
err = mysql.ExitChatGroup(&req)
if err != nil {
c.JSON(consts.StatusInternalServerError, err.Error())
return
}
resp := new(user.ExitChatGroupRes)
c.JSON(consts.StatusOK, resp)
}