bf296373bd
modified: go.sum new file: internal/config/oauth.go new file: internal/handler/auth.go new file: internal/utils/errors.go new file: internal/utils/json.go modified: internal/utils/password.go Add utils, add auth handler, auth configs
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
// utils/errors.go
|
|
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
// APIError представляет ошибку API
|
|
type APIError struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
func (e *APIError) Error() string {
|
|
return fmt.Sprintf("API Error %d: %s", e.Code, e.Message)
|
|
}
|
|
|
|
// ErrorResponse представляет стандартный ответ с ошибкой
|
|
type ErrorResponse struct {
|
|
Error bool `json:"error"`
|
|
Message string `json:"message"`
|
|
Code int `json:"code"`
|
|
}
|
|
|
|
// ValidationErrorResponse представляет ответ с ошибками валидации
|
|
type ValidationErrorResponse struct {
|
|
Error bool `json:"error"`
|
|
Message string `json:"message"`
|
|
Code int `json:"code"`
|
|
Errors map[string]string `json:"errors,omitempty"`
|
|
}
|
|
|
|
// Predefined errors
|
|
var (
|
|
ErrInvalidJSON = &APIError{Code: http.StatusBadRequest, Message: "Invalid JSON"}
|
|
ErrEmptyRequestBody = &APIError{Code: http.StatusBadRequest, Message: "Request body is empty"}
|
|
ErrRequestBodyTooLarge = &APIError{Code: http.StatusRequestEntityTooLarge, Message: "Request body too large"}
|
|
) |