//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 }