adds no password return by default, model cares about password but nothing downstream does
Some checks failed
gitea-deepak/gogmagog/pipeline/head There was a failure building this commit

This commit is contained in:
Deepak Mallubhotla 2021-01-11 20:37:35 -06:00
parent 3ea8603368
commit 1d45635530
Signed by: deepak
GPG Key ID: 64BF53A3369104E7
3 changed files with 45 additions and 9 deletions

View File

@ -44,7 +44,7 @@ func (ms *multiStore) SelectActionsByPlanID(plan *models.Plan) ([]*models.Action
}
func (ms *multiStore) SelectUserByID(id int) (*models.User, error) {
return nil, nil
return &models.User{UserID: int64(id), Username: "test", DisplayName: "Ted Est", Password: []byte("oh no")}, nil
}
func (ms *multiStore) ConnectionLive() error {

View File

@ -3,19 +3,31 @@ package models
// User represents the full DB user field, for inserts and compares.
// No reason to return the hashed pw on the route though.
type User struct {
UserID int64
Username string
DisplayName string
Password []byte
}
type UserNoPassword struct {
UserID int64 `json:"user_id"`
Username string `json:"username"`
DisplayName string `json:"display_name"`
Password []byte `json:"password"`
}
// User returns a single plan from the store by plan_id.
func (m *Model) User(id int) (*User, error) {
func (m *Model) User(id int) (*UserNoPassword, error) {
user, err := m.SelectUserByID(id)
return user, wrapNotFound(err)
if user == nil {
return nil, wrapNotFound(err)
}
return user.NoPassword(), wrapNotFound(err)
}
// AddUser inserts a user into the store.
// func (m *Model) AddUser(u *User) (int, error) {
// return m.InsertUser(u)
// }
func (u *User) NoPassword() *UserNoPassword {
return &UserNoPassword{
UserID: u.UserID,
Username: u.Username,
DisplayName: u.DisplayName,
}
}

View File

@ -3,6 +3,7 @@ package models_test
import (
"gitea.deepak.science/deepak/gogmagog/models"
"github.com/stretchr/testify/assert"
"fmt"
"testing"
)
@ -18,5 +19,28 @@ func TestModelUsers(t *testing.T) {
user, err := m.User(3)
assert.Nil(err)
assert.Nil(user)
assert.NotNil(user)
}
func TestErrorUsers(t *testing.T) {
assert := assert.New(t)
m := getErrorModel(fmt.Errorf("err"))
user, err := m.User(3)
assert.Nil(user)
assert.NotNil(err)
}
func TestUserNoPassword(t *testing.T) {
assert := assert.New(t)
id := int64(3)
username := "test"
displayName := "Ted Est"
pass := []byte("abc")
u := &models.User{UserID: id, Username: username, DisplayName: displayName, Password: pass}
unp := u.NoPassword()
assert.EqualValues(id, unp.UserID)
assert.Equal(username, unp.Username)
assert.Equal(displayName, unp.DisplayName)
}