token-validator: existing student is not a case of failure

This commit is contained in:
nemunaire 2018-02-22 00:45:51 +01:00 committed by Pierre-Olivier Mercier
parent 6bcc445691
commit f3249cc9ed

View file

@ -64,6 +64,12 @@ func getStudentByLogin(login string) (s Student, err error) {
return
}
func studentExists(login string) bool {
var z int
err := DBQueryRow("SELECT 1 FROM students WHERE login=?", login).Scan(&z)
return err != nil && z == 1
}
func NewStudent(login string) (Student, error) {
if res, err := DBExec("INSERT INTO students (login, time) VALUES (?, ?)", login, time.Now()); err != nil {
return Student{}, err
@ -114,7 +120,11 @@ func createStudent(_ httprouter.Params, body []byte) (interface{}, error) {
return nil, err
}
return NewStudent(strings.TrimSpace(std.Login))
if exist, err := getStudentByLogin(strings.TrimSpace(std.Login)); err != nil {
return NewStudent(strings.TrimSpace(std.Login))
} else {
return exist, nil
}
}
func updateStudent(current Student, body []byte) (interface{}, error) {