deprecate/remove LookupByName (#530)

pull/534/head
Jim 6 years ago committed by GitHub
parent 3697f4cf3c
commit 09b43e5569
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -26,9 +26,6 @@ const (
// Reader interface defines lookups/searching for resources
type Reader interface {
// LookupByName will lookup resource by its friendly name which must be unique
LookupByName(ctx context.Context, resource ResourceNamer, opt ...Option) error
// LookupById will lookup a resource by its primary key id, which must be
// unique. The resourceWithIder must implement either ResourcePublicIder or
// ResourcePrivateIder interface.
@ -149,11 +146,6 @@ type ResourcePrivateIder interface {
GetPrivateId() string
}
// ResourceNamer defines an interface that LookupByName() can use to get the resource's friendly name
type ResourceNamer interface {
GetName() string
}
type OpType int
const (
@ -920,26 +912,6 @@ func (w *Db) DoTx(ctx context.Context, retries uint, backOff Backoff, Handler Tx
}
}
// LookupByName will lookup resource my its friendly name which must be unique
func (rw *Db) LookupByName(ctx context.Context, resource ResourceNamer, opt ...Option) error {
if rw.underlying == nil {
return errors.New("error underlying db nil for lookup by name")
}
if reflect.ValueOf(resource).Kind() != reflect.Ptr {
return errors.New("error interface parameter must to be a pointer for lookup by name")
}
if resource.GetName() == "" {
return errors.New("error name empty string for lookup by name")
}
if err := rw.underlying.Where("name = ?", resource.GetName()).First(resource).Error; err != nil {
if err == gorm.ErrRecordNotFound {
return ErrRecordNotFound
}
return err
}
return nil
}
// LookupByPublicId will lookup resource by its public_id or private_id, which
// must be unique. Options are ignored.
func (rw *Db) LookupById(ctx context.Context, resourceWithIder interface{}, opt ...Option) error {

@ -784,62 +784,6 @@ func TestDb_Create(t *testing.T) {
})
}
func TestDb_LookupByName(t *testing.T) {
t.Parallel()
db, _ := TestSetup(t, "postgres")
t.Run("simple", func(t *testing.T) {
assert, require := assert.New(t), require.New(t)
w := Db{underlying: db}
id, err := uuid.GenerateUUID()
require.NoError(err)
user, err := db_test.NewTestUser()
require.NoError(err)
user.Name = "fn-" + id
err = w.Create(context.Background(), user)
require.NoError(err)
assert.NotEmpty(user.Id)
foundUser, err := db_test.NewTestUser()
require.NoError(err)
foundUser.Name = "fn-" + id
err = w.LookupByName(context.Background(), foundUser)
require.NoError(err)
assert.Equal(foundUser.Id, user.Id)
})
t.Run("tx-nil,", func(t *testing.T) {
assert, require := assert.New(t), require.New(t)
w := Db{}
foundUser, err := db_test.NewTestUser()
require.NoError(err)
foundUser.Name = "fn-name"
err = w.LookupByName(context.Background(), foundUser)
require.Error(err)
assert.Equal("error underlying db nil for lookup by name", err.Error())
})
t.Run("no-friendly-name-set", func(t *testing.T) {
assert, require := assert.New(t), require.New(t)
w := Db{underlying: db}
foundUser, err := db_test.NewTestUser()
require.NoError(err)
err = w.LookupByName(context.Background(), foundUser)
require.Error(err)
assert.Equal("error name empty string for lookup by name", err.Error())
})
t.Run("not-found", func(t *testing.T) {
assert, require := assert.New(t), require.New(t)
w := Db{underlying: db}
id, err := uuid.GenerateUUID()
require.NoError(err)
foundUser, err := db_test.NewTestUser()
require.NoError(err)
foundUser.Name = "fn-" + id
err = w.LookupByName(context.Background(), foundUser)
require.Error(err)
assert.Equal(ErrRecordNotFound, err)
})
}
func TestDb_LookupByPublicId(t *testing.T) {
t.Parallel()
db, _ := TestSetup(t, "postgres")

Loading…
Cancel
Save