Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b27c96f932 | ||
|
|
836f4e2461 | ||
|
|
5717d4aefe | ||
|
|
62142a6836 | ||
|
|
9990fa43e0 | ||
|
|
82fbdc15d9 | ||
|
|
b4188ca4d8 |
44
byteutil/util.go
Normal file
44
byteutil/util.go
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package byteutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/binary"
|
||||||
|
)
|
||||||
|
|
||||||
|
// IntToBytes 将int转换为[]byte
|
||||||
|
func IntToBytes(n int) []byte {
|
||||||
|
data := int64(n)
|
||||||
|
byteBuf := bytes.NewBuffer([]byte{})
|
||||||
|
_ = binary.Write(byteBuf, binary.BigEndian, data)
|
||||||
|
return byteBuf.Bytes()
|
||||||
|
}
|
||||||
|
|
||||||
|
// BytesToInt 将[]byte转换为int
|
||||||
|
func BytesToInt(bys []byte) int {
|
||||||
|
byteBuf := bytes.NewBuffer(bys)
|
||||||
|
var data int64
|
||||||
|
_ = binary.Read(byteBuf, binary.BigEndian, &data)
|
||||||
|
return int(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByteToLower lowers a byte
|
||||||
|
func ByteToLower(b byte) byte {
|
||||||
|
if b <= '\u007F' {
|
||||||
|
if 'A' <= b && b <= 'Z' {
|
||||||
|
b += 'a' - 'A'
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// ByteToUpper upper a byte
|
||||||
|
func ByteToUpper(b byte) byte {
|
||||||
|
if b <= '\u007F' {
|
||||||
|
if 'a' <= b && b <= 'z' {
|
||||||
|
b -= 'a' - 'A'
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
11
byteutil/util_test.go
Normal file
11
byteutil/util_test.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package byteutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIntToBytes(t *testing.T) {
|
||||||
|
fmt.Println(IntToBytes(1))
|
||||||
|
fmt.Println(BytesToInt(IntToBytes(1)))
|
||||||
|
}
|
||||||
@@ -6,9 +6,9 @@ require (
|
|||||||
entgo.io/contrib v0.4.5
|
entgo.io/contrib v0.4.5
|
||||||
entgo.io/ent v0.12.4
|
entgo.io/ent v0.12.4
|
||||||
github.com/go-kratos/kratos/v2 v2.7.1
|
github.com/go-kratos/kratos/v2 v2.7.1
|
||||||
github.com/google/uuid v1.3.1
|
github.com/google/uuid v1.4.0
|
||||||
github.com/stretchr/testify v1.8.4
|
github.com/stretchr/testify v1.8.4
|
||||||
github.com/tx7do/go-utils v1.1.0
|
github.com/tx7do/go-utils v1.1.3
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
|||||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
|
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
|
||||||
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI=
|
github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI=
|
||||||
github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
|
github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE=
|
||||||
github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls=
|
github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls=
|
||||||
|
|||||||
21
entgo/mixin/creator_id.go
Normal file
21
entgo/mixin/creator_id.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package mixin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"entgo.io/ent"
|
||||||
|
"entgo.io/ent/schema/field"
|
||||||
|
_mixin "entgo.io/ent/schema/mixin"
|
||||||
|
)
|
||||||
|
|
||||||
|
type CreatorId struct {
|
||||||
|
_mixin.Schema
|
||||||
|
}
|
||||||
|
|
||||||
|
func (CreatorId) Fields() []ent.Field {
|
||||||
|
return []ent.Field{
|
||||||
|
field.Uint64("creator_id").
|
||||||
|
Comment("创建者用户ID").
|
||||||
|
Immutable().
|
||||||
|
Optional().
|
||||||
|
Nillable(),
|
||||||
|
}
|
||||||
|
}
|
||||||
37
entgo/mixin/snowflake_id.go
Normal file
37
entgo/mixin/snowflake_id.go
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package mixin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"entgo.io/ent"
|
||||||
|
"entgo.io/ent/dialect"
|
||||||
|
"entgo.io/ent/schema/field"
|
||||||
|
"entgo.io/ent/schema/index"
|
||||||
|
"entgo.io/ent/schema/mixin"
|
||||||
|
|
||||||
|
"github.com/tx7do/go-utils/sonyflake"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SnowflackId struct {
|
||||||
|
mixin.Schema
|
||||||
|
}
|
||||||
|
|
||||||
|
func (SnowflackId) Fields() []ent.Field {
|
||||||
|
return []ent.Field{
|
||||||
|
field.Uint64("id").
|
||||||
|
Comment("id").
|
||||||
|
DefaultFunc(sonyflake.GenerateSonyflake).
|
||||||
|
Positive().
|
||||||
|
Immutable().
|
||||||
|
StructTag(`json:"id,omitempty"`).
|
||||||
|
SchemaType(map[string]string{
|
||||||
|
dialect.MySQL: "bigint",
|
||||||
|
dialect.Postgres: "bigint",
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Indexes of the SnowflackId.
|
||||||
|
func (SnowflackId) Indexes() []ent.Index {
|
||||||
|
return []ent.Index{
|
||||||
|
index.Fields("id"),
|
||||||
|
}
|
||||||
|
}
|
||||||
33
entgo/mixin/string_id.go
Normal file
33
entgo/mixin/string_id.go
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
package mixin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"entgo.io/ent"
|
||||||
|
"entgo.io/ent/schema/field"
|
||||||
|
"entgo.io/ent/schema/index"
|
||||||
|
"entgo.io/ent/schema/mixin"
|
||||||
|
"regexp"
|
||||||
|
)
|
||||||
|
|
||||||
|
type StringId struct {
|
||||||
|
mixin.Schema
|
||||||
|
}
|
||||||
|
|
||||||
|
func (StringId) Fields() []ent.Field {
|
||||||
|
return []ent.Field{
|
||||||
|
field.String("id").
|
||||||
|
Comment("id").
|
||||||
|
MaxLen(25).
|
||||||
|
NotEmpty().
|
||||||
|
Unique().
|
||||||
|
Immutable().
|
||||||
|
Match(regexp.MustCompile("^[0-9a-zA-Z_\\-]+$")).
|
||||||
|
StructTag(`json:"id,omitempty"`),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Indexes of the StringId.
|
||||||
|
func (StringId) Indexes() []ent.Index {
|
||||||
|
return []ent.Index{
|
||||||
|
index.Fields("id"),
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -29,6 +29,7 @@ func (SwitchStatus) Fields() []ent.Field {
|
|||||||
// dialect.MySQL: "switch_status",
|
// dialect.MySQL: "switch_status",
|
||||||
// dialect.Postgres: "switch_status",
|
// dialect.Postgres: "switch_status",
|
||||||
//}).
|
//}).
|
||||||
|
Default("ON").
|
||||||
Values(
|
Values(
|
||||||
"OFF",
|
"OFF",
|
||||||
"ON",
|
"ON",
|
||||||
|
|||||||
@@ -17,6 +17,13 @@ func BuildPaginationSelector(page, pageSize int32, noPaging bool) func(*sql.Sele
|
|||||||
}
|
}
|
||||||
|
|
||||||
func BuildPaginationSelect(s *sql.Selector, page, pageSize int32) {
|
func BuildPaginationSelect(s *sql.Selector, page, pageSize int32) {
|
||||||
|
if page < 1 {
|
||||||
|
page = paging.DefaultPage
|
||||||
|
}
|
||||||
|
|
||||||
|
if pageSize < 1 {
|
||||||
|
pageSize = paging.DefaultPageSize
|
||||||
|
}
|
||||||
offset := paging.GetPageOffset(page, pageSize)
|
offset := paging.GetPageOffset(page, pageSize)
|
||||||
s.Offset(offset).Limit(int(pageSize))
|
s.Offset(offset).Limit(int(pageSize))
|
||||||
}
|
}
|
||||||
|
|||||||
3
go.mod
3
go.mod
@@ -3,6 +3,8 @@ module github.com/tx7do/go-utils
|
|||||||
go 1.20
|
go 1.20
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/google/uuid v1.4.0
|
||||||
|
github.com/gosimple/slug v1.13.1
|
||||||
github.com/sony/sonyflake v1.2.0
|
github.com/sony/sonyflake v1.2.0
|
||||||
github.com/stretchr/testify v1.8.4
|
github.com/stretchr/testify v1.8.4
|
||||||
golang.org/x/crypto v0.14.0
|
golang.org/x/crypto v0.14.0
|
||||||
@@ -10,6 +12,7 @@ require (
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
|
github.com/gosimple/unidecode v1.0.1 // indirect
|
||||||
github.com/kr/pretty v0.3.1 // indirect
|
github.com/kr/pretty v0.3.1 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
github.com/rogpeppe/go-internal v1.10.0 // indirect
|
github.com/rogpeppe/go-internal v1.10.0 // indirect
|
||||||
|
|||||||
6
go.sum
6
go.sum
@@ -1,6 +1,12 @@
|
|||||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
|
||||||
|
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/gosimple/slug v1.13.1 h1:bQ+kpX9Qa6tHRaK+fZR0A0M2Kd7Pa5eHPPsb1JpHD+Q=
|
||||||
|
github.com/gosimple/slug v1.13.1/go.mod h1:UiRaFH+GEilHstLUmcBgWcI42viBN7mAb818JrYOeFQ=
|
||||||
|
github.com/gosimple/unidecode v1.0.1 h1:hZzFTMMqSswvf0LBJZCZgThIZrpDHFXux9KeGmn6T/o=
|
||||||
|
github.com/gosimple/unidecode v1.0.1/go.mod h1:CP0Cr1Y1kogOtx0bJblKzsVWrqYaqfNOnHzpgWw4Awc=
|
||||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
package common
|
package ioutil
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// GetWorkingDirPath 获取工作路径
|
||||||
func GetWorkingDirPath() string {
|
func GetWorkingDirPath() string {
|
||||||
dir, err := os.Getwd()
|
dir, err := os.Getwd()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -13,6 +14,7 @@ func GetWorkingDirPath() string {
|
|||||||
return dir
|
return dir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetExePath 获取可执行程序路径
|
||||||
func GetExePath() string {
|
func GetExePath() string {
|
||||||
ex, err := os.Executable()
|
ex, err := os.Executable()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -22,6 +24,7 @@ func GetExePath() string {
|
|||||||
return exePath
|
return exePath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAbsPath 获取绝对路径
|
||||||
func GetAbsPath() string {
|
func GetAbsPath() string {
|
||||||
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -7,13 +7,5 @@ const (
|
|||||||
|
|
||||||
// GetPageOffset 计算偏移量
|
// GetPageOffset 计算偏移量
|
||||||
func GetPageOffset(pageNum, pageSize int32) int {
|
func GetPageOffset(pageNum, pageSize int32) int {
|
||||||
if pageNum < 1 {
|
|
||||||
pageNum = DefaultPage
|
|
||||||
}
|
|
||||||
|
|
||||||
if pageSize < 1 {
|
|
||||||
pageSize = DefaultPageSize
|
|
||||||
}
|
|
||||||
|
|
||||||
return int((pageNum - 1) * pageSize)
|
return int((pageNum - 1) * pageSize)
|
||||||
}
|
}
|
||||||
|
|||||||
29
slug/slug.go
Normal file
29
slug/slug.go
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package slug
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gosimple/slug"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Generate 生成短链接
|
||||||
|
func Generate(input string) string {
|
||||||
|
slug.Lowercase = true
|
||||||
|
return slug.MakeLang(input, "en")
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateCaseSensitive 生成大小写敏感的短链接
|
||||||
|
func GenerateCaseSensitive(input string) string {
|
||||||
|
slug.Lowercase = false
|
||||||
|
return slug.MakeLang(input, "en")
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateEnglish 生成英文短链接
|
||||||
|
func GenerateEnglish(input string) string {
|
||||||
|
slug.Lowercase = true
|
||||||
|
return slug.MakeLang(input, "en")
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateGerman 生成德文短链接
|
||||||
|
func GenerateGerman(input string) string {
|
||||||
|
slug.Lowercase = true
|
||||||
|
return slug.MakeLang(input, "de")
|
||||||
|
}
|
||||||
88
slug/slug_test.go
Normal file
88
slug/slug_test.go
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
package slug
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/gosimple/slug"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGoSimple(t *testing.T) {
|
||||||
|
// 俄文
|
||||||
|
text := slug.Make("Hellö Wörld хелло ворлд")
|
||||||
|
assert.Equal(t, text, "hello-world-khello-vorld")
|
||||||
|
fmt.Println(text)
|
||||||
|
|
||||||
|
// 繁体中文
|
||||||
|
someText := slug.Make("影師")
|
||||||
|
assert.Equal(t, someText, "ying-shi")
|
||||||
|
fmt.Println(someText)
|
||||||
|
|
||||||
|
// 简体中文
|
||||||
|
cnText := slug.Make("天下太平")
|
||||||
|
assert.Equal(t, cnText, "tian-xia-tai-ping")
|
||||||
|
fmt.Println(cnText)
|
||||||
|
|
||||||
|
// 英文
|
||||||
|
enText := slug.MakeLang("This & that", "en")
|
||||||
|
assert.Equal(t, enText, "this-and-that")
|
||||||
|
fmt.Println(enText)
|
||||||
|
|
||||||
|
// 德文
|
||||||
|
deText := slug.MakeLang("Diese & Dass", "de")
|
||||||
|
assert.Equal(t, deText, "diese-und-dass")
|
||||||
|
fmt.Println(deText)
|
||||||
|
|
||||||
|
// 保持大小写
|
||||||
|
slug.Lowercase = false
|
||||||
|
deUppercaseText := slug.MakeLang("Diese & Dass", "de")
|
||||||
|
assert.Equal(t, deUppercaseText, "Diese-und-Dass")
|
||||||
|
fmt.Println(deUppercaseText)
|
||||||
|
|
||||||
|
// 字符替换
|
||||||
|
slug.CustomSub = map[string]string{
|
||||||
|
"water": "sand",
|
||||||
|
}
|
||||||
|
textSub := slug.Make("water is hot")
|
||||||
|
assert.Equal(t, textSub, "sand-is-hot")
|
||||||
|
fmt.Println(textSub)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGenerate(t *testing.T) {
|
||||||
|
// 俄文
|
||||||
|
text := Generate("Hellö Wörld хелло ворлд")
|
||||||
|
assert.Equal(t, text, "hello-world-khello-vorld")
|
||||||
|
fmt.Println(text)
|
||||||
|
|
||||||
|
// 繁体中文
|
||||||
|
someText := Generate("影師")
|
||||||
|
assert.Equal(t, someText, "ying-shi")
|
||||||
|
fmt.Println(someText)
|
||||||
|
|
||||||
|
// 简体中文
|
||||||
|
cnText := Generate("天下太平")
|
||||||
|
assert.Equal(t, cnText, "tian-xia-tai-ping")
|
||||||
|
fmt.Println(cnText)
|
||||||
|
|
||||||
|
// 英文
|
||||||
|
enText := GenerateEnglish("This & that")
|
||||||
|
assert.Equal(t, enText, "this-and-that")
|
||||||
|
fmt.Println(enText)
|
||||||
|
|
||||||
|
enText = GenerateCaseSensitive("This & That")
|
||||||
|
assert.Equal(t, enText, "This-and-That")
|
||||||
|
fmt.Println(enText)
|
||||||
|
|
||||||
|
// 德文
|
||||||
|
deText := GenerateGerman("Diese & Dass")
|
||||||
|
assert.Equal(t, deText, "diese-und-dass")
|
||||||
|
fmt.Println(deText)
|
||||||
|
|
||||||
|
slug.CustomSub = map[string]string{
|
||||||
|
"water": "sand",
|
||||||
|
}
|
||||||
|
textSub := Generate("water is hot")
|
||||||
|
assert.Equal(t, textSub, "sand-is-hot")
|
||||||
|
fmt.Println(textSub)
|
||||||
|
}
|
||||||
4
tag.bat
4
tag.bat
@@ -1,6 +1,6 @@
|
|||||||
git tag v1.1.0
|
git tag v1.1.4
|
||||||
git tag bank_card/v1.1.0
|
git tag bank_card/v1.1.0
|
||||||
git tag entgo/v1.1.2
|
git tag entgo/v1.1.5
|
||||||
git tag geoip/v1.1.0
|
git tag geoip/v1.1.0
|
||||||
|
|
||||||
git push origin --tags
|
git push origin --tags
|
||||||
|
|||||||
7
uuid/test_trans.go
Normal file
7
uuid/test_trans.go
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package uuid
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestUUID(t *testing.T) {
|
||||||
|
|
||||||
|
}
|
||||||
31
uuid/trans.go
Normal file
31
uuid/trans.go
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package uuid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/tx7do/go-utils/trans"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ToUuidPtr(str *string) *uuid.UUID {
|
||||||
|
var id *uuid.UUID
|
||||||
|
if str != nil {
|
||||||
|
_id, err := uuid.Parse(*str)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
id = &_id
|
||||||
|
}
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
|
||||||
|
func ToUuid(str string) uuid.UUID {
|
||||||
|
id, _ := uuid.Parse(str)
|
||||||
|
return id
|
||||||
|
}
|
||||||
|
|
||||||
|
func ToStringPtr(id *uuid.UUID) *string {
|
||||||
|
var strUUID *string
|
||||||
|
if id != nil {
|
||||||
|
strUUID = trans.String(id.String())
|
||||||
|
}
|
||||||
|
return strUUID
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user