-
Notifications
You must be signed in to change notification settings - Fork 1
/
with_created_at.go
46 lines (38 loc) · 1.25 KB
/
with_created_at.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package with
import (
"github.com/dal-go/dalgo/dal"
"github.com/strongo/validation"
"time"
)
type CreatedTimeGetter interface {
GetCreatedTime() (time.Time, error)
}
var _ CreatedTimeGetter = (*CreatedAtField)(nil)
type CreatedAtField struct {
//CreatedAt string `json:"createdAt" dalgo:"createdAt" firestore:"createdAt"`
CreatedAt time.Time `json:"createdAt" dalgo:"createdAt" firestore:"createdAt"`
}
// GetCreatedTime returns value of CreatedAt field as time.Time parsed with RFC3339Nano layout
func (v *CreatedAtField) GetCreatedTime() (time.Time, error) {
//return time.Parse(time.RFC3339Nano, v.CreatedAt)
return v.CreatedAt, nil
}
// SetCreatedAt sets CreatedAtField field formatted with RFC3339Nano layout
func (v *CreatedAtField) SetCreatedAt(t time.Time) {
//v.CreatedAt = t.Format(time.RFC3339Nano)
v.CreatedAt = t
}
func (v *CreatedAtField) UpdatesCreatedOn() []dal.Update {
return []dal.Update{
{Field: "createdOn", Value: v.CreatedAt},
}
}
func (v *CreatedAtField) Validate() error {
if v.CreatedAt.IsZero() {
return validation.NewErrRecordIsMissingRequiredField("createdAt")
}
//if _, err := time.Parse(time.DateOnly, v.CreatedAt); err != nil {
// return validation.NewErrBadRecordFieldValue("createdAt", err.Error())
//}
return nil
}