123456789101112131415161718192021222324252627282930 |
- package rest
- import (
- "fmt"
- "reflect"
- "time"
- )
- // Time используется для формирования объекта времени из формата UnixMilli, а так же выгрузки в этот формат в результирующем объекте
- type Time time.Time
- // RestFields выгружает объект в результирующий объект в формат UnixMilli
- func (s *Time) RestFields(fieldName string, names ...any) (any, IErrorArgs) {
- if len(names) > 0 {
- return nil, ErrorFiled(fmt.Sprintf("%v.%v", fieldName, names[0]), "field is not exists")
- }
- return time.Time(*s).UnixMilli(), nil
- }
- // RestFrom формирует из поля типа int64 объект времени
- func (s *Time) RestFrom(source any) (err IErrorArgs) {
- defer func() {
- if r := recover(); r != nil {
- err = ErrorMessage("ErrParse", fmt.Sprintf("time: expected millisecond timestamp, given: %v", source))
- }
- }()
- rVal := reflect.ValueOf(source)
- *s = Time(time.UnixMilli(rVal.Int()))
- return
- }
|