Feat: user delete room api

pull/150/head
zijiren233 10 months ago
parent 6e80940d9e
commit ea3135f624

@ -289,6 +289,12 @@ func initUser(user *gin.RouterGroup, needAuthUser *gin.RouterGroup) {
needAuthUser.POST("/bind/email", UserBindEmail)
needAuthUser.POST("/unbind/email", UserUnbindEmail)
{
room := needAuthUser.Group("/room")
room.POST("/delete", UserDeleteRoom)
}
}
func initVendor(vendor *gin.RouterGroup) {

@ -600,3 +600,37 @@ func UserRetrievePasswordEmail(ctx *gin.Context) {
"token": token,
}))
}
func UserDeleteRoom(ctx *gin.Context) {
user := ctx.MustGet("user").(*op.UserEntry).Value()
log := ctx.MustGet("log").(*logrus.Entry)
var req model.IdReq
if err := model.Decode(ctx, &req); err != nil {
log.Errorf("failed to decode request: %v", err)
ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorResp(err))
return
}
room, err := db.GetRoomByID(req.Id)
if err != nil {
log.Errorf("failed to get room: %v", err)
ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorResp(err))
return
}
if room.CreatorID != user.ID {
log.Errorf("not creator")
ctx.AbortWithStatusJSON(http.StatusForbidden, model.NewApiErrorStringResp("not creator"))
return
}
err = op.DeleteRoomByID(room.ID)
if err != nil {
log.Errorf("failed to delete room: %v", err)
ctx.AbortWithStatusJSON(http.StatusInternalServerError, model.NewApiErrorResp(err))
return
}
ctx.Status(http.StatusNoContent)
}

@ -15,7 +15,7 @@ var (
ErrEmptyName = errors.New("empty name")
ErrTypeTooLong = errors.New("type too long")
ErrId = errors.New("id must be greater than 0")
ErrId = errors.New("id length must be 32")
ErrEmptyIds = errors.New("empty ids")
)

Loading…
Cancel
Save