when ID = 0 is passed to a 'GetSthByID'-function, it now returns a 'not exist' error
This commit is contained in:
parent
716b06feff
commit
382daac0dd
9 changed files with 25 additions and 9 deletions
|
@ -208,7 +208,7 @@ Teams sind global, d.h. Ein Team kann mehrere Namespaces verwalten.
|
|||
|
||||
* [x] Cacher konfigurierbar
|
||||
* [ ] Validation der ankommenden structs, am besten mit https://github.com/go-validator/validator
|
||||
* [ ] Wenn die ID bei irgendeiner GetByID... Methode < 1 ist soll ein error not exist geworfen werden
|
||||
* [x] Wenn die ID bei irgendeiner GetByID... Methode < 1 ist soll ein error not exist geworfen werden
|
||||
|
||||
### Later/Nice to have
|
||||
|
||||
|
|
|
@ -30,6 +30,10 @@ func (l *List) AfterLoad() {
|
|||
|
||||
// GetListByID returns a list by its ID
|
||||
func GetListByID(id int64) (list List, err error) {
|
||||
if id < 1 {
|
||||
return list, ErrListDoesNotExist{ID: id}
|
||||
}
|
||||
|
||||
exists, err := x.ID(id).Get(&list)
|
||||
if err != nil {
|
||||
return list, err
|
||||
|
|
|
@ -75,6 +75,10 @@ func GetTasksByListID(listID int64) (tasks []*ListTask, err error) {
|
|||
|
||||
// GetListTaskByID returns all tasks a list has
|
||||
func GetListTaskByID(listTaskID int64) (listTask ListTask, err error) {
|
||||
if listTaskID < 1 {
|
||||
return ListTask{}, ErrListTaskDoesNotExist{listTaskID}
|
||||
}
|
||||
|
||||
exists, err := x.ID(listTaskID).Get(&listTask)
|
||||
if err != nil {
|
||||
return ListTask{}, err
|
||||
|
|
|
@ -40,7 +40,8 @@ func TestNamespace_Create(t *testing.T) {
|
|||
|
||||
// Try inserting one with a nonexistant user
|
||||
nUser := &User{ID: 9482385}
|
||||
err = dummynamespace.Create(nUser)
|
||||
dnsp2 := dummynamespace
|
||||
err = dnsp2.Create(nUser)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUserDoesNotExist(err))
|
||||
|
||||
|
@ -88,5 +89,5 @@ func TestNamespace_Create(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
assert.Equal(t, reflect.TypeOf(nsps).Kind(), reflect.Slice)
|
||||
s := reflect.ValueOf(nsps)
|
||||
assert.Equal(t, s.Len(), 2)
|
||||
assert.Equal(t, 1, s.Len())
|
||||
}
|
||||
|
|
|
@ -28,6 +28,10 @@ func (n *Namespace) AfterLoad() {
|
|||
|
||||
// GetNamespaceByID returns a namespace object by its ID
|
||||
func GetNamespaceByID(id int64) (namespace Namespace, err error) {
|
||||
if id < 1 {
|
||||
return namespace, ErrNamespaceDoesNotExist{ID: id}
|
||||
}
|
||||
|
||||
namespace.ID = id
|
||||
exists, err := x.Get(&namespace)
|
||||
if err != nil {
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"github.com/stretchr/testify/assert"
|
||||
"reflect"
|
||||
"testing"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func TestTeamList(t *testing.T) {
|
||||
|
@ -72,7 +71,6 @@ func TestTeamList(t *testing.T) {
|
|||
tl6 := tl
|
||||
tl6.ListID = 3
|
||||
_, err = tl6.ReadAll(&user)
|
||||
fmt.Println(tl6)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrNeedToHaveListReadAccess(err))
|
||||
|
||||
|
|
|
@ -62,6 +62,10 @@ type TeamUser struct {
|
|||
|
||||
// GetTeamByID gets a team by its ID
|
||||
func GetTeamByID(id int64) (team Team, err error) {
|
||||
if id < 1 {
|
||||
return team, ErrTeamDoesNotExist{id}
|
||||
}
|
||||
|
||||
exists, err := x.Where("id = ?", id).Get(&team)
|
||||
if err != nil {
|
||||
return
|
||||
|
|
|
@ -48,8 +48,8 @@ func (apiUser *APIUserPassword) APIFormat() User {
|
|||
// GetUserByID gets informations about a user by its ID
|
||||
func GetUserByID(id int64) (user User, err error) {
|
||||
// Apparently xorm does otherwise look for all users but return only one, which leads to returing one even if the ID is 0
|
||||
if id == 0 {
|
||||
return User{}, nil
|
||||
if id < 1 {
|
||||
return User{}, ErrUserDoesNotExist{}
|
||||
}
|
||||
|
||||
return GetUser(User{ID: id})
|
||||
|
|
|
@ -67,9 +67,10 @@ func TestCreateUser(t *testing.T) {
|
|||
_, err = GetUserByID(theuser.ID)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Passing 0 as ID should return an empty user
|
||||
// Passing 0 as ID should return an error
|
||||
_, err = GetUserByID(0)
|
||||
assert.NoError(t, err)
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrUserDoesNotExist(err))
|
||||
|
||||
// Check the user credentials
|
||||
user, err := CheckUserCredentials(&UserLogin{"testuu", "1234"})
|
||||
|
|
Loading…
Reference in a new issue