1. change db to sqlc, 2.use repo for db drivers

This commit is contained in:
2024-08-01 10:04:50 +02:00
parent cec183b416
commit 459a4e5c7d
12 changed files with 67 additions and 36 deletions

View File

@ -4,7 +4,9 @@ import (
"database/sql"
"go-udemy-web-1/internal/config"
"go-udemy-web-1/internal/repository"
"go-udemy-web-1/internal/repository/db"
"go-udemy-web-1/internal/repository/sqlc"
"github.com/jackc/pgx/v5"
)
type postgresDBRepo struct {
@ -14,7 +16,7 @@ type postgresDBRepo struct {
type pgcDBRepo struct {
App *config.AppConfig
Q *db.Queries
Q *sqlc.Queries
}
type testDBRepo struct {
@ -35,7 +37,8 @@ func NewTestingRepo(a *config.AppConfig) repository.DatabaseRepo {
}
}
func NewPgcRepo(q *db.Queries, a *config.AppConfig) repository.DatabaseRepo {
func NewPgcRepo(conn *pgx.Conn, a *config.AppConfig) repository.DatabaseRepo {
q := sqlc.New(conn)
return &pgcDBRepo{
App: a,
Q: q,

View File

@ -4,7 +4,7 @@ import (
"context"
"errors"
"go-udemy-web-1/internal/models"
"go-udemy-web-1/internal/repository/db"
"go-udemy-web-1/internal/repository/sqlc"
"time"
"github.com/jackc/pgx/v5/pgtype"
@ -21,7 +21,7 @@ func (m *pgcDBRepo) InsertReservation(res models.Reservation) (int, error) {
defer cancel()
var newId int32
newId, err := m.Q.InsertReservation(ctx, db.InsertReservationParams{
newId, err := m.Q.InsertReservation(ctx, sqlc.InsertReservationParams{
FirstName: res.FirstName,
LastName: res.LastName,
Email: res.Email,
@ -44,7 +44,7 @@ func (m *pgcDBRepo) InsertRoomRestriction(r models.RoomRestriction) error {
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err := m.Q.InsertRoomRestriction(ctx, db.InsertRoomRestrictionParams{
err := m.Q.InsertRoomRestriction(ctx, sqlc.InsertRoomRestrictionParams{
StartDate: pgtype.Date{Time: r.StartDate, Valid: true},
EndDate: pgtype.Date{Time: r.EndDate, Valid: true},
RoomID: int32(r.Room.ID),
@ -64,7 +64,7 @@ func (m *pgcDBRepo) SearchAvailabilityByDatesByRoomID(start, end time.Time, room
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
numRows, err := m.Q.SearchAvailabilityByDatesByRoomID(ctx, db.SearchAvailabilityByDatesByRoomIDParams{
numRows, err := m.Q.SearchAvailabilityByDatesByRoomID(ctx, sqlc.SearchAvailabilityByDatesByRoomIDParams{
RoomID: int32(roomID),
EndDate: pgtype.Date{Time: start, Valid: true},
StartDate: pgtype.Date{Time: end, Valid: false},
@ -87,7 +87,7 @@ func (m *pgcDBRepo) SearchAvailabilityForAllRooms(start, end time.Time) ([]model
var rooms []models.Room
rows, err := m.Q.SearchAvailabilityForAllRooms(ctx, db.SearchAvailabilityForAllRoomsParams{
rows, err := m.Q.SearchAvailabilityForAllRooms(ctx, sqlc.SearchAvailabilityForAllRoomsParams{
EndDate: pgtype.Date{Time: start, Valid: true},
StartDate: pgtype.Date{Time: start, Valid: true},
})
@ -153,7 +153,7 @@ func (m *pgcDBRepo) UpdateUser(u models.User) error {
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err := m.Q.UpdateUser(ctx, db.UpdateUserParams{
err := m.Q.UpdateUser(ctx, sqlc.UpdateUserParams{
FirstName: u.FirstName,
LastName: u.LastName,
Email: u.Email,
@ -288,7 +288,7 @@ func (m *pgcDBRepo) UpdateReservation(r models.Reservation) error {
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err := m.Q.UpdateReservation(ctx, db.UpdateReservationParams{
err := m.Q.UpdateReservation(ctx, sqlc.UpdateReservationParams{
ID: int32(r.ID),
FirstName: r.FirstName,
LastName: r.LastName,
@ -320,7 +320,7 @@ func (m *pgcDBRepo) UpdateProcessedForReservation(id, processed int) error {
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err := m.Q.UpdateProcessedForReservation(ctx, db.UpdateProcessedForReservationParams{
err := m.Q.UpdateProcessedForReservation(ctx, sqlc.UpdateProcessedForReservationParams{
Processed: int32(processed),
ID: int32(id),
})
@ -358,7 +358,7 @@ func (m *pgcDBRepo) GetRestrictionsForRoomByDate(roomId int, start, end time.Tim
var restrictions []models.RoomRestriction
rows, err := m.Q.GetRestrictionsForRoomByDate(ctx, db.GetRestrictionsForRoomByDateParams{
rows, err := m.Q.GetRestrictionsForRoomByDate(ctx, sqlc.GetRestrictionsForRoomByDateParams{
EndDate: pgtype.Date{Time: end, Valid: true},
StartDate: pgtype.Date{Time: start, Valid: true},
RoomID: int32(roomId),
@ -386,7 +386,7 @@ func (m *pgcDBRepo) InsertBlockForRoom(id int, startDate time.Time) error {
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err := m.Q.InsertBlockForRoom(ctx, db.InsertBlockForRoomParams{
err := m.Q.InsertBlockForRoom(ctx, sqlc.InsertBlockForRoomParams{
StartDate: pgtype.Date{Time: startDate, Valid: true},
EndDate: pgtype.Date{Time: startDate.AddDate(0, 0, 1)},
RoomID: int32(id),