forked from loafle/openapi-generator-original
[go-server] Fix: error handling and linting (#18550)
* Update error.go and fix lint * Regen * Fix incorrect change * Fix handler issue * Regenerate
This commit is contained in:
@@ -37,7 +37,7 @@ func WithPetAPIErrorHandler(h ErrorHandler) PetAPIOption {
|
||||
}
|
||||
|
||||
// NewPetAPIController creates a default api controller
|
||||
func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) Router {
|
||||
func NewPetAPIController(s PetAPIServicer, opts ...PetAPIOption) *PetAPIController {
|
||||
controller := &PetAPIController{
|
||||
service: s,
|
||||
errorHandler: DefaultErrorHandler,
|
||||
@@ -150,7 +150,7 @@ func (c *PetAPIController) AddPet(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// DeletePet - Deletes a pet
|
||||
@@ -172,7 +172,7 @@ func (c *PetAPIController) DeletePet(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// FilterPetsByCategory - Finds Pets
|
||||
@@ -217,7 +217,7 @@ func (c *PetAPIController) FilterPetsByCategory(w http.ResponseWriter, r *http.R
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// FindPetsByStatus - Finds Pets by status
|
||||
@@ -292,7 +292,7 @@ func (c *PetAPIController) FindPetsByStatus(w http.ResponseWriter, r *http.Reque
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// FindPetsByTags - Finds Pets by tags
|
||||
@@ -345,7 +345,7 @@ func (c *PetAPIController) FindPetsByTags(w http.ResponseWriter, r *http.Request
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// GetPetById - Find pet by ID
|
||||
@@ -366,7 +366,7 @@ func (c *PetAPIController) GetPetById(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// GetPetImageById - Returns the image for the Pet that has been previously uploaded
|
||||
@@ -387,7 +387,7 @@ func (c *PetAPIController) GetPetImageById(w http.ResponseWriter, r *http.Reques
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// GetPetsByTime - Get the pets by time
|
||||
@@ -405,7 +405,7 @@ func (c *PetAPIController) GetPetsByTime(w http.ResponseWriter, r *http.Request)
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// GetPetsUsingBooleanQueryParameters - Get the pets by only using boolean query parameters
|
||||
@@ -468,7 +468,7 @@ func (c *PetAPIController) GetPetsUsingBooleanQueryParameters(w http.ResponseWri
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// SearchPet - Search Pets by filters
|
||||
@@ -538,7 +538,7 @@ func (c *PetAPIController) SearchPet(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// UpdatePet - Update an existing pet
|
||||
@@ -565,7 +565,7 @@ func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// UpdatePetWithForm - Updates a pet in the store with form data
|
||||
@@ -596,7 +596,7 @@ func (c *PetAPIController) UpdatePetWithForm(w http.ResponseWriter, r *http.Requ
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// UploadFile - uploads an image
|
||||
@@ -639,7 +639,7 @@ func (c *PetAPIController) UploadFile(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// UploadFileArrayOfFiles - uploads images (array of files)
|
||||
@@ -679,5 +679,5 @@ func (c *PetAPIController) UploadFileArrayOfFiles(w http.ResponseWriter, r *http
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ type PetAPIService struct {
|
||||
}
|
||||
|
||||
// NewPetAPIService creates a default api service
|
||||
func NewPetAPIService() PetAPIServicer {
|
||||
func NewPetAPIService() *PetAPIService {
|
||||
return &PetAPIService{}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ func WithStoreAPIErrorHandler(h ErrorHandler) StoreAPIOption {
|
||||
}
|
||||
|
||||
// NewStoreAPIController creates a default api controller
|
||||
func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) Router {
|
||||
func NewStoreAPIController(s StoreAPIServicer, opts ...StoreAPIOption) *StoreAPIController {
|
||||
controller := &StoreAPIController{
|
||||
service: s,
|
||||
errorHandler: DefaultErrorHandler,
|
||||
@@ -89,7 +89,7 @@ func (c *StoreAPIController) DeleteOrder(w http.ResponseWriter, r *http.Request)
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// GetInventory - Returns pet inventories by status
|
||||
@@ -101,7 +101,7 @@ func (c *StoreAPIController) GetInventory(w http.ResponseWriter, r *http.Request
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// GetOrderById - Find purchase order by ID
|
||||
@@ -124,7 +124,7 @@ func (c *StoreAPIController) GetOrderById(w http.ResponseWriter, r *http.Request
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// PlaceOrder - Place an order for a pet
|
||||
@@ -151,5 +151,5 @@ func (c *StoreAPIController) PlaceOrder(w http.ResponseWriter, r *http.Request)
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ type StoreAPIService struct {
|
||||
}
|
||||
|
||||
// NewStoreAPIService creates a default api service
|
||||
func NewStoreAPIService() StoreAPIServicer {
|
||||
func NewStoreAPIService() *StoreAPIService {
|
||||
return &StoreAPIService{}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ func WithUserAPIErrorHandler(h ErrorHandler) UserAPIOption {
|
||||
}
|
||||
|
||||
// NewUserAPIController creates a default api controller
|
||||
func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) Router {
|
||||
func NewUserAPIController(s UserAPIServicer, opts ...UserAPIOption) *UserAPIController {
|
||||
controller := &UserAPIController{
|
||||
service: s,
|
||||
errorHandler: DefaultErrorHandler,
|
||||
@@ -118,7 +118,7 @@ func (c *UserAPIController) CreateUser(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// CreateUsersWithArrayInput - Creates list of users with given input array
|
||||
@@ -143,7 +143,7 @@ func (c *UserAPIController) CreateUsersWithArrayInput(w http.ResponseWriter, r *
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// CreateUsersWithListInput - Creates list of users with given input array
|
||||
@@ -168,7 +168,7 @@ func (c *UserAPIController) CreateUsersWithListInput(w http.ResponseWriter, r *h
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// DeleteUser - Delete user
|
||||
@@ -205,7 +205,7 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// GetUserByName - Get user by user name
|
||||
@@ -223,7 +223,7 @@ func (c *UserAPIController) GetUserByName(w http.ResponseWriter, r *http.Request
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// LoginUser - Logs user into the system
|
||||
@@ -272,7 +272,7 @@ func (c *UserAPIController) LoginUser(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// LogoutUser - Logs out current logged in user session
|
||||
@@ -284,7 +284,7 @@ func (c *UserAPIController) LogoutUser(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
// UpdateUser - Updated user
|
||||
@@ -317,5 +317,5 @@ func (c *UserAPIController) UpdateUser(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
// If no error, encode the body and the result code
|
||||
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ type UserAPIService struct {
|
||||
}
|
||||
|
||||
// NewUserAPIService creates a default api service
|
||||
func NewUserAPIService() UserAPIServicer {
|
||||
func NewUserAPIService() *UserAPIService {
|
||||
return &UserAPIService{}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,9 +34,9 @@ func (e *ParsingError) Unwrap() error {
|
||||
func (e *ParsingError) Error() string {
|
||||
if e.Param == "" {
|
||||
return e.Err.Error()
|
||||
} else {
|
||||
return e.Param + ": " + e.Err.Error()
|
||||
}
|
||||
|
||||
return e.Param + ": " + e.Err.Error()
|
||||
}
|
||||
|
||||
// RequiredError indicates that an error has occurred when parsing request parameters
|
||||
@@ -54,15 +54,21 @@ type ErrorHandler func(w http.ResponseWriter, r *http.Request, err error, result
|
||||
|
||||
// DefaultErrorHandler defines the default logic on how to handle errors from the controller. Any errors from parsing
|
||||
// request params will return a StatusBadRequest. Otherwise, the error code originating from the servicer will be used.
|
||||
func DefaultErrorHandler(w http.ResponseWriter, r *http.Request, err error, result *ImplResponse) {
|
||||
if _, ok := err.(*ParsingError); ok {
|
||||
func DefaultErrorHandler(w http.ResponseWriter, _ *http.Request, err error, result *ImplResponse) {
|
||||
var parsingErr *ParsingError
|
||||
if ok := errors.As(err, &parsingErr); ok {
|
||||
// Handle parsing errors
|
||||
EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w)
|
||||
} else if _, ok := err.(*RequiredError); ok {
|
||||
// Handle missing required errors
|
||||
EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w)
|
||||
} else {
|
||||
// Handle all other errors
|
||||
EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w)
|
||||
_ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusBadRequest), map[string][]string{}, w)
|
||||
return
|
||||
}
|
||||
|
||||
var requiredErr *RequiredError
|
||||
if ok := errors.As(err, &requiredErr); ok {
|
||||
// Handle missing required errors
|
||||
_ = EncodeJSONResponse(err.Error(), func(i int) *int { return &i }(http.StatusUnprocessableEntity), map[string][]string{}, w)
|
||||
return
|
||||
}
|
||||
|
||||
// Handle all other errors
|
||||
_ = EncodeJSONResponse(err.Error(), &result.Code, result.Headers, w)
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ func AssertRecurseValueRequired[T any](value reflect.Value, callback func(T) err
|
||||
|
||||
// If it is a slice we continue recursion
|
||||
case reflect.Slice:
|
||||
for i := 0; i < value.Len(); i += 1 {
|
||||
for i := 0; i < value.Len(); i++ {
|
||||
if err := AssertRecurseValueRequired(value.Index(i), callback); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ func NewColourFromValue(v string) (Colour, error) {
|
||||
ev := Colour(v)
|
||||
if ev.IsValid() {
|
||||
return ev, nil
|
||||
} else {
|
||||
return "", fmt.Errorf("invalid value '%v' for Colour: valid values are %v", v, AllowedColourEnumValues)
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("invalid value '%v' for Colour: valid values are %v", v, AllowedColourEnumValues)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -49,9 +49,9 @@ func NewGenderFromValue(v string) (Gender, error) {
|
||||
ev := Gender(v)
|
||||
if ev.IsValid() {
|
||||
return ev, nil
|
||||
} else {
|
||||
return "", fmt.Errorf("invalid value '%v' for Gender: valid values are %v", v, AllowedGenderEnumValues)
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("invalid value '%v' for Gender: valid values are %v", v, AllowedGenderEnumValues)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -58,9 +58,9 @@ func NewSpeciesFromValue(v string) (Species, error) {
|
||||
ev := Species(v)
|
||||
if ev.IsValid() {
|
||||
return ev, nil
|
||||
} else {
|
||||
return "", fmt.Errorf("invalid value '%v' for Species: valid values are %v", v, AllowedSpeciesEnumValues)
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("invalid value '%v' for Species: valid values are %v", v, AllowedSpeciesEnumValues)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -48,8 +48,7 @@ func NewRouter(routers ...Router) *mux.Router {
|
||||
router := mux.NewRouter().StrictSlash(true)
|
||||
for _, api := range routers {
|
||||
for name, route := range api.Routes() {
|
||||
var handler http.Handler
|
||||
handler = route.HandlerFunc
|
||||
var handler http.Handler = route.HandlerFunc
|
||||
handler = Logger(handler, name)
|
||||
|
||||
router.
|
||||
@@ -345,7 +344,7 @@ func parseNumericArrayParameter[T Number](param, delim string, required bool, fn
|
||||
}
|
||||
|
||||
|
||||
// parseQuery parses query paramaters and returns an error if any malformed value pairs are encountered.
|
||||
// parseQuery parses query parameters and returns an error if any malformed value pairs are encountered.
|
||||
func parseQuery(rawQuery string) (url.Values, error) {
|
||||
return url.ParseQuery(rawQuery)
|
||||
}
|
||||
Reference in New Issue
Block a user