From ead5c151886ba2c52772b6213c433c95cad2822b Mon Sep 17 00:00:00 2001 From: Bob Callaway <bobcallaway@users.noreply.github.com> Date: Mon, 4 Jan 2021 15:23:47 -0500 Subject: [PATCH] Mark request body for create entry as required (#81) We can't insert a blank entry, so mark request body as required. Signed-off-by: Bob Callaway <bcallawa@redhat.com> --- openapi.yaml | 1 + pkg/generated/restapi/embedded_spec.go | 2 ++ .../operations/entries/create_log_entry_parameters.go | 7 +++++++ 3 files changed, 10 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 2a1524d..40e850e 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -75,6 +75,7 @@ paths: name: proposedEntry schema: $ref: '#/definitions/ProposedEntry' + required: true responses: 201: description: Returns the entry created in the transparency log diff --git a/pkg/generated/restapi/embedded_spec.go b/pkg/generated/restapi/embedded_spec.go index bf0e81a..f0f6b4e 100644 --- a/pkg/generated/restapi/embedded_spec.go +++ b/pkg/generated/restapi/embedded_spec.go @@ -115,6 +115,7 @@ func init() { { "name": "proposedEntry", "in": "body", + "required": true, "schema": { "$ref": "#/definitions/ProposedEntry" } @@ -579,6 +580,7 @@ func init() { { "name": "proposedEntry", "in": "body", + "required": true, "schema": { "$ref": "#/definitions/ProposedEntry" } diff --git a/pkg/generated/restapi/operations/entries/create_log_entry_parameters.go b/pkg/generated/restapi/operations/entries/create_log_entry_parameters.go index 7d73319..efd6865 100644 --- a/pkg/generated/restapi/operations/entries/create_log_entry_parameters.go +++ b/pkg/generated/restapi/operations/entries/create_log_entry_parameters.go @@ -24,6 +24,7 @@ package entries import ( "context" + "io" "net/http" "github.com/go-openapi/errors" @@ -51,6 +52,7 @@ type CreateLogEntryParams struct { HTTPRequest *http.Request `json:"-"` /* + Required: true In: body */ ProposedEntry models.ProposedEntry @@ -69,6 +71,9 @@ func (o *CreateLogEntryParams) BindRequest(r *http.Request, route *middleware.Ma defer r.Body.Close() body, err := models.UnmarshalProposedEntry(r.Body, route.Consumer) if err != nil { + if err == io.EOF { + err = errors.Required("proposedEntry", "body", "") + } res = append(res, err) } else { // validate body object @@ -85,6 +90,8 @@ func (o *CreateLogEntryParams) BindRequest(r *http.Request, route *middleware.Ma o.ProposedEntry = body } } + } else { + res = append(res, errors.Required("proposedEntry", "body", "")) } if len(res) > 0 { return errors.CompositeValidationError(res...) -- GitLab