Merge branch 'dev-ars' into dev
Some checks failed
Build and Deploy Go App / build (push) Failing after 2m53s
Build and Deploy Go App / deploy (push) Has been skipped

This commit is contained in:
nihonium 2025-11-27 12:00:57 +03:00
commit f1e61aee2d
Signed by: nihonium
GPG key ID: 0251623741027CFC
8 changed files with 725 additions and 417 deletions

View file

@ -204,7 +204,7 @@ func (s Server) mapUsertitle(ctx context.Context, t sqlc.SearchUserTitlesRow) (o
return oapi_usertitle, nil
}
func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersUserIdTitlesRequestObject) (oapi.GetUsersUserIdTitlesResponseObject, error) {
func (s Server) GetUserTitles(ctx context.Context, request oapi.GetUserTitlesRequestObject) (oapi.GetUserTitlesResponseObject, error) {
oapi_usertitles := make([]oapi.UserTitle, 0)
@ -213,7 +213,7 @@ func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersU
season, err := ReleaseSeason2sqlc(request.Params.ReleaseSeason)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUsersUserIdTitles400Response{}, err
return oapi.GetUserTitles400Response{}, err
}
// var statuses_sort []string
@ -227,19 +227,19 @@ func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersU
watch_status, err := UserTitleStatus2Sqlc(request.Params.WatchStatus)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUsersUserIdTitles400Response{}, err
return oapi.GetUserTitles400Response{}, err
}
title_statuses, err := TitleStatus2Sqlc(request.Params.Status)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUsersUserIdTitles400Response{}, err
return oapi.GetUserTitles400Response{}, err
}
userID, err := parseInt64(request.UserId)
if err != nil {
log.Errorf("get user titles: %v", err)
return oapi.GetUsersUserIdTitles404Response{}, err
return oapi.GetUserTitles404Response{}, err
}
params := sqlc.SearchUserTitlesParams{
UserID: userID,
@ -265,7 +265,7 @@ func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersU
err := ParseCursorInto(string(*request.Params.Sort), string(*request.Params.Cursor), &params)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUsersUserIdTitles400Response{}, nil
return oapi.GetUserTitles400Response{}, nil
}
}
}
@ -273,10 +273,10 @@ func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersU
titles, err := s.db.SearchUserTitles(ctx, params)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUsersUserIdTitles500Response{}, nil
return oapi.GetUserTitles500Response{}, nil
}
if len(titles) == 0 {
return oapi.GetUsersUserIdTitles204Response{}, nil
return oapi.GetUserTitles204Response{}, nil
}
var new_cursor oapi.CursorObj
@ -286,7 +286,7 @@ func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersU
t, err := s.mapUsertitle(ctx, title)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUsersUserIdTitles500Response{}, nil
return oapi.GetUserTitles500Response{}, nil
}
oapi_usertitles = append(oapi_usertitles, t)
@ -303,7 +303,7 @@ func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersU
}
}
return oapi.GetUsersUserIdTitles200JSONResponse{Cursor: new_cursor, Data: oapi_usertitles}, nil
return oapi.GetUserTitles200JSONResponse{Cursor: new_cursor, Data: oapi_usertitles}, nil
}
func EmailToStringPtr(e *types.Email) *string {
@ -402,7 +402,7 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
func (s Server) DeleteUserTitle(ctx context.Context, request oapi.DeleteUserTitleRequestObject) (oapi.DeleteUserTitleResponseObject, error) {
params := sqlc.DeleteUserTitleParams{
UserID: request.UserId,
TitleID: request.Params.TitleId,
TitleID: request.TitleId,
}
_, err := s.db.DeleteUserTitle(ctx, params)
if err != nil {
@ -427,7 +427,7 @@ func (s Server) UpdateUserTitle(ctx context.Context, request oapi.UpdateUserTitl
Status: status,
Rate: request.Body.Rate,
UserID: request.UserId,
TitleID: request.Body.TitleId,
TitleID: request.TitleId,
}
user_title, err := s.db.UpdateUserTitle(ctx, params)
@ -455,3 +455,33 @@ func (s Server) UpdateUserTitle(ctx context.Context, request oapi.UpdateUserTitl
return oapi.UpdateUserTitle200JSONResponse(oapi_usertitle), nil
}
func (s Server) GetUserTitle(ctx context.Context, request oapi.GetUserTitleRequestObject) (oapi.GetUserTitleResponseObject, error) {
user_title, err := s.db.GetUserTitleByID(ctx, sqlc.GetUserTitleByIDParams{
TitleID: request.TitleId,
UserID: request.UserId,
})
if err != nil {
if err == pgx.ErrNoRows {
return oapi.GetUserTitle404Response{}, nil
} else {
log.Errorf("%v", err)
return oapi.GetUserTitle500Response{}, nil
}
}
oapi_status, err := sql2usertitlestatus(user_title.Status)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUserTitle500Response{}, nil
}
oapi_usertitle := oapi.UserTitleMini{
Ctime: &user_title.Ctime,
Rate: user_title.Rate,
ReviewId: user_title.ReviewID,
Status: oapi_status,
TitleId: *user_title.ID,
UserId: user_title.UserID,
}
return oapi.GetUserTitle200JSONResponse(oapi_usertitle), nil
}

View file

@ -394,4 +394,33 @@ RETURNING *;
DELETE FROM usertitles
WHERE user_id = sqlc.arg('user_id')
AND title_id = sqlc.arg('title_id')
RETURNING *;
RETURNING *;
-- name: GetUserTitleByID :one
SELECT
ut.*,
t.*,
i.storage_type as title_storage_type,
i.image_path as title_image_path,
COALESCE(
jsonb_agg(g.tag_names) FILTER (WHERE g.tag_names IS NOT NULL),
'[]'::jsonb
)::jsonb as tag_names,
s.studio_name as studio_name,
s.illust_id as studio_illust_id,
s.studio_desc as studio_desc,
si.storage_type as studio_storage_type,
si.image_path as studio_image_path
FROM usertitles as ut
LEFT JOIN users as u ON (ut.user_id = u.id)
LEFT JOIN titles as t ON (ut.title_id = t.id)
LEFT JOIN images as i ON (t.poster_id = i.id)
LEFT JOIN title_tags as tt ON (t.id = tt.title_id)
LEFT JOIN tags as g ON (tt.tag_id = g.id)
LEFT JOIN studios as s ON (t.studio_id = s.id)
LEFT JOIN images as si ON (s.illust_id = si.id)
WHERE t.id = sqlc.arg('title_id')::bigint AND u.id = sqlc.arg('user_id')::bigint
GROUP BY
t.id, i.id, s.id, si.id;