53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
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, 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
|
|
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
|
|
}
|