Andrea Fazzi 6 жил өмнө
parent
commit
1a83763c84
3 өөрчлөгдсөн 24 нэмэгдсэн , 21 устгасан
  1. 1 1
      handlers/teachers.go
  2. 7 13
      orm/orm_test.go
  3. 16 7
      orm/teacher.go

+ 1 - 1
handlers/teachers.go

@@ -131,7 +131,7 @@ func teacherUpdateHandler() http.Handler {
 			if err != nil {
 				panic(err)
 			}
-			_, err = teacher.Save(newTeacher.(*orm.Teacher))
+			_, err = SaveTeacher(mux.Vars(r)["id"], newTeacher.(*orm.Teacher))
 			if err != nil {
 				panic(err)
 			}

+ 7 - 13
orm/orm_test.go

@@ -45,8 +45,7 @@ func (t *testSuite) TestDB() {
 }
 
 func (t *testSuite) TestGetTeacher() {
-	var teacher Teacher
-	err := GetTeacher(&teacher, "1")
+	teacher, err := GetTeacher("1")
 	t.Nil(err)
 	if !t.Failed() {
 		t.Equal("Amilcare", teacher.Name)
@@ -80,8 +79,7 @@ func (t *testSuite) TestGetTeachersAll() {
 }
 
 func (t *testSuite) TestGetTeacherActivitiesByClass() {
-	var teacher Teacher
-	err := GetTeacher(&teacher, "1")
+	teacher, err := GetTeacher("1")
 	t.Nil(err)
 	if !t.Failed() {
 		_, err := teacher.GetActivitiesByClass("1")
@@ -118,7 +116,6 @@ func (t *testSuite) TestGetClass() {
 	class, err := GetClass("1")
 	t.Nil(err)
 	if !t.Failed() {
-
 		t.Equal("1 A", class.Name)
 
 		// Test teachers
@@ -141,18 +138,15 @@ func (t *testSuite) TestGetClass() {
 }
 
 func (t *testSuite) TestSaveTeacher() {
-	var teacher Teacher
-
-	err := DB().First(&teacher, "1").Error
+	teacher, err := GetTeacher("1")
 	t.Nil(err)
-	teacher.Name = "Roberto"
 
-	err = DB().Debug().Save(&teacher).Error
+	teacher.Name = "Roberto"
+	err = SaveTeacher("1", teacher)
 	t.Nil(err)
-	if !t.Failed() {
-		DB().Debug().First(&teacher, "1")
 
-		// teacher, _ = GetTeacher("1")
+	if !t.Failed() {
+		teacher, _ = GetTeacher("1")
 		t.Equal("Roberto", teacher.Name)
 	}
 }

+ 16 - 7
orm/teacher.go

@@ -35,24 +35,33 @@ INNER JOIN subjects on subjects.id=activities.subject_id
 WHERE activities.teacher_id=?`
 )
 
-func GetTeacher(teacher *Teacher, id string) error {
-	if err := DB().First(teacher, id).Error; err != nil {
-		return err
+func GetTeacher(id string) (*Teacher, error) {
+	var teacher Teacher
+	if err := DB().First(&teacher, id).Error; err != nil {
+		return nil, err
+	}
+	return &teacher, nil
+}
+
+func GetTeacherAll(id string) (*Teacher, error) {
+	var teacher Teacher
+	if err := DB().First(&teacher, id).Error; err != nil {
+		return nil, err
 	}
 
 	if err := DB().Raw(selectUniqueTeacherClasses, id).Scan(&teacher.Classes).Error; err != nil {
-		return err
+		return nil, err
 	}
 
 	if err := DB().Raw(selectUniqueTeacherSubjects, id).Scan(&teacher.Subjects).Error; err != nil {
-		return err
+		return nil, err
 	}
 
 	if err := DB().Preload("Teacher").Preload("Subject").Where("teacher_id=?", id).Find(&teacher.Activities).Error; err != nil {
-		return err
+		return nil, err
 	}
 
-	return nil
+	return &teacher, nil
 }
 
 func GetTeachers() ([]*Teacher, error) {