Refactor backend APIs to RESTful route patterns.

Align group and conversation handlers/services with path-based endpoints, and unify response/service error handling for related modules.

Made-with: Cursor
This commit is contained in:
2026-03-10 20:52:50 +08:00
parent 86ef150fec
commit 21293644b8
10 changed files with 217 additions and 189 deletions

View File

@@ -42,11 +42,7 @@ func (h *UserHandler) Register(c *gin.Context) {
user, err := h.userService.Register(c.Request.Context(), req.Username, req.Email, req.Password, req.Nickname, req.Phone, req.VerificationCode)
if err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to register")
response.HandleError(c, err, "failed to register")
return
}
@@ -86,11 +82,7 @@ func (h *UserHandler) Login(c *gin.Context) {
user, err := h.userService.Login(c.Request.Context(), account, req.Password)
if err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to login")
response.HandleError(c, err, "failed to login")
return
}
@@ -118,11 +110,7 @@ func (h *UserHandler) SendRegisterCode(c *gin.Context) {
}
if err := h.userService.SendRegisterCode(c.Request.Context(), req.Email); err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to send register verification code")
response.HandleError(c, err, "failed to send register verification code")
return
}
@@ -142,11 +130,7 @@ func (h *UserHandler) SendPasswordResetCode(c *gin.Context) {
}
if err := h.userService.SendPasswordResetCode(c.Request.Context(), req.Email); err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to send reset verification code")
response.HandleError(c, err, "failed to send reset verification code")
return
}
@@ -168,11 +152,7 @@ func (h *UserHandler) ResetPassword(c *gin.Context) {
}
if err := h.userService.ResetPasswordByEmail(c.Request.Context(), req.Email, req.VerificationCode, req.NewPassword); err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to reset password")
response.HandleError(c, err, "failed to reset password")
return
}
@@ -317,11 +297,7 @@ func (h *UserHandler) SendEmailVerifyCode(c *gin.Context) {
}
if err := h.userService.SendCurrentUserEmailVerifyCode(c.Request.Context(), userID, req.Email); err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to send email verify code")
response.HandleError(c, err, "failed to send email verify code")
return
}
@@ -347,11 +323,7 @@ func (h *UserHandler) VerifyEmail(c *gin.Context) {
}
if err := h.userService.VerifyCurrentUserEmail(c.Request.Context(), userID, req.Email, req.VerificationCode); err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to verify email")
response.HandleError(c, err, "failed to verify email")
return
}
@@ -437,11 +409,7 @@ func (h *UserHandler) BlockUser(c *gin.Context) {
err := h.userService.BlockUser(c.Request.Context(), currentUserID, targetUserID)
if err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to block user")
response.HandleError(c, err, "failed to block user")
return
}
@@ -460,11 +428,7 @@ func (h *UserHandler) UnblockUser(c *gin.Context) {
err := h.userService.UnblockUser(c.Request.Context(), currentUserID, targetUserID)
if err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to unblock user")
response.HandleError(c, err, "failed to unblock user")
return
}
@@ -638,11 +602,7 @@ func (h *UserHandler) ChangePassword(c *gin.Context) {
err := h.userService.ChangePassword(c.Request.Context(), currentUserID, req.OldPassword, req.NewPassword, req.VerificationCode)
if err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to change password")
response.HandleError(c, err, "failed to change password")
return
}
@@ -659,11 +619,7 @@ func (h *UserHandler) SendChangePasswordCode(c *gin.Context) {
err := h.userService.SendChangePasswordCode(c.Request.Context(), currentUserID)
if err != nil {
if se, ok := err.(*service.ServiceError); ok {
response.Error(c, se.Code, se.Message)
return
}
response.InternalServerError(c, "failed to send change password code")
response.HandleError(c, err, "failed to send change password code")
return
}