From 7c6d7669c4d410fcc5fc337f00b43f3504b38b0b Mon Sep 17 00:00:00 2001 From: Gabe Kangas Date: Sat, 18 Jul 2020 15:39:30 -0700 Subject: [PATCH] Whoops. Missing file. Thanks automated build --- utils/nulltime.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 utils/nulltime.go diff --git a/utils/nulltime.go b/utils/nulltime.go new file mode 100644 index 000000000..e5ec931fc --- /dev/null +++ b/utils/nulltime.go @@ -0,0 +1,34 @@ +package utils + +import ( + "database/sql/driver" + "fmt" + "time" +) + +type NullTime struct { + Time time.Time + Valid bool // Valid is true if Time is not NULL +} + +// Scan implements the Scanner interface. +func (nt *NullTime) Scan(value interface{}) error { + nt.Time, nt.Valid = value.(time.Time) + return nil +} + +// Value implements the driver Valuer interface. +func (nt NullTime) Value() (driver.Value, error) { + if !nt.Valid { + return nil, nil + } + return nt.Time, nil +} + +func (nt NullTime) MarshalJSON() ([]byte, error) { + if !nt.Valid { + return []byte("null"), nil + } + val := fmt.Sprintf("\"%s\"", nt.Time.Format(time.RFC3339)) + return []byte(val), nil +}