package rest import ( "net/http" "tanabata/internal/domain" ) type ErrorResponse struct { Error string `json:"error"` Code string `json:"code,omitempty"` Message string `json:"message,omitempty"` } type ErrorMapper struct{} func (m *ErrorMapper) MapError(err domain.DomainError) (int, ErrorResponse) { switch err.Code { case domain.ErrCodeFileNotFound: return http.StatusNotFound, ErrorResponse{ Error: "Not Found", Code: string(err.Code), Message: err.Message, } case domain.ErrCodeMIMENotSupported: return http.StatusNotFound, ErrorResponse{ Error: "MIME not supported", Code: string(err.Code), Message: err.Message, } case domain.ErrCodeBadRequest: return http.StatusNotFound, ErrorResponse{ Error: "Bad Request", Code: string(err.Code), Message: err.Message, } } return http.StatusInternalServerError, ErrorResponse{ Error: "Internal Server Error", Code: string(err.Code), Message: err.Message, } }