From 36bc5ef897d142fb9984be7b11c857d9c2e5ed0a Mon Sep 17 00:00:00 2001 From: Amit Basuri Date: Fri, 30 Oct 2020 15:56:29 +0530 Subject: [PATCH] Marshalling zero valued Deleted at to nullhttps://github.com/go-gorm/gorm/issues/3693 --- soft_delete.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/soft_delete.go b/soft_delete.go index f3272246..ca9f5b7c 100644 --- a/soft_delete.go +++ b/soft_delete.go @@ -26,12 +26,19 @@ func (n DeletedAt) Value() (driver.Value, error) { } func (n DeletedAt) MarshalJSON() ([]byte, error) { + if !n.Valid { + return []byte(`null`), nil + } return json.Marshal(n.Time) } func (n *DeletedAt) UnmarshalJSON(b []byte) error { + if string(b) == "null" { + n.Valid = false + return nil + } err := json.Unmarshal(b, &n.Time) - if err == nil && !n.Time.IsZero() { + if err == nil { n.Valid = true } return err