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

@@ -455,6 +455,9 @@ const docTemplate = `{
"id": {
"type": "integer"
},
"published": {
"type": "boolean"
},
"title": {
"type": "string"
}
@@ -466,6 +469,9 @@ const docTemplate = `{
"content": {
"type": "string"
},
"published": {
"type": "boolean"
},
"title": {
"type": "string"
}

View File

@@ -444,6 +444,9 @@
"id": {
"type": "integer"
},
"published": {
"type": "boolean"
},
"title": {
"type": "string"
}
@@ -455,6 +458,9 @@
"content": {
"type": "string"
},
"published": {
"type": "boolean"
},
"title": {
"type": "string"
}

View File

@@ -25,6 +25,8 @@ definitions:
type: string
id:
type: integer
published:
type: boolean
title:
type: string
type: object
@@ -32,6 +34,8 @@ definitions:
properties:
content:
type: string
published:
type: boolean
title:
type: string
type: object

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