35 lines
649 B
Go
35 lines
649 B
Go
|
|
package model
|
||
|
|
|
||
|
|
import (
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/google/uuid"
|
||
|
|
)
|
||
|
|
|
||
|
|
type Token struct {
|
||
|
|
ID uuid.UUID
|
||
|
|
UserID uuid.UUID
|
||
|
|
DateCreated time.Time
|
||
|
|
DateExpires time.Time
|
||
|
|
}
|
||
|
|
|
||
|
|
func (t Token) Validate() error {
|
||
|
|
errs := []error{}
|
||
|
|
if len(t.ID) == 0 {
|
||
|
|
errs = append(errs, ErrZeroValue{Name: "ID"})
|
||
|
|
}
|
||
|
|
if len(t.UserID) == 0 {
|
||
|
|
errs = append(errs, ErrZeroValue{Name: "User"})
|
||
|
|
}
|
||
|
|
if t.DateCreated.IsZero() {
|
||
|
|
errs = append(errs, ErrZeroValue{Name: "DateCreated"})
|
||
|
|
}
|
||
|
|
if t.DateExpires.IsZero() {
|
||
|
|
errs = append(errs, ErrZeroValue{Name: "DateExpires"})
|
||
|
|
}
|
||
|
|
if len(errs) > 0 {
|
||
|
|
return ErrInvalidModel{Name: "Token", Errors: errs}
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|