fix(db): add 14 missing columns to UpdateMediaItem query
The UpdateMediaItem SQL query only SET 23 of 37 media_items columns, causing all 3 call sites (admin PUT, bulk update, force rescan) to silently NULL out the 14 unwired fields on every update. Added: manga_type, reading_direction, series_count, volume, imprint, age_rating, web_url, metadata_notes, community_rating, story_arc, is_black_and_white, alternate_info, scan_information, summary. Regenerated sqlc Go code (queries.sql.go) with 37-param UpdateMediaItemParams struct.
This commit is contained in:
@@ -9773,35 +9773,63 @@ UPDATE media_items SET
|
|||||||
goodreads_id = $21,
|
goodreads_id = $21,
|
||||||
openlibrary_id = $22,
|
openlibrary_id = $22,
|
||||||
google_books_id = $23,
|
google_books_id = $23,
|
||||||
|
manga_type = $24,
|
||||||
|
reading_direction = $25,
|
||||||
|
series_count = $26,
|
||||||
|
volume = $27,
|
||||||
|
imprint = $28,
|
||||||
|
age_rating = $29,
|
||||||
|
web_url = $30,
|
||||||
|
metadata_notes = $31,
|
||||||
|
community_rating = $32,
|
||||||
|
story_arc = $33,
|
||||||
|
is_black_and_white = $34,
|
||||||
|
alternate_info = $35,
|
||||||
|
scan_information = $36,
|
||||||
|
summary = $37,
|
||||||
updated_at = NOW()
|
updated_at = NOW()
|
||||||
WHERE id = $1
|
WHERE id = $1
|
||||||
RETURNING id, library_id, title, author, isbn, description, file_path, file_size, mime_type, cover_image_path, series, series_number, tags, asin, date_published, publisher, contributors, language, edition, page_count, genre, copyright_year, goodreads_id, openlibrary_id, google_books_id, added_by_admin_id, created_at, updated_at, format_group, format_mimetype, is_reflowable, has_fixed_layout, total_characters, chapter_count, entitlement_id, revision_number, kobo_content_id, kobo_metadata, manga_type, reading_direction, series_count, volume, imprint, age_rating, web_url, story_arc, is_black_and_white, metadata_notes, community_rating, alternate_info, scan_information, summary, chapter_metadata, library_type_name, tags_search, contributors_search, file_sha256, opf_identifier, opf_uuid, hash_confidence
|
RETURNING id, library_id, title, author, isbn, description, file_path, file_size, mime_type, cover_image_path, series, series_number, tags, asin, date_published, publisher, contributors, language, edition, page_count, genre, copyright_year, goodreads_id, openlibrary_id, google_books_id, added_by_admin_id, created_at, updated_at, format_group, format_mimetype, is_reflowable, has_fixed_layout, total_characters, chapter_count, entitlement_id, revision_number, kobo_content_id, kobo_metadata, manga_type, reading_direction, series_count, volume, imprint, age_rating, web_url, story_arc, is_black_and_white, metadata_notes, community_rating, alternate_info, scan_information, summary, chapter_metadata, library_type_name, tags_search, contributors_search, file_sha256, opf_identifier, opf_uuid, hash_confidence
|
||||||
`
|
`
|
||||||
|
|
||||||
type UpdateMediaItemParams struct {
|
type UpdateMediaItemParams struct {
|
||||||
ID pgtype.UUID `db:"id" json:"id"`
|
ID pgtype.UUID `db:"id" json:"id"`
|
||||||
Title string `db:"title" json:"title"`
|
Title string `db:"title" json:"title"`
|
||||||
Author pgtype.Text `db:"author" json:"author"`
|
Author pgtype.Text `db:"author" json:"author"`
|
||||||
Isbn pgtype.Text `db:"isbn" json:"isbn"`
|
Isbn pgtype.Text `db:"isbn" json:"isbn"`
|
||||||
Description pgtype.Text `db:"description" json:"description"`
|
Description pgtype.Text `db:"description" json:"description"`
|
||||||
CoverImagePath pgtype.Text `db:"cover_image_path" json:"cover_image_path"`
|
CoverImagePath pgtype.Text `db:"cover_image_path" json:"cover_image_path"`
|
||||||
Series pgtype.Text `db:"series" json:"series"`
|
Series pgtype.Text `db:"series" json:"series"`
|
||||||
SeriesNumber pgtype.Int4 `db:"series_number" json:"series_number"`
|
SeriesNumber pgtype.Int4 `db:"series_number" json:"series_number"`
|
||||||
Tags []string `db:"tags" json:"tags"`
|
Tags []string `db:"tags" json:"tags"`
|
||||||
TagsSearch []string `db:"tags_search" json:"tags_search"`
|
TagsSearch []string `db:"tags_search" json:"tags_search"`
|
||||||
Asin pgtype.Text `db:"asin" json:"asin"`
|
Asin pgtype.Text `db:"asin" json:"asin"`
|
||||||
DatePublished pgtype.Date `db:"date_published" json:"date_published"`
|
DatePublished pgtype.Date `db:"date_published" json:"date_published"`
|
||||||
Publisher pgtype.Text `db:"publisher" json:"publisher"`
|
Publisher pgtype.Text `db:"publisher" json:"publisher"`
|
||||||
Contributors []string `db:"contributors" json:"contributors"`
|
Contributors []string `db:"contributors" json:"contributors"`
|
||||||
ContributorsSearch []string `db:"contributors_search" json:"contributors_search"`
|
ContributorsSearch []string `db:"contributors_search" json:"contributors_search"`
|
||||||
Language pgtype.Text `db:"language" json:"language"`
|
Language pgtype.Text `db:"language" json:"language"`
|
||||||
Edition pgtype.Text `db:"edition" json:"edition"`
|
Edition pgtype.Text `db:"edition" json:"edition"`
|
||||||
PageCount pgtype.Int4 `db:"page_count" json:"page_count"`
|
PageCount pgtype.Int4 `db:"page_count" json:"page_count"`
|
||||||
Genre pgtype.Text `db:"genre" json:"genre"`
|
Genre pgtype.Text `db:"genre" json:"genre"`
|
||||||
CopyrightYear pgtype.Int4 `db:"copyright_year" json:"copyright_year"`
|
CopyrightYear pgtype.Int4 `db:"copyright_year" json:"copyright_year"`
|
||||||
GoodreadsID pgtype.Text `db:"goodreads_id" json:"goodreads_id"`
|
GoodreadsID pgtype.Text `db:"goodreads_id" json:"goodreads_id"`
|
||||||
OpenlibraryID pgtype.Text `db:"openlibrary_id" json:"openlibrary_id"`
|
OpenlibraryID pgtype.Text `db:"openlibrary_id" json:"openlibrary_id"`
|
||||||
GoogleBooksID pgtype.Text `db:"google_books_id" json:"google_books_id"`
|
GoogleBooksID pgtype.Text `db:"google_books_id" json:"google_books_id"`
|
||||||
|
MangaType pgtype.Text `db:"manga_type" json:"manga_type"`
|
||||||
|
ReadingDirection pgtype.Text `db:"reading_direction" json:"reading_direction"`
|
||||||
|
SeriesCount pgtype.Int4 `db:"series_count" json:"series_count"`
|
||||||
|
Volume pgtype.Int4 `db:"volume" json:"volume"`
|
||||||
|
Imprint pgtype.Text `db:"imprint" json:"imprint"`
|
||||||
|
AgeRating pgtype.Text `db:"age_rating" json:"age_rating"`
|
||||||
|
WebUrl pgtype.Text `db:"web_url" json:"web_url"`
|
||||||
|
MetadataNotes pgtype.Text `db:"metadata_notes" json:"metadata_notes"`
|
||||||
|
CommunityRating pgtype.Float8 `db:"community_rating" json:"community_rating"`
|
||||||
|
StoryArc pgtype.Text `db:"story_arc" json:"story_arc"`
|
||||||
|
IsBlackAndWhite pgtype.Bool `db:"is_black_and_white" json:"is_black_and_white"`
|
||||||
|
AlternateInfo []byte `db:"alternate_info" json:"alternate_info"`
|
||||||
|
ScanInformation pgtype.Text `db:"scan_information" json:"scan_information"`
|
||||||
|
Summary pgtype.Text `db:"summary" json:"summary"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Queries) UpdateMediaItem(ctx context.Context, arg UpdateMediaItemParams) (MediaItems, error) {
|
func (q *Queries) UpdateMediaItem(ctx context.Context, arg UpdateMediaItemParams) (MediaItems, error) {
|
||||||
@@ -9829,6 +9857,20 @@ func (q *Queries) UpdateMediaItem(ctx context.Context, arg UpdateMediaItemParams
|
|||||||
arg.GoodreadsID,
|
arg.GoodreadsID,
|
||||||
arg.OpenlibraryID,
|
arg.OpenlibraryID,
|
||||||
arg.GoogleBooksID,
|
arg.GoogleBooksID,
|
||||||
|
arg.MangaType,
|
||||||
|
arg.ReadingDirection,
|
||||||
|
arg.SeriesCount,
|
||||||
|
arg.Volume,
|
||||||
|
arg.Imprint,
|
||||||
|
arg.AgeRating,
|
||||||
|
arg.WebUrl,
|
||||||
|
arg.MetadataNotes,
|
||||||
|
arg.CommunityRating,
|
||||||
|
arg.StoryArc,
|
||||||
|
arg.IsBlackAndWhite,
|
||||||
|
arg.AlternateInfo,
|
||||||
|
arg.ScanInformation,
|
||||||
|
arg.Summary,
|
||||||
)
|
)
|
||||||
var i MediaItems
|
var i MediaItems
|
||||||
err := row.Scan(
|
err := row.Scan(
|
||||||
|
|||||||
@@ -249,6 +249,20 @@ UPDATE media_items SET
|
|||||||
goodreads_id = $21,
|
goodreads_id = $21,
|
||||||
openlibrary_id = $22,
|
openlibrary_id = $22,
|
||||||
google_books_id = $23,
|
google_books_id = $23,
|
||||||
|
manga_type = $24,
|
||||||
|
reading_direction = $25,
|
||||||
|
series_count = $26,
|
||||||
|
volume = $27,
|
||||||
|
imprint = $28,
|
||||||
|
age_rating = $29,
|
||||||
|
web_url = $30,
|
||||||
|
metadata_notes = $31,
|
||||||
|
community_rating = $32,
|
||||||
|
story_arc = $33,
|
||||||
|
is_black_and_white = $34,
|
||||||
|
alternate_info = $35,
|
||||||
|
scan_information = $36,
|
||||||
|
summary = $37,
|
||||||
updated_at = NOW()
|
updated_at = NOW()
|
||||||
WHERE id = $1
|
WHERE id = $1
|
||||||
RETURNING *;
|
RETURNING *;
|
||||||
|
|||||||
Reference in New Issue
Block a user