func ViewReservationsByTeacher(w http.ResponseWriter, r *http.Request, userId string, userType models.UserType) interface{} { var result = map[string]interface{}{"state": "SUCCESS"} var ul = buslogic.UserLogic{} var rl = buslogic.ReservationLogic{} teacher, err := ul.GetUserById(userId) if err != nil { ErrorHandler(w, r, err) return nil } var teacherJson = make(map[string]interface{}) teacherJson["teacher_fullname"] = teacher.Fullname teacherJson["teacher_mobile"] = teacher.Mobile result["teacher_info"] = teacherJson reservations, err := rl.GetReservationsByTeacher(userId, userType) if err != nil { ErrorHandler(w, r, err) return nil } var array = make([]interface{}, 0) for _, res := range reservations { resJson := make(map[string]interface{}) resJson["reservation_id"] = res.Id resJson["start_time"] = res.StartTime.In(utils.Location).Format(utils.TIME_PATTERN) resJson["end_time"] = res.EndTime.In(utils.Location).Format(utils.TIME_PATTERN) resJson["teacher_fullname"] = res.TeacherFullname resJson["teacher_mobile"] = res.TeacherMobile if res.Status == models.AVAILABLE { resJson["status"] = models.AVAILABLE.String() } else if res.Status == models.RESERVATED && res.StartTime.Before(time.Now().In(utils.Location)) { resJson["status"] = models.FEEDBACK.String() } else { resJson["status"] = models.RESERVATED.String() } array = append(array, resJson) } result["reservations"] = array return result }