feat: query for update usertitle

This commit is contained in:
Iron_Felix 2025-11-27 07:08:06 +03:00
parent f2589e05e8
commit 658d666fec
3 changed files with 49 additions and 19 deletions

View file

@ -179,6 +179,6 @@ END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER set_ctime_on_update
AFTER UPDATE ON usertitles
BEFORE UPDATE ON usertitles
FOR EACH ROW
EXECUTE FUNCTION set_ctime();

View file

@ -925,3 +925,41 @@ func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (UpdateU
)
return i, err
}
const updateUserTitle = `-- name: UpdateUserTitle :one
UPDATE usertitles
SET
status = COALESCE($1::usertitle_status_t, status),
rate = COALESCE($2::int, rate)
WHERE
user_id = $3
AND title_id = $4
RETURNING user_id, title_id, status, rate, review_id, ctime
`
type UpdateUserTitleParams struct {
Status NullUsertitleStatusT `json:"status"`
Rate *int32 `json:"rate"`
UserID int64 `json:"user_id"`
TitleID int64 `json:"title_id"`
}
// Fails with sql.ErrNoRows if (user_id, title_id) not found
func (q *Queries) UpdateUserTitle(ctx context.Context, arg UpdateUserTitleParams) (Usertitle, error) {
row := q.db.QueryRow(ctx, updateUserTitle,
arg.Status,
arg.Rate,
arg.UserID,
arg.TitleID,
)
var i Usertitle
err := row.Scan(
&i.UserID,
&i.TitleID,
&i.Status,
&i.Rate,
&i.ReviewID,
&i.Ctime,
)
return i, err
}