diff --git a/api/system/spec.json b/api/system/spec.json index 99b11af68..0deb76279 100644 --- a/api/system/spec.json +++ b/api/system/spec.json @@ -1685,8 +1685,8 @@ { "name": "remindAt", "title": "Remind At", - "type": "time.Time", - "required": true + "type": "*time.Time", + "required": false } ] } @@ -1727,8 +1727,8 @@ { "name": "remindAt", "title": "Remind At", - "type": "time.Time", - "required": true + "type": "*time.Time", + "required": false } ] } @@ -1797,7 +1797,7 @@ ], "post": [ { - "type": "time.Time", + "type": "*time.Time", "name": "remindAt", "required": true, "title": "New Remind At Time" diff --git a/api/system/spec/reminder.json b/api/system/spec/reminder.json index bb4c69251..7301c5ad4 100644 --- a/api/system/spec/reminder.json +++ b/api/system/spec/reminder.json @@ -90,9 +90,9 @@ }, { "name": "remindAt", - "required": true, + "required": false, "title": "Remind At", - "type": "time.Time" + "type": "*time.Time" } ] } @@ -132,9 +132,9 @@ }, { "name": "remindAt", - "required": true, + "required": false, "title": "Remind At", - "type": "time.Time" + "type": "*time.Time" } ] } @@ -206,7 +206,7 @@ "name": "remindAt", "required": true, "title": "New Remind At Time", - "type": "time.Time" + "type": "*time.Time" } ] } diff --git a/docs/system/README.md b/docs/system/README.md index a6c0f540f..5a99a78ff 100644 --- a/docs/system/README.md +++ b/docs/system/README.md @@ -735,7 +735,7 @@ Organisations represent a top-level grouping entity. There may be many organisat | resource | string | POST | Resource | N/A | YES | | assignedTo | uint64 | POST | Assigned To | N/A | YES | | payload | sqlxTypes.JSONText | POST | Payload | N/A | YES | -| remindAt | time.Time | POST | Remind At | N/A | YES | +| remindAt | *time.Time | POST | Remind At | N/A | NO | ## Update reminder @@ -753,7 +753,7 @@ Organisations represent a top-level grouping entity. There may be many organisat | resource | string | POST | Resource | N/A | YES | | assignedTo | uint64 | POST | Assigned To | N/A | YES | | payload | sqlxTypes.JSONText | POST | Payload | N/A | YES | -| remindAt | time.Time | POST | Remind At | N/A | YES | +| remindAt | *time.Time | POST | Remind At | N/A | NO | ## Read reminder by ID @@ -810,7 +810,7 @@ Organisations represent a top-level grouping entity. There may be many organisat | Parameter | Type | Method | Description | Default | Required? | | --------- | ---- | ------ | ----------- | ------- | --------- | | reminderID | uint64 | PATH | reminder ID | N/A | YES | -| remindAt | time.Time | POST | New Remind At Time | N/A | YES | +| remindAt | *time.Time | POST | New Remind At Time | N/A | YES | --- diff --git a/system/rest/request/reminder.go b/system/rest/request/reminder.go index 0fe91a9a7..41112d851 100644 --- a/system/rest/request/reminder.go +++ b/system/rest/request/reminder.go @@ -123,7 +123,7 @@ type ReminderCreate struct { Resource string AssignedTo uint64 `json:",string"` Payload sqlxTypes.JSONText - RemindAt time.Time + RemindAt *time.Time } func NewReminderCreate() *ReminderCreate { @@ -182,7 +182,7 @@ func (r *ReminderCreate) Fill(req *http.Request) (err error) { } if val, ok := post["remindAt"]; ok { - if r.RemindAt, err = parseISODateWithErr(val); err != nil { + if r.RemindAt, err = parseISODatePtrWithErr(val); err != nil { return err } } @@ -198,7 +198,7 @@ type ReminderUpdate struct { Resource string AssignedTo uint64 `json:",string"` Payload sqlxTypes.JSONText - RemindAt time.Time + RemindAt *time.Time } func NewReminderUpdate() *ReminderUpdate { @@ -259,7 +259,7 @@ func (r *ReminderUpdate) Fill(req *http.Request) (err error) { } if val, ok := post["remindAt"]; ok { - if r.RemindAt, err = parseISODateWithErr(val); err != nil { + if r.RemindAt, err = parseISODatePtrWithErr(val); err != nil { return err } } @@ -425,7 +425,7 @@ var _ RequestFiller = NewReminderDismiss() // Reminder snooze request parameters type ReminderSnooze struct { ReminderID uint64 `json:",string"` - RemindAt time.Time + RemindAt *time.Time } func NewReminderSnooze() *ReminderSnooze { @@ -471,7 +471,7 @@ func (r *ReminderSnooze) Fill(req *http.Request) (err error) { r.ReminderID = parseUInt64(chi.URLParam(req, "reminderID")) if val, ok := post["remindAt"]; ok { - if r.RemindAt, err = parseISODateWithErr(val); err != nil { + if r.RemindAt, err = parseISODatePtrWithErr(val); err != nil { return err } } diff --git a/system/service/reminder.go b/system/service/reminder.go index cf64b7aa5..6ef12db25 100644 --- a/system/service/reminder.go +++ b/system/service/reminder.go @@ -33,7 +33,7 @@ type ( Update(context.Context, *types.Reminder) (*types.Reminder, error) Dismiss(context.Context, uint64) error - Snooze(context.Context, uint64, time.Time) error + Snooze(context.Context, uint64, *time.Time) error Delete(context.Context, uint64) error } @@ -149,7 +149,7 @@ func (svc reminder) Dismiss(ctx context.Context, ID uint64) (err error) { }) } -func (svc reminder) Snooze(ctx context.Context, ID uint64, remindAt time.Time) (err error) { +func (svc reminder) Snooze(ctx context.Context, ID uint64, remindAt *time.Time) (err error) { return svc.db.Transaction(func() (err error) { var t *types.Reminder if t, err = svc.reminder.FindByID(ID); err != nil { diff --git a/system/types/reminder.go b/system/types/reminder.go index f0a794d5d..4a026086c 100644 --- a/system/types/reminder.go +++ b/system/types/reminder.go @@ -22,7 +22,7 @@ type ( DismissedBy uint64 `json:"dismissedBy,string" db:"dismissed_by"` DismissedAt *time.Time `json:"dismissedAt" db:"dismissed_at"` - RemindAt time.Time `json:"remindAt" db:"remind_at"` + RemindAt *time.Time `json:"remindAt" db:"remind_at"` CreatedAt time.Time `json:"createdAt,omitempty" db:"created_at"` UpdatedAt *time.Time `json:"updatedAt,omitempty" db:"updated_at"`