Spaces:
Runtime error
Runtime error
File size: 990 Bytes
b55a115 4542d62 b55a115 4542d62 | 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 47 48 49 50 51 52 53 54 55 | package utils
import (
"time"
models "abdanhafidz.com/go-boilerplate/models/entity"
http_error "abdanhafidz.com/go-boilerplate/models/error"
"github.com/google/uuid"
)
func ToUUID(s any) (uuid.UUID, error) {
sStr, ok := s.(string)
if !ok {
return uuid.UUID{}, http_error.INTERNAL_SERVER_ERROR
}
res, err := uuid.Parse(sStr)
if err != nil {
return uuid.UUID{}, http_error.INTERNAL_SERVER_ERROR
}
return res, nil
}
func CalculateRemainingTime(startTime, dueTime time.Time) int {
now := time.Now()
if startTime.After(now) {
return int(dueTime.Sub(startTime).Seconds())
}
remaining := int(dueTime.Sub(now).Seconds())
if remaining < 0 {
return 0
}
return remaining / 60
}
func Ptr[T any](v T) *T {
return &v
}
func TimePtrToString(t *time.Time) *string {
if t == nil {
return nil
}
s := t.Format(time.RFC3339)
return &s
}
func ValidateCode(code string) error {
if !models.CodeRegex.MatchString(code) {
return http_error.INVALID_CODE
}
return nil
}
|