Files
History_Api/pkg/convert/convert.go
AzenKain ac90236022
All checks were successful
Build and Release / release (push) Successful in 1m15s
UPDATE: Project Module
2026-04-25 14:05:15 +07:00

98 lines
1.3 KiB
Go

package convert
import (
"time"
"github.com/jackc/pgx/v5/pgtype"
)
func UUIDToString(v pgtype.UUID) string {
if v.Valid {
return v.String()
}
return ""
}
func UUIDToStringPtr(v pgtype.UUID) *string {
if v.Valid {
str := v.String()
return &str
}
return nil
}
func ListUUIDToString(v []pgtype.UUID) []string {
if len(v) == 0 {
return []string{}
}
res := make([]string, 0, len(v))
for _, u := range v {
if u.Valid {
res = append(res, UUIDToString(u))
}
}
return res
}
func StringToUUID(s string) (pgtype.UUID, error) {
var pgId pgtype.UUID
err := pgId.Scan(s)
if err != nil {
return pgtype.UUID{}, err
}
return pgId, nil
}
func TextToString(v pgtype.Text) string {
if v.Valid {
return v.String
}
return ""
}
func BoolVal(v pgtype.Bool) bool {
if v.Valid {
return v.Bool
}
return false
}
func TimeToPtr(v pgtype.Timestamptz) *time.Time {
if !v.Valid {
return nil
}
t := v.Time
return &t
}
func PtrToText(s *string) pgtype.Text {
if s == nil || *s == "" {
return pgtype.Text{Valid: false}
}
return pgtype.Text{
String: *s,
Valid: true,
}
}
func TextToPtr(v pgtype.Text) *string {
if !v.Valid {
return nil
}
return &v.String
}
func Int4ToPtr(v pgtype.Int4) *int32 {
if !v.Valid {
return nil
}
return &v.Int32
}
func Int4ToInt32(v pgtype.Int4) int32 {
if v.Valid {
return v.Int32
}
return 0
}