This commit is contained in:
parent
6fb7986a7a
commit
4c46386fff
5 changed files with 41 additions and 20 deletions
18
users.go
18
users.go
|
@ -50,18 +50,19 @@ type User struct {
|
|||
Lastname string `json:"lastname"`
|
||||
Time time.Time `json:"time"`
|
||||
Promo uint `json:"promo"`
|
||||
Groups string `json:"groups"`
|
||||
IsAdmin bool `json:"is_admin"`
|
||||
}
|
||||
|
||||
func getUsers() (users []User, err error) {
|
||||
if rows, errr := DBQuery("SELECT id_user, login, email, firstname, lastname, time, promo, is_admin FROM users"); errr != nil {
|
||||
if rows, errr := DBQuery("SELECT id_user, login, email, firstname, lastname, time, promo, groups, is_admin FROM users"); errr != nil {
|
||||
return nil, errr
|
||||
} else {
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var u User
|
||||
if err = rows.Scan(&u.Id, &u.Login, &u.Email, &u.Firstname, &u.Lastname, &u.Time, &u.Promo, &u.IsAdmin); err != nil {
|
||||
if err = rows.Scan(&u.Id, &u.Login, &u.Email, &u.Firstname, &u.Lastname, &u.Time, &u.Promo, &u.Groups, &u.IsAdmin); err != nil {
|
||||
return
|
||||
}
|
||||
users = append(users, u)
|
||||
|
@ -75,12 +76,12 @@ func getUsers() (users []User, err error) {
|
|||
}
|
||||
|
||||
func getUser(id int) (u User, err error) {
|
||||
err = DBQueryRow("SELECT id_user, login, email, firstname, lastname, time, promo, is_admin FROM users WHERE id_user=?", id).Scan(&u.Id, &u.Login, &u.Email, &u.Firstname, &u.Lastname, &u.Time, &u.Promo, &u.IsAdmin)
|
||||
err = DBQueryRow("SELECT id_user, login, email, firstname, lastname, time, promo, groups, is_admin FROM users WHERE id_user=?", id).Scan(&u.Id, &u.Login, &u.Email, &u.Firstname, &u.Lastname, &u.Time, &u.Promo, &u.Groups, &u.IsAdmin)
|
||||
return
|
||||
}
|
||||
|
||||
func getUserByLogin(login string) (u User, err error) {
|
||||
err = DBQueryRow("SELECT id_user, login, email, firstname, lastname, time, promo, is_admin FROM users WHERE login=?", login).Scan(&u.Id, &u.Login, &u.Email, &u.Firstname, &u.Lastname, &u.Time, &u.Promo, &u.IsAdmin)
|
||||
err = DBQueryRow("SELECT id_user, login, email, firstname, lastname, time, promo, groups, is_admin FROM users WHERE login=?", login).Scan(&u.Id, &u.Login, &u.Email, &u.Firstname, &u.Lastname, &u.Time, &u.Promo, &u.Groups, &u.IsAdmin)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -90,19 +91,19 @@ func userExists(login string) bool {
|
|||
return err == nil && z == 1
|
||||
}
|
||||
|
||||
func NewUser(login string, email string, firstname string, lastname string) (User, error) {
|
||||
func NewUser(login string, email string, firstname string, lastname string, groups string) (User, error) {
|
||||
t := time.Now()
|
||||
if res, err := DBExec("INSERT INTO users (login, email, firstname, lastname, time, promo) VALUES (?, ?, ?, ?, ?, ?)", login, email, firstname, lastname, t, currentPromo); err != nil {
|
||||
if res, err := DBExec("INSERT INTO users (login, email, firstname, lastname, time, promo, groups) VALUES (?, ?, ?, ?, ?, ?, ?)", login, email, firstname, lastname, t, currentPromo, groups); err != nil {
|
||||
return User{}, err
|
||||
} else if sid, err := res.LastInsertId(); err != nil {
|
||||
return User{}, err
|
||||
} else {
|
||||
return User{sid, login, email, firstname, lastname, t, currentPromo, false}, nil
|
||||
return User{sid, login, email, firstname, lastname, t, currentPromo, groups, false}, nil
|
||||
}
|
||||
}
|
||||
|
||||
func (u User) Update() (int64, error) {
|
||||
if res, err := DBExec("UPDATE users SET login = ?, email = ?, firstname = ?, lastname = ?, time = ?, promo = ? WHERE id_user = ?", u.Login, u.Email, u.Firstname, u.Lastname, u.Time, u.Promo, u.Id); err != nil {
|
||||
if res, err := DBExec("UPDATE users SET login = ?, email = ?, firstname = ?, lastname = ?, time = ?, promo = ?, groups = ? WHERE id_user = ?", u.Login, u.Email, u.Firstname, u.Lastname, u.Time, u.Promo, u.Groups, u.Id); err != nil {
|
||||
return 0, err
|
||||
} else if nb, err := res.RowsAffected(); err != nil {
|
||||
return 0, err
|
||||
|
@ -152,5 +153,6 @@ func updateUser(current User, body []byte) HTTPResponse {
|
|||
current.Lastname = new.Lastname
|
||||
current.Time = new.Time
|
||||
current.Promo = new.Promo
|
||||
current.Groups = new.Groups
|
||||
return formatApiResponse(current.Update())
|
||||
}
|
||||
|
|
Reference in a new issue