54 lines
1.1 KiB
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)}
|
|
}
|