Пример #1
0
func scanReport(rows *sql.Rows) (string, schema.ReportHeader, error) {
	hdr := schema.ReportHeader{Grade: -1}
	var comment sql.NullString
	var delivery, reviewed pq.NullTime
	var grade sql.NullInt64
	var student string
	err := rows.Scan(
		&student,
		&hdr.Kind,
		&hdr.Deadline,
		&delivery,
		&reviewed,
		&grade,
		&comment,
		&hdr.Private,
		&hdr.ToGrade)
	if err != nil {
		return "", hdr, mapCstrToError(err)
	}
	if comment.Valid {
		hdr.Comment = comment.String
	}
	hdr.Deadline = hdr.Deadline.Truncate(time.Minute).UTC()
	hdr.Delivery = nullableTime(delivery)
	hdr.Reviewed = nullableTime(reviewed)
	if grade.Valid {
		hdr.Grade = int(grade.Int64)
	}
	return student, hdr, mapCstrToError(err)
}