func scanUser(user *data.User, rows *sql.Rows) error { var createTimeString string var updateTimeString string var statusTimeString string err := rows.Scan( &user.Username, &user.Password, &user.Salt, &user.Role, &user.TrustLevel, &createTimeString, &user.Heading, &user.Lat, &user.Lng, &updateTimeString, &user.Status, &statusTimeString, ) if err != nil { return err } // TODO: this is a hacky fix for null times if createTimeString == "0000-00-00 00:00:00" { createTimeString = "0001-01-01 00:00:00" } createTime, err := time.Parse("2006-01-02 15:04:05", createTimeString) // this assumes UTC as timezone if err != nil { log.Println("User scanner failed to parse create time.") return err } user.CreateTime = createTime // TODO: this is a hacky fix for null times if updateTimeString == "0000-00-00 00:00:00" { updateTimeString = "0001-01-01 00:00:00" } updateTime, err := time.Parse("2006-01-02 15:04:05", updateTimeString) // this assumes UTC as timezone if err != nil { log.Println("User scanner failed to parse update time.") return err } user.UpdateTime = updateTime // TODO: this is a hacky fix for null times if statusTimeString == "0000-00-00 00:00:00" { statusTimeString = "0001-01-01 00:00:00" } statusTime, err := time.Parse("2006-01-02 15:04:05", statusTimeString) // this assumes UTC as timezone if err != nil { log.Println("User scanner failed to parse time.") return err } user.StatusTime = statusTime return nil }