Переглянути джерело

Raise an error if teacher exists

Andrea Fazzi 6 роки тому
батько
коміт
27c854524a
2 змінених файлів з 10 додано та 0 видалено
  1. 3 0
      orm/orm_test.go
  2. 7 0
      orm/teacher.go

+ 3 - 0
orm/orm_test.go

@@ -206,6 +206,9 @@ func (t *testSuite) TestCreateDeleteTeacher() {
 		teachers, _ := GetTeachers(map[string]string{})
 		t.Equal(11, len(teachers.([]*Teacher)))
 	}
+
+	teacher, err = CreateTeacher(&Teacher{Credential: Credential{Name: "Amilcare", Surname: "AGOSTINO"}})
+	t.Not(t.Nil(err))
 }
 
 func (t *testSuite) TestGetDepartments() {

+ 7 - 0
orm/teacher.go

@@ -167,6 +167,13 @@ func AddTeacher(args map[string]string, r *http.Request) (IDer, error) {
 }
 
 func CreateTeacher(teacher *Teacher) (*Teacher, error) {
+	var teachers []*Teacher
+	if err := DB().Where("name=? AND surname=?", teacher.Name, teacher.Surname).Find(&teachers).Error; err != nil {
+		return nil, err
+	}
+	if len(teachers) > 0 {
+		return nil, fmt.Errorf("Teacher %s already exists!", teacher.CompleteName())
+	}
 	if err := DB().Create(teacher).Error; err != nil {
 		return nil, err
 	}