Example #1
0
//Internships returns all the internships. Not necessarily validated
func (s *Store) Internships() (schema.Internships, error) {
	conventions, err := s.conventions()
	if err != nil {
		return schema.Internships{}, err
	}
	defs, err := s.defenses()
	if err != nil {
		return schema.Internships{}, err
	}

	surveys, err := s.allSurveys()
	if err != nil {
		return schema.Internships{}, err
	}

	reports, err := s.allReports()
	if err != nil {
		return schema.Internships{}, err
	}

	ints := make([]schema.Internship, 0, 0)
	for _, c := range conventions {
		stu := c.Student.User.Person.Email
		i := schema.Internship{Convention: c}
		d, ok := defs[stu]
		if ok {
			i.Defense = d
		}
		s, ok := surveys[stu]
		if ok {
			i.Surveys = s
		}
		r, ok := reports[stu]
		if ok {
			i.Reports = r
		}
		ints = append(ints, i)
	}
	return ints, err
}