udemy-go-web-1/internal/repository/dbrepo/test-repo.go

98 lines
2.5 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, 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 || id <= 0 {
return room, errors.New("deliberate error")
}
return room, nil
}
// GetUserByID gets a user by id
func (m *testDBRepo) GetUserByID(id int) (models.User, error) {
var u models.User
return u, nil
}
// UpdateUser updates a user in the database
func (m *testDBRepo) UpdateUser(u models.User) error {
return nil
}
// Authenticate authenticates a user
func (m *testDBRepo) Authenticate(email, testPassword string) (int, string, error) {
return 1, "", nil
}
// AllReservations returns a slice of all reservations
func (m *testDBRepo) AllReservations() ([]models.Reservation, error) {
var reservations []models.Reservation
return reservations, nil
}
// AllNewReservations returns a slice of all new reservations
func (m *testDBRepo) AllNewReservations() ([]models.Reservation, error) {
var reservations []models.Reservation
return reservations, nil
}