feat: AddUserTitle implemented
This commit is contained in:
parent
15a681c622
commit
76df4d8592
10 changed files with 749 additions and 39 deletions
|
|
@ -9,8 +9,6 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const createImage = `-- name: CreateImage :one
|
||||
|
|
@ -317,6 +315,93 @@ func (q *Queries) InsertTitleTags(ctx context.Context, arg InsertTitleTagsParams
|
|||
return i, err
|
||||
}
|
||||
|
||||
const insertUserTitle = `-- name: InsertUserTitle :one
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||
VALUES (
|
||||
$1::bigint,
|
||||
$2::bigint,
|
||||
$3::usertitle_status_t,
|
||||
$4::int,
|
||||
$5::bigint
|
||||
)
|
||||
RETURNING user_id, title_id, status, rate, review_id, ctime
|
||||
`
|
||||
|
||||
type InsertUserTitleParams struct {
|
||||
UserID int64 `json:"user_id"`
|
||||
TitleID int64 `json:"title_id"`
|
||||
Status UsertitleStatusT `json:"status"`
|
||||
Rate *int32 `json:"rate"`
|
||||
ReviewID *int64 `json:"review_id"`
|
||||
}
|
||||
|
||||
// -- name: CreateReview :one
|
||||
// INSERT INTO reviews (user_id, title_id, image_ids, review_text, creation_date)
|
||||
// VALUES ($1, $2, $3, $4, $5)
|
||||
// RETURNING review_id, user_id, title_id, image_ids, review_text, creation_date;
|
||||
// -- name: UpdateReview :one
|
||||
// UPDATE reviews
|
||||
// SET
|
||||
//
|
||||
// image_ids = COALESCE(sqlc.narg('image_ids'), image_ids),
|
||||
// review_text = COALESCE(sqlc.narg('review_text'), review_text)
|
||||
//
|
||||
// WHERE review_id = sqlc.arg('review_id')
|
||||
// RETURNING *;
|
||||
// -- name: DeleteReview :exec
|
||||
// DELETE FROM reviews
|
||||
// WHERE review_id = $1;
|
||||
//
|
||||
// -- name: ListReviewsByTitle :many
|
||||
//
|
||||
// SELECT review_id, user_id, title_id, image_ids, review_text, creation_date
|
||||
// FROM reviews
|
||||
// WHERE title_id = $1
|
||||
// ORDER BY creation_date DESC
|
||||
// LIMIT $2 OFFSET $3;
|
||||
// -- name: ListReviewsByUser :many
|
||||
// SELECT review_id, user_id, title_id, image_ids, review_text, creation_date
|
||||
// FROM reviews
|
||||
// WHERE user_id = $1
|
||||
// ORDER BY creation_date DESC
|
||||
// LIMIT $2 OFFSET $3;
|
||||
// -- name: GetUserTitle :one
|
||||
// SELECT usertitle_id, user_id, title_id, status, rate, review_id
|
||||
// FROM usertitles
|
||||
// WHERE user_id = $1 AND title_id = $2;
|
||||
// -- name: ListUserTitles :many
|
||||
// SELECT usertitle_id, user_id, title_id, status, rate, review_id
|
||||
// FROM usertitles
|
||||
// WHERE user_id = $1
|
||||
// ORDER BY usertitle_id
|
||||
// LIMIT $2 OFFSET $3;
|
||||
func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams) (Usertitle, error) {
|
||||
row := q.db.QueryRow(ctx, insertUserTitle,
|
||||
arg.UserID,
|
||||
arg.TitleID,
|
||||
arg.Status,
|
||||
arg.Rate,
|
||||
arg.ReviewID,
|
||||
)
|
||||
var i Usertitle
|
||||
err := row.Scan(
|
||||
&i.UserID,
|
||||
&i.TitleID,
|
||||
&i.Status,
|
||||
&i.Rate,
|
||||
&i.ReviewID,
|
||||
&i.Ctime,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const searchTitles = `-- name: SearchTitles :many
|
||||
SELECT
|
||||
t.id as id,
|
||||
|
|
@ -684,26 +769,26 @@ type SearchUserTitlesParams struct {
|
|||
}
|
||||
|
||||
type SearchUserTitlesRow struct {
|
||||
ID int64 `json:"id"`
|
||||
TitleNames json.RawMessage `json:"title_names"`
|
||||
PosterID *int64 `json:"poster_id"`
|
||||
TitleStatus TitleStatusT `json:"title_status"`
|
||||
Rating *float64 `json:"rating"`
|
||||
RatingCount *int32 `json:"rating_count"`
|
||||
ReleaseYear *int32 `json:"release_year"`
|
||||
ReleaseSeason *ReleaseSeasonT `json:"release_season"`
|
||||
Season *int32 `json:"season"`
|
||||
EpisodesAired *int32 `json:"episodes_aired"`
|
||||
EpisodesAll *int32 `json:"episodes_all"`
|
||||
UserID int64 `json:"user_id"`
|
||||
UsertitleStatus UsertitleStatusT `json:"usertitle_status"`
|
||||
UserRate *int32 `json:"user_rate"`
|
||||
ReviewID *int64 `json:"review_id"`
|
||||
UserCtime pgtype.Timestamptz `json:"user_ctime"`
|
||||
TitleStorageType string `json:"title_storage_type"`
|
||||
TitleImagePath *string `json:"title_image_path"`
|
||||
TagNames json.RawMessage `json:"tag_names"`
|
||||
StudioName *string `json:"studio_name"`
|
||||
ID int64 `json:"id"`
|
||||
TitleNames json.RawMessage `json:"title_names"`
|
||||
PosterID *int64 `json:"poster_id"`
|
||||
TitleStatus TitleStatusT `json:"title_status"`
|
||||
Rating *float64 `json:"rating"`
|
||||
RatingCount *int32 `json:"rating_count"`
|
||||
ReleaseYear *int32 `json:"release_year"`
|
||||
ReleaseSeason *ReleaseSeasonT `json:"release_season"`
|
||||
Season *int32 `json:"season"`
|
||||
EpisodesAired *int32 `json:"episodes_aired"`
|
||||
EpisodesAll *int32 `json:"episodes_all"`
|
||||
UserID int64 `json:"user_id"`
|
||||
UsertitleStatus UsertitleStatusT `json:"usertitle_status"`
|
||||
UserRate *int32 `json:"user_rate"`
|
||||
ReviewID *int64 `json:"review_id"`
|
||||
UserCtime time.Time `json:"user_ctime"`
|
||||
TitleStorageType string `json:"title_storage_type"`
|
||||
TitleImagePath *string `json:"title_image_path"`
|
||||
TagNames json.RawMessage `json:"tag_names"`
|
||||
StudioName *string `json:"studio_name"`
|
||||
}
|
||||
|
||||
// 100 is default limit
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue