loggalicious/backend/internal/database/database_server.go

54 lines
1.1 KiB
Go

package database
import (
"net/http"
couchdb "github.com/fjl/go-couchdb"
)
const (
dbName_Logs = "logs"
dbName_LogDeltas = "log_deltas"
dbName_Migration = "migration"
)
type DatabaseServer struct {
*couchdb.Client
}
func NewDatabaseServer(rawurl string, rt http.RoundTripper) (server *DatabaseServer, err error) {
couchClient, err := couchdb.NewClient(rawurl, rt)
if err != nil {
return
}
server = &DatabaseServer{
Client: couchClient,
}
return
}
func (s *DatabaseServer) Initialize() (err error) {
if _, err = s.Client.CreateDB(dbName_Logs); err != nil {
return
}
if _, err = s.Client.CreateDB(dbName_LogDeltas); err != nil {
return
}
if _, err = s.Client.CreateDB(dbName_Migration); err != nil {
return
}
return
}
func (s *DatabaseServer) GetLogsDatabase() (db *LogsDatabase) {
return &LogsDatabase{DB: s.Client.DB(dbName_Logs)}
}
func (s *DatabaseServer) GetLogDeltasDatabase() (db *LogDeltasDatabase) {
return &LogDeltasDatabase{DB: s.Client.DB(dbName_LogDeltas)}
}
func (s *DatabaseServer) GetMigrationDatabase() (db *MigrationDatabase) {
return &MigrationDatabase{DB: s.Client.DB(dbName_Migration)}
}