|
@@ -1,21 +1,21 @@
|
|
|
-package config
|
|
|
+package database
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "git.beejay.kim/Craft/Api/config"
|
|
|
"github.com/ClickHouse/clickhouse-go/v2"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
-var compressionMap = map[string]clickhouse.CompressionMethod{
|
|
|
- "none": clickhouse.CompressionNone,
|
|
|
- "zstd": clickhouse.CompressionZSTD,
|
|
|
- "lz4": clickhouse.CompressionLZ4,
|
|
|
- "gzip": clickhouse.CompressionGZIP,
|
|
|
- "deflate": clickhouse.CompressionDeflate,
|
|
|
- "br": clickhouse.CompressionBrotli,
|
|
|
+type Config struct {
|
|
|
+ Clickhouse *configCH `yaml:"clickhouse"`
|
|
|
}
|
|
|
|
|
|
-type ClickhouseConfig struct {
|
|
|
+func (cfg Config) Invalidate() error {
|
|
|
+ return config.Invalidate(cfg)
|
|
|
+}
|
|
|
+
|
|
|
+type configCH struct {
|
|
|
Username string `json:"username" yaml:"username"`
|
|
|
Password string `json:"password" yaml:"password"`
|
|
|
Host string `json:"host" yaml:"host"`
|
|
@@ -32,7 +32,7 @@ type params struct {
|
|
|
WriteTimeout int `json:"write_timeout" yaml:"write-timeout"`
|
|
|
}
|
|
|
|
|
|
-func (c ClickhouseConfig) Invalidate() error {
|
|
|
+func (c configCH) Invalidate() error {
|
|
|
if strings.TrimSpace(c.Username) == "" {
|
|
|
c.Username = "default"
|
|
|
}
|
|
@@ -49,7 +49,7 @@ func (c ClickhouseConfig) Invalidate() error {
|
|
|
return fmt.Errorf("`clickhouse.database` must not be an empty string")
|
|
|
}
|
|
|
|
|
|
- return Invalidate(c)
|
|
|
+ return config.Invalidate(c)
|
|
|
}
|
|
|
|
|
|
func (p params) Invalidate() error {
|
|
@@ -57,7 +57,7 @@ func (p params) Invalidate() error {
|
|
|
p.Compress = "lz4"
|
|
|
}
|
|
|
|
|
|
- if _, ok := compressionMap[p.Compress]; !ok {
|
|
|
+ if _, ok := compressionCH[p.Compress]; !ok {
|
|
|
return fmt.Errorf("illegal `clickhouse.params.compress`")
|
|
|
}
|
|
|
|
|
@@ -73,9 +73,9 @@ func (p params) Invalidate() error {
|
|
|
return fmt.Errorf("`clickhouse.params.write-timeout` must not be at least 1")
|
|
|
}
|
|
|
|
|
|
- return Invalidate(p)
|
|
|
+ return config.Invalidate(p)
|
|
|
}
|
|
|
|
|
|
func (p params) CompressionMethod() clickhouse.CompressionMethod {
|
|
|
- return compressionMap[p.Compress]
|
|
|
+ return compressionCH[p.Compress]
|
|
|
}
|