From c00b690bd6f600554a1404e692bd9e4373325d27 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Fri, 17 Jan 2025 13:21:24 +0000 Subject: Initial commit --- pkg/database/sqlc/favourites.sql.go | 134 ++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 pkg/database/sqlc/favourites.sql.go (limited to 'pkg/database/sqlc/favourites.sql.go') diff --git a/pkg/database/sqlc/favourites.sql.go b/pkg/database/sqlc/favourites.sql.go new file mode 100644 index 0000000..3bf7c06 --- /dev/null +++ b/pkg/database/sqlc/favourites.sql.go @@ -0,0 +1,134 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.27.0 +// source: favourites.sql + +package sqlc + +import ( + "context" + + "github.com/jackc/pgx/v5/pgtype" +) + +const createFavourite = `-- name: CreateFavourite :one +INSERT INTO favourites ( + user_id, event_guid, event_id +) VALUES ( + $1, $2, $3 +) +RETURNING id, user_id, event_guid, event_id +` + +type CreateFavouriteParams struct { + UserID int32 `json:"user_id"` + EventGuid pgtype.UUID `json:"event_guid"` + EventID pgtype.Int4 `json:"event_id"` +} + +func (q *Queries) CreateFavourite(ctx context.Context, arg CreateFavouriteParams) (Favourite, error) { + row := q.db.QueryRow(ctx, createFavourite, arg.UserID, arg.EventGuid, arg.EventID) + var i Favourite + err := row.Scan( + &i.ID, + &i.UserID, + &i.EventGuid, + &i.EventID, + ) + return i, err +} + +const deleteFavourite = `-- name: DeleteFavourite :exec +DELETE FROM favourites +WHERE id = $1 +` + +func (q *Queries) DeleteFavourite(ctx context.Context, id int32) error { + _, err := q.db.Exec(ctx, deleteFavourite, id) + return err +} + +const deleteFavouriteByEventDetails = `-- name: DeleteFavouriteByEventDetails :execrows +DELETE FROM favourites +WHERE (event_guid = $1 OR event_id = $2) AND user_id = $3 +` + +type DeleteFavouriteByEventDetailsParams struct { + EventGuid pgtype.UUID `json:"event_guid"` + EventID pgtype.Int4 `json:"event_id"` + UserID int32 `json:"user_id"` +} + +func (q *Queries) DeleteFavouriteByEventDetails(ctx context.Context, arg DeleteFavouriteByEventDetailsParams) (int64, error) { + result, err := q.db.Exec(ctx, deleteFavouriteByEventDetails, arg.EventGuid, arg.EventID, arg.UserID) + if err != nil { + return 0, err + } + return result.RowsAffected(), nil +} + +const deleteFavouriteByEventGuid = `-- name: DeleteFavouriteByEventGuid :execrows +DELETE FROM favourites +WHERE event_guid = $1 AND user_id = $2 +` + +type DeleteFavouriteByEventGuidParams struct { + EventGuid pgtype.UUID `json:"event_guid"` + UserID int32 `json:"user_id"` +} + +func (q *Queries) DeleteFavouriteByEventGuid(ctx context.Context, arg DeleteFavouriteByEventGuidParams) (int64, error) { + result, err := q.db.Exec(ctx, deleteFavouriteByEventGuid, arg.EventGuid, arg.UserID) + if err != nil { + return 0, err + } + return result.RowsAffected(), nil +} + +const deleteFavouriteByEventId = `-- name: DeleteFavouriteByEventId :execrows +DELETE FROM favourites +WHERE event_id = $1 AND user_id = $2 +` + +type DeleteFavouriteByEventIdParams struct { + EventID pgtype.Int4 `json:"event_id"` + UserID int32 `json:"user_id"` +} + +func (q *Queries) DeleteFavouriteByEventId(ctx context.Context, arg DeleteFavouriteByEventIdParams) (int64, error) { + result, err := q.db.Exec(ctx, deleteFavouriteByEventId, arg.EventID, arg.UserID) + if err != nil { + return 0, err + } + return result.RowsAffected(), nil +} + +const getFavouritesForUser = `-- name: GetFavouritesForUser :many +SELECT id, user_id, event_guid, event_id FROM favourites +WHERE user_id = $1 +` + +func (q *Queries) GetFavouritesForUser(ctx context.Context, userID int32) ([]Favourite, error) { + rows, err := q.db.Query(ctx, getFavouritesForUser, userID) + if err != nil { + return nil, err + } + defer rows.Close() + var items []Favourite + for rows.Next() { + var i Favourite + if err := rows.Scan( + &i.ID, + &i.UserID, + &i.EventGuid, + &i.EventID, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} -- cgit v1.2.3-70-g09d2