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