feat: update logic for update query to db for posts

This commit is contained in:
d3m0k1d
2026-02-15 01:11:59 +03:00
parent a96ef069cc
commit 51f8a125e9
4 changed files with 39 additions and 12 deletions

View File

@@ -3,6 +3,7 @@ package repositories
import (
"context"
"database/sql"
"strings"
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/logger"
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/storage"
@@ -78,17 +79,29 @@ func (p *postRepository) Create(ctx context.Context, post storage.Post) error {
}
func (p *postRepository) Update(ctx context.Context, id int, post storage.Post) error {
_, err := p.db.Exec(
"UPDATE posts SET title = ?, content = ? WHERE id = ?",
post.Title,
post.Content,
id,
)
if err != nil {
return err
query := "UPDATE posts SET "
args := []interface{}{}
updates := []string{}
if post.Title != "" {
updates = append(updates, "title = ?")
args = append(args, post.Title)
}
p.logger.Info("Post updated:", "id", id)
return nil
if post.Content != "" {
updates = append(updates, "content = ?")
args = append(args, post.Content)
}
updates = append(updates, "published = ?")
args = append(args, post.Published)
updates = append(updates, "updated_at = CURRENT_TIMESTAMP")
query += strings.Join(updates, ", ")
query += " WHERE id = ?"
args = append(args, id)
_, err := p.db.ExecContext(ctx, query, args...)
return err
}
func (p *postRepository) Delete(ctx context.Context, id int) error {
@@ -122,5 +135,3 @@ func (p *postRepository) IsExist(ctx context.Context, id int) bool {
}
return true
}
// TODO: Add query for change published status