forget what i did

This commit is contained in:
Jeffrey Duroyon
2020-05-06 01:23:40 +02:00
parent f982922ef3
commit f00db120f2
6 changed files with 49 additions and 65 deletions

View File

@@ -37,7 +37,6 @@ var rootCmd = &cobra.Command{
Short: "hamster-tycoon", Short: "hamster-tycoon",
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
utils.InitLogger(config.LogLevel, config.LogFormat) utils.InitLogger(config.LogLevel, config.LogFormat)
logrus. logrus.
WithField(parameterConfigurationFile, cfgFile). WithField(parameterConfigurationFile, cfgFile).
WithField(parameterMock, config.Mock). WithField(parameterMock, config.Mock).

View File

@@ -54,7 +54,7 @@ func (h *Hamster) Die() {
func (h *Hamster) Grow() { func (h *Hamster) Grow() {
if h.Age >= MaxAge { if h.Age >= MaxAge {
if randNumber(h.Age-MaxAge,365) > 364 { if randNumber(h.Age-MaxAge, 365) > 364 {
h.Die() h.Die()
return return
} }
@@ -82,11 +82,11 @@ func (h *Hamster) Fuck(another *Hamster) (bool, error) {
rand := randNumber(1, 100) rand := randNumber(1, 100)
if rand <= GestationLuck { if rand <= GestationLuck {
female,male := func() (*Hamster,*Hamster) { female, male := func() (*Hamster, *Hamster) {
if h.Sexe == FEMALE { if h.Sexe == FEMALE {
return h,another return h, another
} else { } else {
return another,h return another, h
} }
}() }()
female.GestationFather = male female.GestationFather = male

View File

@@ -41,85 +41,85 @@ func TestHamster_Die(t *testing.T) {
func TestHamster_Grow(t *testing.T) { func TestHamster_Grow(t *testing.T) {
testCases := []struct { testCases := []struct {
caseName string caseName string
hamster *Hamster hamster *Hamster
expectedHamster *Hamster expectedHamster *Hamster
}{ }{
{ {
caseName: "Age increment", caseName: "Age increment",
hamster: &Hamster{ hamster: &Hamster{
Age: 0, Age: 0,
Alive: true, Alive: true,
}, },
expectedHamster: &Hamster{ expectedHamster: &Hamster{
Age: 1, Age: 1,
Alive: true, Alive: true,
}, },
}, },
{ {
caseName: "Gestation decrement", caseName: "Gestation decrement",
hamster: &Hamster{ hamster: &Hamster{
Age: 0, Age: 0,
Gestation: true, Gestation: true,
GestationPeriod: 1, GestationPeriod: 1,
Alive: true, Alive: true,
}, },
expectedHamster: &Hamster{ expectedHamster: &Hamster{
Age: 1, Age: 1,
Gestation: true, Gestation: true,
GestationPeriod: 2, GestationPeriod: 2,
Alive: true, Alive: true,
}, },
}, },
{ {
caseName: "Gestation Cooldown doesn't decrement", caseName: "Gestation Cooldown doesn't decrement",
hamster: &Hamster{ hamster: &Hamster{
Age: 0, Age: 0,
Gestation: true, Gestation: true,
GestationCooldown: 17, GestationCooldown: 17,
GestationPeriod: 1, GestationPeriod: 1,
Alive: true, Alive: true,
}, },
expectedHamster: &Hamster{ expectedHamster: &Hamster{
Age: 1, Age: 1,
GestationCooldown: 17, GestationCooldown: 17,
Gestation: true, Gestation: true,
GestationPeriod: 2, GestationPeriod: 2,
Alive: true, Alive: true,
}, },
}, },
{ {
caseName: "Gestation Cooldown decrement", caseName: "Gestation Cooldown decrement",
hamster: &Hamster{ hamster: &Hamster{
Age: 0, Age: 0,
Gestation: false, Gestation: false,
GestationCooldown: 17, GestationCooldown: 17,
GestationPeriod: 0, GestationPeriod: 0,
Alive: true, Alive: true,
}, },
expectedHamster: &Hamster{ expectedHamster: &Hamster{
Age: 1, Age: 1,
GestationCooldown: 16, GestationCooldown: 16,
Gestation: false, Gestation: false,
GestationPeriod: 0, GestationPeriod: 0,
Alive: true, Alive: true,
}, },
}, },
{ {
caseName: "Hamster die", caseName: "Hamster die",
hamster: &Hamster{ hamster: &Hamster{
Age: 365*3, Age: 365 * 3,
Gestation: false, Gestation: false,
GestationCooldown: 17, GestationCooldown: 17,
GestationPeriod: 0, GestationPeriod: 0,
Alive: true, Alive: true,
}, },
expectedHamster: &Hamster{ expectedHamster: &Hamster{
Age: 365*3, Age: 365 * 3,
Alive:false, Alive: false,
GestationCooldown: 17, GestationCooldown: 17,
Gestation: false, Gestation: false,
GestationPeriod: 0, GestationPeriod: 0,
}, },
}, },
} }
@@ -130,7 +130,7 @@ func TestHamster_Grow(t *testing.T) {
randomizer.FakeRandomizer(364) randomizer.FakeRandomizer(364)
} }
tc.hamster.Grow() tc.hamster.Grow()
if !reflect.DeepEqual(tc.hamster,tc.expectedHamster) { if !reflect.DeepEqual(tc.hamster, tc.expectedHamster) {
t.Errorf("Got %v expect %v", tc.hamster, tc.expectedHamster) t.Errorf("Got %v expect %v", tc.hamster, tc.expectedHamster)
} }
}) })

View File

@@ -32,7 +32,7 @@ func (us *UserService) GetUserFromGoogleId(googleUserId string) (*model.User, er
func (us *UserService) CreateUserFromGoogleToken(id string, email string) (*model.User, error) { func (us *UserService) CreateUserFromGoogleToken(id string, email string) (*model.User, error) {
randNick := utils.String(20) randNick := utils.String(20)
user := &model.User{UserEditable: model.UserEditable{Email: email, Nickname: "player-" + randNick}, GoogleId: id} user := &model.User{UserEditable: model.UserEditable{Nickname: "player-" + randNick}, GoogleId: id}
err := us.db.CreateUser(user) err := us.db.CreateUser(user)
return user, err return user, err

View File

@@ -10,7 +10,7 @@ import (
func (db *DatabasePostgreSQL) GetAllUsers() ([]*model.User, error) { func (db *DatabasePostgreSQL) GetAllUsers() ([]*model.User, error) {
q := ` q := `
SELECT u.id, u.email, u.created_at, u.updated_at, u.nickname SELECT u.id, u.created_at, u.updated_at, u.nickname
FROM public.user u FROM public.user u
` `
rows, err := db.session.Query(q) rows, err := db.session.Query(q)
@@ -22,7 +22,7 @@ func (db *DatabasePostgreSQL) GetAllUsers() ([]*model.User, error) {
us := make([]*model.User, 0) us := make([]*model.User, 0)
for rows.Next() { for rows.Next() {
u := model.User{} u := model.User{}
err := rows.Scan(&u.ID, &u.Email, &u.CreatedAt, &u.UpdatedAt, &u.Nickname) err := rows.Scan(&u.ID, &u.CreatedAt, &u.UpdatedAt, &u.Nickname)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -33,14 +33,14 @@ func (db *DatabasePostgreSQL) GetAllUsers() ([]*model.User, error) {
func (db *DatabasePostgreSQL) GetUsersByID(id string) (*model.User, error) { func (db *DatabasePostgreSQL) GetUsersByID(id string) (*model.User, error) {
q := ` q := `
SELECT u.id, u.email, u.created_at, u.updated_at, u.nickname SELECT u.id, u.created_at, u.updated_at, u.nickname
FROM public.user u FROM public.user u
WHERE u.id = $1 WHERE u.id = $1
` `
row := db.session.QueryRow(q, id) row := db.session.QueryRow(q, id)
u := model.User{} u := model.User{}
err := row.Scan(&u.ID, &u.Email, &u.CreatedAt, &u.UpdatedAt, &u.Nickname) err := row.Scan(&u.ID, &u.CreatedAt, &u.UpdatedAt, &u.Nickname)
if errPq, ok := err.(*pq.Error); ok { if errPq, ok := err.(*pq.Error); ok {
return nil, handlePgError(errPq) return nil, handlePgError(errPq)
} }
@@ -53,14 +53,14 @@ func (db *DatabasePostgreSQL) GetUsersByID(id string) (*model.User, error) {
func (db *DatabasePostgreSQL) CreateUser(user *model.User) error { func (db *DatabasePostgreSQL) CreateUser(user *model.User) error {
q := ` q := `
INSERT INTO public.user INSERT INTO public.user
(email, nickname, google_id) (nickname, google_id)
VALUES VALUES
($1, $2, $3) ($1, $2, $3)
RETURNING id, created_at RETURNING id, created_at
` `
err := db.session. err := db.session.
QueryRow(q, user.Email, user.Nickname, user.GoogleId). QueryRow(q, user.Nickname, user.GoogleId).
Scan(&user.ID, &user.CreatedAt) Scan(&user.ID, &user.CreatedAt)
if errPq, ok := err.(*pq.Error); ok { if errPq, ok := err.(*pq.Error); ok {
return handlePgError(errPq) return handlePgError(errPq)
@@ -82,33 +82,19 @@ func (db *DatabasePostgreSQL) DeleteUser(id string) error {
} }
func (db *DatabasePostgreSQL) UpdateUser(user *model.User) error { func (db *DatabasePostgreSQL) UpdateUser(user *model.User) error {
q := ` return nil
UPDATE public.user
SET
email = $2
WHERE id = $1
RETURNING updated_at
`
err := db.session.
QueryRow(q, user.ID, user.Email).
Scan(&user.UpdatedAt)
if errPq, ok := err.(*pq.Error); ok {
return handlePgError(errPq)
}
return err
} }
func (db *DatabasePostgreSQL) GetUsersByGoogleID(id string) (*model.User, error) { func (db *DatabasePostgreSQL) GetUsersByGoogleID(id string) (*model.User, error) {
q := ` q := `
SELECT u.id, u.email, u.created_at, u.updated_at, u.nickname, u.google_id SELECT u.id, u.created_at, u.updated_at, u.nickname, u.google_id
FROM public.user u FROM public.user u
WHERE u.google_id = $1 WHERE u.google_id = $1
` `
row := db.session.QueryRow(q, id) row := db.session.QueryRow(q, id)
u := model.User{} u := model.User{}
err := row.Scan(&u.ID, &u.Email, &u.CreatedAt, &u.UpdatedAt, &u.Nickname, &u.GoogleId) err := row.Scan(&u.ID, &u.CreatedAt, &u.UpdatedAt, &u.Nickname, &u.GoogleId)
if errPq, ok := err.(*pq.Error); ok { if errPq, ok := err.(*pq.Error); ok {
return nil, handlePgError(errPq) return nil, handlePgError(errPq)
} }

View File

@@ -11,6 +11,5 @@ type User struct {
} }
type UserEditable struct { type UserEditable struct {
Email string `json:"email" validate:"required"`
Nickname string `json:"nickname" validate:"required"` Nickname string `json:"nickname" validate:"required"`
} }