30 lines
728 B
Go
30 lines
728 B
Go
package utils
|
|
|
|
import (
|
|
ie "58team_blog/internal/application/errors"
|
|
"58team_blog/internal/interfaces/api/responses"
|
|
"errors"
|
|
"log"
|
|
"net/http"
|
|
)
|
|
|
|
func HandleError(err error) responses.ErrorResponse {
|
|
var errorCode int
|
|
errorMsg := err.Error()
|
|
|
|
log.Println(err)
|
|
|
|
if errors.Is(&ie.ValidationError{}, err) {
|
|
errorCode = http.StatusBadRequest
|
|
} else if errors.Is(&ie.NotFoundError{}, err) {
|
|
errorCode = http.StatusNotFound
|
|
} else if errors.Is(&ie.AlreadyExistsError{}, err) {
|
|
errorCode = http.StatusConflict
|
|
} else if errors.Is(&ie.DBError{}, err) {
|
|
errorCode = http.StatusInternalServerError
|
|
} else {
|
|
errorCode = http.StatusInternalServerError
|
|
}
|
|
|
|
return responses.CreateErrorResponse(errorCode, errorMsg)
|
|
}
|