Skip to content

Commit c384006

Browse files
committed
feat with init db
1 parent 987b813 commit c384006

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

crypto/crypto.go

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,26 @@ func isValidKeySize(key []byte) bool {
3535
return false
3636
}
3737

38+
type Opts func(*Crypto) error
39+
40+
func WithInitHeapConnection() Opts {
41+
return func(c *Crypto) error {
42+
dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable",
43+
*c.Host, *c.Port, *c.User, *c.Pass, *c.Name)
44+
db, err := sql.Open("postgres", dsn)
45+
if err != nil {
46+
return err
47+
}
48+
49+
if err := db.Ping(); err != nil {
50+
return err
51+
}
52+
53+
c.dbHeapPsql = db
54+
return nil
55+
}
56+
}
57+
3858
type Crypto struct {
3959
AESKey *string `env:"AES_KEY,expand" json:"aes_key"`
4060
HMACKey *string `env:"HMAC_KEY,expand" json:"hmac_key"`
@@ -53,7 +73,7 @@ type Crypto struct {
5373
keySize AesKeySize
5474
}
5575

56-
func New(keySize AesKeySize) (c *Crypto, err error) {
76+
func New(keySize AesKeySize, opts ...Opts) (c *Crypto, err error) {
5777
c = &Crypto{
5878
keySize: keySize,
5979
}
@@ -62,6 +82,12 @@ func New(keySize AesKeySize) (c *Crypto, err error) {
6282
return nil, err
6383
}
6484

85+
for _, opt := range opts {
86+
if err = opt(c); err != nil {
87+
return nil, err
88+
}
89+
}
90+
6591
if c.AESKey == nil || c.HMACKey == nil {
6692
return nil, errors.New("key is required")
6793
}

0 commit comments

Comments
 (0)