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)} }