feat: delete usertitle implemented
This commit is contained in:
parent
246fdc86b5
commit
451df61127
7 changed files with 160 additions and 492 deletions
|
|
@ -132,25 +132,25 @@ func (s Server) GetTagsByTitleId(ctx context.Context, id int64) (oapi.Tags, erro
|
|||
// return &oapi_studio, nil
|
||||
// }
|
||||
|
||||
func (s Server) GetTitlesTitleId(ctx context.Context, request oapi.GetTitlesTitleIdRequestObject) (oapi.GetTitlesTitleIdResponseObject, error) {
|
||||
func (s Server) GetTitle(ctx context.Context, request oapi.GetTitleRequestObject) (oapi.GetTitleResponseObject, error) {
|
||||
var oapi_title oapi.Title
|
||||
|
||||
sqlc_title, err := s.db.GetTitleByID(ctx, request.TitleId)
|
||||
if err != nil {
|
||||
if err == pgx.ErrNoRows {
|
||||
return oapi.GetTitlesTitleId204Response{}, nil
|
||||
return oapi.GetTitle204Response{}, nil
|
||||
}
|
||||
log.Errorf("%v", err)
|
||||
return oapi.GetTitlesTitleId500Response{}, nil
|
||||
return oapi.GetTitle500Response{}, nil
|
||||
}
|
||||
|
||||
oapi_title, err = s.mapTitle(sqlc_title)
|
||||
if err != nil {
|
||||
log.Errorf("%v", err)
|
||||
return oapi.GetTitlesTitleId500Response{}, nil
|
||||
return oapi.GetTitle500Response{}, nil
|
||||
}
|
||||
|
||||
return oapi.GetTitlesTitleId200JSONResponse(oapi_title), nil
|
||||
return oapi.GetTitle200JSONResponse(oapi_title), nil
|
||||
}
|
||||
|
||||
func (s Server) GetTitles(ctx context.Context, request oapi.GetTitlesRequestObject) (oapi.GetTitlesResponseObject, error) {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ import (
|
|||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
const (
|
||||
pgErrDuplicateKey = "23505"
|
||||
)
|
||||
|
||||
func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
|
||||
i := oapi.Image{
|
||||
Id: u.AvatarID,
|
||||
|
|
@ -37,24 +41,24 @@ func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (s Server) GetUsersUserId(ctx context.Context, req oapi.GetUsersUserIdRequestObject) (oapi.GetUsersUserIdResponseObject, error) {
|
||||
func (s Server) GetUsersId(ctx context.Context, req oapi.GetUsersIdRequestObject) (oapi.GetUsersIdResponseObject, error) {
|
||||
userID, err := parseInt64(req.UserId)
|
||||
if err != nil {
|
||||
return oapi.GetUsersUserId404Response{}, nil
|
||||
return oapi.GetUsersId404Response{}, nil
|
||||
}
|
||||
_user, err := s.db.GetUserByID(context.TODO(), userID)
|
||||
if err != nil {
|
||||
if err == pgx.ErrNoRows {
|
||||
return oapi.GetUsersUserId404Response{}, nil
|
||||
return oapi.GetUsersId404Response{}, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
user, err := mapUser(_user)
|
||||
if err != nil {
|
||||
log.Errorf("%v", err)
|
||||
return oapi.GetUsersUserId500Response{}, err
|
||||
return oapi.GetUsersId500Response{}, err
|
||||
}
|
||||
return oapi.GetUsersUserId200JSONResponse(user), nil
|
||||
return oapi.GetUsersId200JSONResponse(user), nil
|
||||
}
|
||||
|
||||
func sqlDate2oapi(p_date pgtype.Timestamptz) *time.Time {
|
||||
|
|
@ -369,7 +373,7 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
|
|||
if errors.As(err, &pgErr) {
|
||||
// fmt.Println(pgErr.Message) // => syntax error at end of input
|
||||
// fmt.Println(pgErr.Code) // => 42601
|
||||
if pgErr.Code == "23505" { //duplicate key value
|
||||
if pgErr.Code == pgErrDuplicateKey { //duplicate key value
|
||||
return oapi.AddUserTitle409Response{}, nil
|
||||
}
|
||||
} else {
|
||||
|
|
@ -405,7 +409,19 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
|
|||
|
||||
// DeleteUserTitle implements oapi.StrictServerInterface.
|
||||
func (s Server) DeleteUserTitle(ctx context.Context, request oapi.DeleteUserTitleRequestObject) (oapi.DeleteUserTitleResponseObject, error) {
|
||||
panic("unimplemented")
|
||||
params := sqlc.DeleteUserTitleParams{
|
||||
UserID: request.UserId,
|
||||
TitleID: request.Params.TitleId,
|
||||
}
|
||||
_, err := s.db.DeleteUserTitle(ctx, params)
|
||||
if err != nil {
|
||||
if err == pgx.ErrNoRows {
|
||||
return oapi.DeleteUserTitle404Response{}, nil
|
||||
}
|
||||
log.Errorf("%v", err)
|
||||
return oapi.DeleteUserTitle500Response{}, nil
|
||||
}
|
||||
return oapi.DeleteUserTitle200Response{}, nil
|
||||
}
|
||||
|
||||
// UpdateUserTitle implements oapi.StrictServerInterface.
|
||||
|
|
|
|||
|
|
@ -57,17 +57,6 @@ VALUES (
|
|||
sqlc.arg('tag_names')::jsonb)
|
||||
RETURNING id, tag_names;
|
||||
|
||||
-- -- name: ListUsers :many
|
||||
-- SELECT user_id, avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date
|
||||
-- FROM users
|
||||
-- ORDER BY user_id
|
||||
-- LIMIT $1 OFFSET $2;
|
||||
|
||||
-- -- name: CreateUser :one
|
||||
-- INSERT INTO users (avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date)
|
||||
-- VALUES ($1, $2, $3, $4, $5, $6, $7)
|
||||
-- RETURNING user_id, avatar_id, nickname, disp_name, user_desc, creation_date;
|
||||
|
||||
-- name: UpdateUser :one
|
||||
UPDATE users
|
||||
SET
|
||||
|
|
@ -78,10 +67,6 @@ SET
|
|||
WHERE id = sqlc.arg('user_id')
|
||||
RETURNING id, avatar_id, nickname, disp_name, user_desc, creation_date, mail;
|
||||
|
||||
-- -- name: DeleteUser :exec
|
||||
-- DELETE FROM users
|
||||
-- WHERE user_id = $1;
|
||||
|
||||
-- name: GetTitleByID :one
|
||||
-- sqlc.struct: TitlesFull
|
||||
SELECT
|
||||
|
|
@ -378,78 +363,11 @@ ORDER BY
|
|||
|
||||
LIMIT COALESCE(sqlc.narg('limit')::int, 100); -- 100 is default limit
|
||||
|
||||
-- -- name: ListTitles :many
|
||||
-- SELECT title_id, title_names, studio_id, poster_id, signal_ids,
|
||||
-- title_status, rating, rating_count, release_year, release_season,
|
||||
-- season, episodes_aired, episodes_all, episodes_len
|
||||
-- FROM titles
|
||||
-- ORDER BY title_id
|
||||
-- LIMIT $1 OFFSET $2;
|
||||
|
||||
-- -- name: UpdateTitle :one
|
||||
-- UPDATE titles
|
||||
-- SET
|
||||
-- title_names = COALESCE(sqlc.narg('title_names'), title_names),
|
||||
-- studio_id = COALESCE(sqlc.narg('studio_id'), studio_id),
|
||||
-- poster_id = COALESCE(sqlc.narg('poster_id'), poster_id),
|
||||
-- signal_ids = COALESCE(sqlc.narg('signal_ids'), signal_ids),
|
||||
-- title_status = COALESCE(sqlc.narg('title_status'), title_status),
|
||||
-- release_year = COALESCE(sqlc.narg('release_year'), release_year),
|
||||
-- release_season = COALESCE(sqlc.narg('release_season'), release_season),
|
||||
-- episodes_aired = COALESCE(sqlc.narg('episodes_aired'), episodes_aired),
|
||||
-- episodes_all = COALESCE(sqlc.narg('episodes_all'), episodes_all),
|
||||
-- episodes_len = COALESCE(sqlc.narg('episodes_len'), episodes_len)
|
||||
-- WHERE title_id = sqlc.arg('title_id')
|
||||
-- RETURNING *;
|
||||
|
||||
-- name: GetReviewByID :one
|
||||
SELECT *
|
||||
FROM reviews
|
||||
WHERE review_id = sqlc.arg('review_id')::bigint;
|
||||
|
||||
-- -- 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;
|
||||
|
||||
-- name: InsertUserTitle :one
|
||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||
VALUES (
|
||||
|
|
@ -470,4 +388,10 @@ SET
|
|||
WHERE
|
||||
user_id = sqlc.arg('user_id')
|
||||
AND title_id = sqlc.arg('title_id')
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteUserTitle :one
|
||||
DELETE FROM usertitles
|
||||
WHERE user_id = sqlc.arg('user_id')
|
||||
AND title_id = sqlc.arg('title_id')
|
||||
RETURNING *;
|
||||
Loading…
Add table
Add a link
Reference in a new issue