From 03c92a35027480e5eafdbf9062747ef2f790068d Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Fri, 17 Feb 2023 20:35:18 -0900 Subject: [PATCH] drop unused time field --- backend/app/api/static/docs/docs.go | 3 -- backend/app/api/static/docs/swagger.json | 3 -- backend/app/api/static/docs/swagger.yaml | 2 - backend/go.sum | 4 ++ backend/internal/data/repo/repo_items.go | 10 ++--- backend/internal/data/types/date.go | 57 ++++++++++++++++-------- frontend/lib/api/types/data-contracts.ts | 1 - 7 files changed, 48 insertions(+), 32 deletions(-) diff --git a/backend/app/api/static/docs/docs.go b/backend/app/api/static/docs/docs.go index e24f140..8ceb1cf 100644 --- a/backend/app/api/static/docs/docs.go +++ b/backend/app/api/static/docs/docs.go @@ -1722,9 +1722,6 @@ const docTemplate = `{ "textValue": { "type": "string" }, - "timeValue": { - "type": "string" - }, "type": { "type": "string" } diff --git a/backend/app/api/static/docs/swagger.json b/backend/app/api/static/docs/swagger.json index 6319ff9..3808fb5 100644 --- a/backend/app/api/static/docs/swagger.json +++ b/backend/app/api/static/docs/swagger.json @@ -1714,9 +1714,6 @@ "textValue": { "type": "string" }, - "timeValue": { - "type": "string" - }, "type": { "type": "string" } diff --git a/backend/app/api/static/docs/swagger.yaml b/backend/app/api/static/docs/swagger.yaml index 301dd3d..c461867 100644 --- a/backend/app/api/static/docs/swagger.yaml +++ b/backend/app/api/static/docs/swagger.yaml @@ -93,8 +93,6 @@ definitions: type: integer textValue: type: string - timeValue: - type: string type: type: string type: object diff --git a/backend/go.sum b/backend/go.sum index 2a5625a..e0fca76 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -76,11 +76,13 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -90,6 +92,8 @@ github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= diff --git a/backend/internal/data/repo/repo_items.go b/backend/internal/data/repo/repo_items.go index 842e86d..5e73565 100644 --- a/backend/internal/data/repo/repo_items.go +++ b/backend/internal/data/repo/repo_items.go @@ -45,7 +45,7 @@ type ( TextValue string `json:"textValue"` NumberValue int `json:"numberValue"` BooleanValue bool `json:"booleanValue"` - TimeValue time.Time `json:"timeValue,omitempty"` + // TimeValue time.Time `json:"timeValue,omitempty"` } ItemCreate struct { @@ -198,7 +198,7 @@ func mapFields(fields []*ent.ItemField) []ItemField { TextValue: f.TextValue, NumberValue: f.NumberValue, BooleanValue: f.BooleanValue, - TimeValue: f.TimeValue, + // TimeValue: f.TimeValue, } } return result @@ -585,7 +585,7 @@ func (e *ItemsRepository) UpdateByGroup(ctx context.Context, GID uuid.UUID, data SetTextValue(f.TextValue). SetNumberValue(f.NumberValue). SetBooleanValue(f.BooleanValue). - SetTimeValue(f.TimeValue). + // SetTimeValue(f.TimeValue). Save(ctx) if err != nil { return ItemOut{}, err @@ -601,8 +601,8 @@ func (e *ItemsRepository) UpdateByGroup(ctx context.Context, GID uuid.UUID, data SetName(f.Name). SetTextValue(f.TextValue). SetNumberValue(f.NumberValue). - SetBooleanValue(f.BooleanValue). - SetTimeValue(f.TimeValue) + SetBooleanValue(f.BooleanValue) + // SetTimeValue(f.TimeValue) _, err = opt.Save(ctx) if err != nil { diff --git a/backend/internal/data/types/date.go b/backend/internal/data/types/date.go index 6aff82f..0dc09db 100644 --- a/backend/internal/data/types/date.go +++ b/backend/internal/data/types/date.go @@ -1,6 +1,11 @@ package types -import "time" +import ( + "errors" + "fmt" + "strings" + "time" +) // Date is a custom type that implements the MarshalJSON interface // that applies date only formatting to the time.Time fields in order @@ -34,17 +39,20 @@ func DateFromString(s string) Date { return Date{} } - t, err := time.Parse("2006-01-02", s) - if err != nil { - // TODO: Remove - used by legacy importer - t, err = time.Parse("01/02/2006", s) + try := [...]string{ + "2006-01-02", + "01/02/2006", + time.RFC3339, + } - if err != nil { - return Date{} + for _, format := range try { + t, err := time.Parse(format, s) + if err == nil { + return DateFromTime(t) } } - return DateFromTime(t) + return Date{} } func (d Date) String() string { @@ -63,24 +71,37 @@ func (d Date) MarshalJSON() ([]byte, error) { return []byte(`"` + d.String() + `"`), nil } -func (d *Date) UnmarshalJSON(data []byte) error { - str := string(data) - if str == `""` { +func (d *Date) UnmarshalJSON(data []byte) (err error) { + // unescape the string if necessary `\"` -> `"` + str := strings.Trim(string(data), "\"") + fmt.Printf("str: %q\n", str) + if str == "" || str == "null" || str == `""` { + println("empty date") *d = Date{} return nil } - // Try YYYY-MM-DD format + try := [...]string{ + "2006-01-02", + "01/02/2006", + time.RFC3339, + } + + set := false var t time.Time - t, err := time.Parse("2006-01-02", str) - if err != nil { - // Try default interface - err = t.UnmarshalJSON(data) - if err != nil { - return err + + for _, format := range try { + t, err = time.Parse(format, str) + if err == nil { + set = true + break } } + if !set { + return errors.New("invalid date format") + } + // strip the time and timezone information *d = DateFromTime(t) diff --git a/frontend/lib/api/types/data-contracts.ts b/frontend/lib/api/types/data-contracts.ts index 949a287..d8ce947 100644 --- a/frontend/lib/api/types/data-contracts.ts +++ b/frontend/lib/api/types/data-contracts.ts @@ -66,7 +66,6 @@ export interface ItemField { name: string; numberValue: number; textValue: string; - timeValue: string; type: string; }