basic common app packages

This commit is contained in:
2025-06-16 22:19:00 +05:30
parent 8654f21b62
commit 0240ec154e
49 changed files with 5481 additions and 232 deletions

30
uid/sqid.go Normal file
View File

@@ -0,0 +1,30 @@
// Copyright 2024 Patial Tech (Ankit Patial).
// All rights reserved.
package uid
import "github.com/sqids/sqids-go"
type Service interface {
SquiOptions() sqids.Options
}
// Encode a slice of IDs into one unique ID
func Encode(svc Service, ids ...uint64) (string, error) {
s, err := sqids.New(svc.SquiOptions())
if err != nil {
return "", err
}
return s.Encode(ids) // "86Rf07"
}
// Decode an ID back to slice of IDs
func Decode(svc Service, id string) ([]uint64, error) {
s, err := sqids.New(svc.SquiOptions())
if err != nil {
return nil, err
}
return s.Decode(id), nil
}