12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package config
- import (
- log "maunium.net/go/maulogger/v2"
- db "go.mau.fi/mautrix-discord/database"
- )
- type database struct {
- Type string `yaml:"type"`
- URI string `yaml:"uri"`
- MaxOpenConns int `yaml:"max_open_conns"`
- MaxIdleConns int `yaml:"max_idle_conns"`
- }
- func (d *database) validate() error {
- if d.Type == "" {
- d.Type = "sqlite3"
- }
- if d.URI == "" {
- d.URI = "mautrix-discord.db"
- }
- if d.MaxOpenConns == 0 {
- d.MaxOpenConns = 20
- }
- if d.MaxIdleConns == 0 {
- d.MaxIdleConns = 2
- }
- return nil
- }
- func (d *database) UnmarshalYAML(unmarshal func(interface{}) error) error {
- type rawDatabase database
- raw := rawDatabase{}
- if err := unmarshal(&raw); err != nil {
- return err
- }
- *d = database(raw)
- return d.validate()
- }
- func (c *Config) CreateDatabase(baseLog log.Logger) (*db.Database, error) {
- return db.New(
- c.Appservice.Database.Type,
- c.Appservice.Database.URI,
- c.Appservice.Database.MaxOpenConns,
- c.Appservice.Database.MaxIdleConns,
- baseLog,
- )
- }
|