48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package config
|
||
|
||
import (
|
||
"strconv"
|
||
|
||
"github.com/zeromicro/go-zero/rest"
|
||
)
|
||
|
||
type PostgresConfig struct {
|
||
Host string `yaml:"Host"`
|
||
Port int `yaml:"Port"`
|
||
User string `yaml:"User"`
|
||
Password string `yaml:"Password"`
|
||
DBName string `yaml:"DBName"`
|
||
SSLMode string `yaml:"SSLMode"`
|
||
}
|
||
|
||
type AuthConfig struct {
|
||
AccessSecret string `yaml:"AccessSecret"`
|
||
AccessExpire int64 `yaml:"AccessExpire"`
|
||
}
|
||
|
||
// InternalConfig 项目间内部 API 配置
|
||
type InternalConfig struct {
|
||
Token string `yaml:"Token"` // 写死的项目间 API token(X-API-TOKEN)
|
||
}
|
||
|
||
type Config struct {
|
||
rest.RestConf
|
||
Postgres PostgresConfig `yaml:"Postgres"`
|
||
Auth AuthConfig `yaml:"Auth"`
|
||
Internal InternalConfig `yaml:"Internal"`
|
||
Redis struct {
|
||
Host string `yaml:"Host"`
|
||
Type string `yaml:"Type"`
|
||
} `yaml:"Redis"`
|
||
}
|
||
|
||
// DSN 返回 PostgreSQL 连接串
|
||
func (p PostgresConfig) DSN() string {
|
||
return "host=" + p.Host +
|
||
" port=" + strconv.Itoa(p.Port) +
|
||
" user=" + p.User +
|
||
" password=" + p.Password +
|
||
" dbname=" + p.DBName +
|
||
" sslmode=" + p.SSLMode
|
||
}
|