blob: 5357b5aa9ba14910fce80dcef421fe1a61bac69b [file] [log] [blame]
package main
import (
"fmt"
wire "v.io/v23/services/syncbase"
"v.io/v23/syncbase"
"v.io/v23/context"
)
/// open the db at sbService specified by id
func openDB(ctx *context.T, sbService syncbase.Service, id wire.Id,
createIfAbsent bool) (
syncbase.Database, error,
) {
db := sbService.DatabaseForId(id, nil)
exists, err := db.Exists(ctx);
if err != nil {
return nil, fmt.Errorf("failed checking for db %q: %v", db.FullName(), err)
}
if !exists {
if createIfAbsent {
if err := db.Create(ctx, nil); err != nil {
return nil, fmt.Errorf("%s\nDeveloper's note: double-check your permissions!", err)
}
} else {
return nil, fmt.Errorf("db %q does not exist", db.FullName())
}
}
return db, nil
}