forked from loafle/openapi-generator-original
If parsing a boolean fails, return a ParsingError
instead of a straight 500 (#16910)
Add an example endpoint that covers Required, Default, and Not Required cases
This commit is contained in:
parent
244a3b4c13
commit
677b6e64c1
@ -295,7 +295,7 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re
|
|||||||
WithParse[bool](parseBool),{{/required}}{{/defaultValue}}
|
WithParse[bool](parseBool),{{/required}}{{/defaultValue}}
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
{{/isBoolean}}
|
{{/isBoolean}}
|
||||||
|
@ -710,6 +710,36 @@ paths:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
format: binary
|
format: binary
|
||||||
|
/pets/boolean/parsing:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- pet
|
||||||
|
summary: Get the pets by only using boolean query parameters
|
||||||
|
operationId: GetPetsUsingBooleanQueryParameters
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: expr
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
- in: query
|
||||||
|
name: grouping
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
- in: query
|
||||||
|
name: inactive
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: successful operation
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/ApiResponse'
|
||||||
externalDocs:
|
externalDocs:
|
||||||
description: Find out more about Swagger
|
description: Find out more about Swagger
|
||||||
url: 'http://swagger.io'
|
url: 'http://swagger.io'
|
||||||
|
@ -179,7 +179,7 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) {
|
|||||||
WithParse[bool](parseBool),
|
WithParse[bool](parseBool),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
result, err := c.service.DeleteUser(r.Context(), usernameParam, booleanTestParam)
|
result, err := c.service.DeleteUser(r.Context(), usernameParam, booleanTestParam)
|
||||||
@ -247,7 +247,7 @@ func (c *UserAPIController) LoginUser(w http.ResponseWriter, r *http.Request) {
|
|||||||
WithParse[bool](parseBool),
|
WithParse[bool](parseBool),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
result, err := c.service.LoginUser(r.Context(), usernameParam, passwordParam, int32TestParam, int64TestParam, float32TestParam, float64TestParam, booleanTestParam)
|
result, err := c.service.LoginUser(r.Context(), usernameParam, passwordParam, int32TestParam, int64TestParam, float32TestParam, float64TestParam, booleanTestParam)
|
||||||
|
@ -725,6 +725,42 @@ paths:
|
|||||||
summary: uploads images (array of files)
|
summary: uploads images (array of files)
|
||||||
tags:
|
tags:
|
||||||
- pet
|
- pet
|
||||||
|
/pets/boolean/parsing:
|
||||||
|
get:
|
||||||
|
operationId: GetPetsUsingBooleanQueryParameters
|
||||||
|
parameters:
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: expr
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: grouping
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: inactive
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/ApiResponse'
|
||||||
|
description: successful operation
|
||||||
|
summary: Get the pets by only using boolean query parameters
|
||||||
|
tags:
|
||||||
|
- pet
|
||||||
components:
|
components:
|
||||||
requestBodies:
|
requestBodies:
|
||||||
UserArray:
|
UserArray:
|
||||||
|
@ -30,6 +30,7 @@ type PetAPIRouter interface {
|
|||||||
FindPetsByTags(http.ResponseWriter, *http.Request)
|
FindPetsByTags(http.ResponseWriter, *http.Request)
|
||||||
GetPetById(http.ResponseWriter, *http.Request)
|
GetPetById(http.ResponseWriter, *http.Request)
|
||||||
GetPetImageById(http.ResponseWriter, *http.Request)
|
GetPetImageById(http.ResponseWriter, *http.Request)
|
||||||
|
GetPetsUsingBooleanQueryParameters(http.ResponseWriter, *http.Request)
|
||||||
UpdatePet(http.ResponseWriter, *http.Request)
|
UpdatePet(http.ResponseWriter, *http.Request)
|
||||||
UpdatePetWithForm(http.ResponseWriter, *http.Request)
|
UpdatePetWithForm(http.ResponseWriter, *http.Request)
|
||||||
UploadFile(http.ResponseWriter, *http.Request)
|
UploadFile(http.ResponseWriter, *http.Request)
|
||||||
@ -72,6 +73,7 @@ type PetAPIServicer interface {
|
|||||||
FindPetsByTags(context.Context, []string, time.Time, time.Time) (ImplResponse, error)
|
FindPetsByTags(context.Context, []string, time.Time, time.Time) (ImplResponse, error)
|
||||||
GetPetById(context.Context, int64) (ImplResponse, error)
|
GetPetById(context.Context, int64) (ImplResponse, error)
|
||||||
GetPetImageById(context.Context, int64) (ImplResponse, error)
|
GetPetImageById(context.Context, int64) (ImplResponse, error)
|
||||||
|
GetPetsUsingBooleanQueryParameters(context.Context, bool, bool, bool) (ImplResponse, error)
|
||||||
UpdatePet(context.Context, Pet) (ImplResponse, error)
|
UpdatePet(context.Context, Pet) (ImplResponse, error)
|
||||||
UpdatePetWithForm(context.Context, int64, string, string) (ImplResponse, error)
|
UpdatePetWithForm(context.Context, int64, string, string) (ImplResponse, error)
|
||||||
UploadFile(context.Context, int64, string, *os.File) (ImplResponse, error)
|
UploadFile(context.Context, int64, string, *os.File) (ImplResponse, error)
|
||||||
|
@ -85,6 +85,11 @@ func (c *PetAPIController) Routes() Routes {
|
|||||||
"/v2/pet/{petId}/uploadImage",
|
"/v2/pet/{petId}/uploadImage",
|
||||||
c.GetPetImageById,
|
c.GetPetImageById,
|
||||||
},
|
},
|
||||||
|
"GetPetsUsingBooleanQueryParameters": Route{
|
||||||
|
strings.ToUpper("Get"),
|
||||||
|
"/v2/pets/boolean/parsing",
|
||||||
|
c.GetPetsUsingBooleanQueryParameters,
|
||||||
|
},
|
||||||
"UpdatePet": Route{
|
"UpdatePet": Route{
|
||||||
strings.ToUpper("Put"),
|
strings.ToUpper("Put"),
|
||||||
"/v2/pet",
|
"/v2/pet",
|
||||||
@ -289,6 +294,43 @@ func (c *PetAPIController) GetPetImageById(w http.ResponseWriter, r *http.Reques
|
|||||||
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
|
||||||
|
func (c *PetAPIController) GetPetsUsingBooleanQueryParameters(w http.ResponseWriter, r *http.Request) {
|
||||||
|
query := r.URL.Query()
|
||||||
|
exprParam, err := parseBoolParameter(
|
||||||
|
query.Get("expr"),
|
||||||
|
WithRequire[bool](parseBool),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
groupingParam, err := parseBoolParameter(
|
||||||
|
query.Get("grouping"),
|
||||||
|
WithParse[bool](parseBool),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
inactiveParam, err := parseBoolParameter(
|
||||||
|
query.Get("inactive"),
|
||||||
|
WithDefaultOrParse[bool](false, parseBool),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
result, err := c.service.GetPetsUsingBooleanQueryParameters(r.Context(), exprParam, groupingParam, inactiveParam)
|
||||||
|
// If an error occurred, encode the error with the status code
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, err, &result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// If no error, encode the body and the result code
|
||||||
|
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||||
|
}
|
||||||
|
|
||||||
// UpdatePet - Update an existing pet
|
// UpdatePet - Update an existing pet
|
||||||
func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) {
|
func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) {
|
||||||
petParam := Pet{}
|
petParam := Pet{}
|
||||||
|
@ -130,6 +130,17 @@ func (s *PetAPIService) GetPetImageById(ctx context.Context, petId int64) (ImplR
|
|||||||
return Response(http.StatusNotImplemented, nil), errors.New("GetPetImageById method not implemented")
|
return Response(http.StatusNotImplemented, nil), errors.New("GetPetImageById method not implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPetsUsingBooleanQueryParameters - Get the pets by only using boolean query parameters
|
||||||
|
func (s *PetAPIService) GetPetsUsingBooleanQueryParameters(ctx context.Context, expr bool, grouping bool, inactive bool) (ImplResponse, error) {
|
||||||
|
// TODO - update GetPetsUsingBooleanQueryParameters with the required logic for this service method.
|
||||||
|
// Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation.
|
||||||
|
|
||||||
|
// TODO: Uncomment the next line to return response Response(200, ApiResponse{}) or use other options such as http.Ok ...
|
||||||
|
// return Response(200, ApiResponse{}), nil
|
||||||
|
|
||||||
|
return Response(http.StatusNotImplemented, nil), errors.New("GetPetsUsingBooleanQueryParameters method not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
// UpdatePet - Update an existing pet
|
// UpdatePet - Update an existing pet
|
||||||
func (s *PetAPIService) UpdatePet(ctx context.Context, pet Pet) (ImplResponse, error) {
|
func (s *PetAPIService) UpdatePet(ctx context.Context, pet Pet) (ImplResponse, error) {
|
||||||
// TODO - update UpdatePet with the required logic for this service method.
|
// TODO - update UpdatePet with the required logic for this service method.
|
||||||
|
@ -180,7 +180,7 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) {
|
|||||||
WithParse[bool](parseBool),
|
WithParse[bool](parseBool),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
result, err := c.service.DeleteUser(r.Context(), usernameParam, booleanTestParam)
|
result, err := c.service.DeleteUser(r.Context(), usernameParam, booleanTestParam)
|
||||||
@ -217,7 +217,7 @@ func (c *UserAPIController) LoginUser(w http.ResponseWriter, r *http.Request) {
|
|||||||
WithParse[bool](parseBool),
|
WithParse[bool](parseBool),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
result, err := c.service.LoginUser(r.Context(), usernameParam, passwordParam, booleanTestParam)
|
result, err := c.service.LoginUser(r.Context(), usernameParam, passwordParam, booleanTestParam)
|
||||||
|
@ -725,6 +725,42 @@ paths:
|
|||||||
summary: uploads images (array of files)
|
summary: uploads images (array of files)
|
||||||
tags:
|
tags:
|
||||||
- pet
|
- pet
|
||||||
|
/pets/boolean/parsing:
|
||||||
|
get:
|
||||||
|
operationId: GetPetsUsingBooleanQueryParameters
|
||||||
|
parameters:
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: expr
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: grouping
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: inactive
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/ApiResponse'
|
||||||
|
description: successful operation
|
||||||
|
summary: Get the pets by only using boolean query parameters
|
||||||
|
tags:
|
||||||
|
- pet
|
||||||
components:
|
components:
|
||||||
requestBodies:
|
requestBodies:
|
||||||
UserArray:
|
UserArray:
|
||||||
|
@ -30,6 +30,7 @@ type PetAPIRouter interface {
|
|||||||
FindPetsByTags(http.ResponseWriter, *http.Request)
|
FindPetsByTags(http.ResponseWriter, *http.Request)
|
||||||
GetPetById(http.ResponseWriter, *http.Request)
|
GetPetById(http.ResponseWriter, *http.Request)
|
||||||
GetPetImageById(http.ResponseWriter, *http.Request)
|
GetPetImageById(http.ResponseWriter, *http.Request)
|
||||||
|
GetPetsUsingBooleanQueryParameters(http.ResponseWriter, *http.Request)
|
||||||
UpdatePet(http.ResponseWriter, *http.Request)
|
UpdatePet(http.ResponseWriter, *http.Request)
|
||||||
UpdatePetWithForm(http.ResponseWriter, *http.Request)
|
UpdatePetWithForm(http.ResponseWriter, *http.Request)
|
||||||
UploadFile(http.ResponseWriter, *http.Request)
|
UploadFile(http.ResponseWriter, *http.Request)
|
||||||
@ -72,6 +73,7 @@ type PetAPIServicer interface {
|
|||||||
FindPetsByTags(context.Context, []string, time.Time, time.Time) (ImplResponse, error)
|
FindPetsByTags(context.Context, []string, time.Time, time.Time) (ImplResponse, error)
|
||||||
GetPetById(context.Context, int64) (ImplResponse, error)
|
GetPetById(context.Context, int64) (ImplResponse, error)
|
||||||
GetPetImageById(context.Context, int64) (ImplResponse, error)
|
GetPetImageById(context.Context, int64) (ImplResponse, error)
|
||||||
|
GetPetsUsingBooleanQueryParameters(context.Context, bool, bool, bool) (ImplResponse, error)
|
||||||
UpdatePet(context.Context, Pet) (ImplResponse, error)
|
UpdatePet(context.Context, Pet) (ImplResponse, error)
|
||||||
UpdatePetWithForm(context.Context, int64, string, string) (ImplResponse, error)
|
UpdatePetWithForm(context.Context, int64, string, string) (ImplResponse, error)
|
||||||
UploadFile(context.Context, int64, string, *os.File) (ImplResponse, error)
|
UploadFile(context.Context, int64, string, *os.File) (ImplResponse, error)
|
||||||
|
@ -85,6 +85,11 @@ func (c *PetAPIController) Routes() Routes {
|
|||||||
"/v2/pet/{petId}/uploadImage",
|
"/v2/pet/{petId}/uploadImage",
|
||||||
c.GetPetImageById,
|
c.GetPetImageById,
|
||||||
},
|
},
|
||||||
|
"GetPetsUsingBooleanQueryParameters": Route{
|
||||||
|
strings.ToUpper("Get"),
|
||||||
|
"/v2/pets/boolean/parsing",
|
||||||
|
c.GetPetsUsingBooleanQueryParameters,
|
||||||
|
},
|
||||||
"UpdatePet": Route{
|
"UpdatePet": Route{
|
||||||
strings.ToUpper("Put"),
|
strings.ToUpper("Put"),
|
||||||
"/v2/pet",
|
"/v2/pet",
|
||||||
@ -285,6 +290,43 @@ func (c *PetAPIController) GetPetImageById(w http.ResponseWriter, r *http.Reques
|
|||||||
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
|
||||||
|
func (c *PetAPIController) GetPetsUsingBooleanQueryParameters(w http.ResponseWriter, r *http.Request) {
|
||||||
|
query := r.URL.Query()
|
||||||
|
exprParam, err := parseBoolParameter(
|
||||||
|
query.Get("expr"),
|
||||||
|
WithRequire[bool](parseBool),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
groupingParam, err := parseBoolParameter(
|
||||||
|
query.Get("grouping"),
|
||||||
|
WithParse[bool](parseBool),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
inactiveParam, err := parseBoolParameter(
|
||||||
|
query.Get("inactive"),
|
||||||
|
WithDefaultOrParse[bool](false, parseBool),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
result, err := c.service.GetPetsUsingBooleanQueryParameters(r.Context(), exprParam, groupingParam, inactiveParam)
|
||||||
|
// If an error occurred, encode the error with the status code
|
||||||
|
if err != nil {
|
||||||
|
c.errorHandler(w, r, err, &result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// If no error, encode the body and the result code
|
||||||
|
EncodeJSONResponse(result.Body, &result.Code, result.Headers, w)
|
||||||
|
}
|
||||||
|
|
||||||
// UpdatePet - Update an existing pet
|
// UpdatePet - Update an existing pet
|
||||||
func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) {
|
func (c *PetAPIController) UpdatePet(w http.ResponseWriter, r *http.Request) {
|
||||||
petParam := Pet{}
|
petParam := Pet{}
|
||||||
|
@ -130,6 +130,17 @@ func (s *PetAPIService) GetPetImageById(ctx context.Context, petId int64) (ImplR
|
|||||||
return Response(http.StatusNotImplemented, nil), errors.New("GetPetImageById method not implemented")
|
return Response(http.StatusNotImplemented, nil), errors.New("GetPetImageById method not implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPetsUsingBooleanQueryParameters - Get the pets by only using boolean query parameters
|
||||||
|
func (s *PetAPIService) GetPetsUsingBooleanQueryParameters(ctx context.Context, expr bool, grouping bool, inactive bool) (ImplResponse, error) {
|
||||||
|
// TODO - update GetPetsUsingBooleanQueryParameters with the required logic for this service method.
|
||||||
|
// Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation.
|
||||||
|
|
||||||
|
// TODO: Uncomment the next line to return response Response(200, ApiResponse{}) or use other options such as http.Ok ...
|
||||||
|
// return Response(200, ApiResponse{}), nil
|
||||||
|
|
||||||
|
return Response(http.StatusNotImplemented, nil), errors.New("GetPetsUsingBooleanQueryParameters method not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
// UpdatePet - Update an existing pet
|
// UpdatePet - Update an existing pet
|
||||||
func (s *PetAPIService) UpdatePet(ctx context.Context, pet Pet) (ImplResponse, error) {
|
func (s *PetAPIService) UpdatePet(ctx context.Context, pet Pet) (ImplResponse, error) {
|
||||||
// TODO - update UpdatePet with the required logic for this service method.
|
// TODO - update UpdatePet with the required logic for this service method.
|
||||||
|
@ -179,7 +179,7 @@ func (c *UserAPIController) DeleteUser(w http.ResponseWriter, r *http.Request) {
|
|||||||
WithParse[bool](parseBool),
|
WithParse[bool](parseBool),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
result, err := c.service.DeleteUser(r.Context(), usernameParam, booleanTestParam)
|
result, err := c.service.DeleteUser(r.Context(), usernameParam, booleanTestParam)
|
||||||
@ -215,7 +215,7 @@ func (c *UserAPIController) LoginUser(w http.ResponseWriter, r *http.Request) {
|
|||||||
WithParse[bool](parseBool),
|
WithParse[bool](parseBool),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
c.errorHandler(w, r, &ParsingError{Err: err}, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
result, err := c.service.LoginUser(r.Context(), usernameParam, passwordParam, booleanTestParam)
|
result, err := c.service.LoginUser(r.Context(), usernameParam, passwordParam, booleanTestParam)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user