From ac0148f000301c83f4513df338aae103e6cd86c0 Mon Sep 17 00:00:00 2001 From: Alexander Mazuruk Date: Mon, 10 Sep 2018 20:37:07 +0200 Subject: [PATCH] Adjust validation to allow empty values After user input is marshalled, swagger server validates data. When input data is enum, it was strictly validated against enum values. There is no empty value thus user receives an error and is forced to always set enum fields in e.g. JobFilter.Status. Modifying generated code is a bad practice but it was not possible (to the best of the authors knowledge) to achieve this by simply modyfing swagger.yml and re-generating models. Possible solutions: - adding and using new type (which would satisfy swaggers interfaces) - customizing code generation Change-Id: Ifc381a12936277db9938032dadb31fe865e84ad1 Signed-off-by: Alexander Mazuruk --- artifact_sort_by.go | 2 +- artifact_status.go | 2 +- artifact_type.go | 2 +- job_sort_by.go | 2 +- job_status.go | 2 +- sort_order.go | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/artifact_sort_by.go b/artifact_sort_by.go index 866532c..2921f0f 100644 --- a/artifact_sort_by.go +++ b/artifact_sort_by.go @@ -46,7 +46,7 @@ var artifactSortByEnum []interface{} func init() { var res []ArtifactSortBy - if err := json.Unmarshal([]byte(`["ID"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["ID",""]`), &res); err != nil { panic(err) } for _, v := range res { diff --git a/artifact_status.go b/artifact_status.go index 2c30dab..4255c7d 100644 --- a/artifact_status.go +++ b/artifact_status.go @@ -62,7 +62,7 @@ var artifactStatusEnum []interface{} func init() { var res []ArtifactStatus - if err := json.Unmarshal([]byte(`["DOWNLOADING","READY","FAILED","PENDING"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["DOWNLOADING","READY","FAILED","PENDING",""]`), &res); err != nil { panic(err) } for _, v := range res { diff --git a/artifact_type.go b/artifact_type.go index eada618..608b49f 100644 --- a/artifact_type.go +++ b/artifact_type.go @@ -62,7 +62,7 @@ var artifactTypeEnum []interface{} func init() { var res []ArtifactType - if err := json.Unmarshal([]byte(`["IMAGE","RESULT","TEST","YAML"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["IMAGE","RESULT","TEST","YAML",""]`), &res); err != nil { panic(err) } for _, v := range res { diff --git a/job_sort_by.go b/job_sort_by.go index 93fb19b..8af2a25 100644 --- a/job_sort_by.go +++ b/job_sort_by.go @@ -64,7 +64,7 @@ var jobSortByEnum []interface{} func init() { var res []JobSortBy - if err := json.Unmarshal([]byte(`["ID","CreatedDate","UpdatedDate","JobStatus"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["ID","CreatedDate","UpdatedDate","JobStatus",""]`), &res); err != nil { panic(err) } for _, v := range res { diff --git a/job_status.go b/job_status.go index 45e0888..88220b2 100644 --- a/job_status.go +++ b/job_status.go @@ -82,7 +82,7 @@ var jobStatusEnum []interface{} func init() { var res []JobStatus - if err := json.Unmarshal([]byte(`["NEW","PARSING","DOWNLOADING","WAITING","RUNNING","COMPLETED","FAILED","CANCELED"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["NEW","PARSING","DOWNLOADING","WAITING","RUNNING","COMPLETED","FAILED","CANCELED",""]`), &res); err != nil { panic(err) } for _, v := range res { diff --git a/sort_order.go b/sort_order.go index f650ceb..404d772 100644 --- a/sort_order.go +++ b/sort_order.go @@ -52,7 +52,7 @@ var sortOrderEnum []interface{} func init() { var res []SortOrder - if err := json.Unmarshal([]byte(`["Ascending","Descending"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["Ascending","Descending",""]`), &res); err != nil { panic(err) } for _, v := range res { -- 2.7.4