package dbrepo import ( "errors" "go-udemy-web-1/internal/models" "time" ) func (m *testDBRepo) AllUsers() bool { return true } // InsertReservation inserts a reservation into the database func (m *testDBRepo) InsertReservation(res models.Reservation) (int, error) { // if the room id is 2, then fail; otherwise, pass if res.RoomID == 2 { return 0, errors.New("deliberate error") } return 1, nil } // InsertRoomRestriction inserts a room restriction into the database func (m *testDBRepo) InsertRoomRestriction(r models.RoomRestriction) error { if r.RoomID == 100 { return errors.New("deliberate error") } return nil } // SearchAvailabilityByDatesByRoomID returns true if availability exists for roomID, and false if no availability func (m *testDBRepo) SearchAvailabilityByDatesByRoomID(start, end time.Time, roomID int) (bool, error) { if roomID == 2 { return false, nil } if roomID == 100 { return false, errors.New("deliberate error") } return true, nil } // SearchAvailabilityForAllRooms returns a slice of rooms, if any, for given date range func (m *testDBRepo) SearchAvailabilityForAllRooms(start, end time.Time) ([]models.Room, error) { var rooms []models.Room if start.Format("2006-01-02") == "2050-01-01" && end.Format("2006-01-02") == "2050-01-02" { room := models.Room{ RoomName: "room", ID: 1, } rooms = append(rooms, room) return rooms, nil } if start.Format("2006-01-02") == "2050-01-03" && end.Format("2006-01-02") == "2050-01-04" { return rooms, errors.New("deliberate error") } return rooms, nil } // GetRoomById gets a room by id func (m *testDBRepo) GetRoomById(id int) (models.Room, error) { var room models.Room if id > 2 { return room, errors.New("deliberate error") } return room, nil }