From 44406b02d37119f127a84f4c91b3a235b60299f1 Mon Sep 17 00:00:00 2001 From: d3m0k1d Date: Tue, 3 Feb 2026 19:41:18 +0300 Subject: [PATCH] chore: add code for 2 handlers with GET --- backend/internal/handlers/post_handlers.go | 4 +- backend/internal/repositories/interface.go | 4 +- .../internal/repositories/post_repository.go | 39 ++++++++++++++++--- backend/internal/storage/models.go | 5 +++ 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/backend/internal/handlers/post_handlers.go b/backend/internal/handlers/post_handlers.go index 979185a..3658b8e 100644 --- a/backend/internal/handlers/post_handlers.go +++ b/backend/internal/handlers/post_handlers.go @@ -13,7 +13,7 @@ var log = logger.New(false) // @Tags posts // @Accept json // @Produce json -// @Success 200 {object} []storage.Post +// @Success 200 {object} []storage.PostReq // @Router /api/v1/posts [get] func GetPosts(c *gin.Context) { log.Info("GetPosts") @@ -25,7 +25,7 @@ func GetPosts(c *gin.Context) { // @Tags posts // @Accept json // @Produce json -// @Success 200 {object} storage.Post +// @Success 200 {object} storage.PostReq // @Router /api/v1/posts/{id} [get] func GetPost(c *gin.Context) { log.Info("GetPost") diff --git a/backend/internal/repositories/interface.go b/backend/internal/repositories/interface.go index 7e66d26..c22dc8a 100644 --- a/backend/internal/repositories/interface.go +++ b/backend/internal/repositories/interface.go @@ -7,8 +7,8 @@ import ( ) type PostRepository interface { - GetAll(ctx context.Context) ([]storage.Post, error) - GetByID(ctx context.Context, id int) (storage.Post, error) + GetAll(ctx context.Context) ([]storage.PostReq, error) + GetByID(ctx context.Context, id int) (storage.PostReq, error) Create(ctx context.Context, post storage.Post) error Update(ctx context.Context, id int, post storage.Post) error Delete(ctx context.Context, id int) error diff --git a/backend/internal/repositories/post_repository.go b/backend/internal/repositories/post_repository.go index 4831654..7e60742 100644 --- a/backend/internal/repositories/post_repository.go +++ b/backend/internal/repositories/post_repository.go @@ -19,13 +19,42 @@ func NewPostRepository(db *sql.DB) PostRepository { logger: logger.New(false), } } -func (p *postRepository) GetAll(ctx context.Context) ([]storage.Post, error) { - return nil, nil +func (p *postRepository) GetAll(ctx context.Context) ([]storage.PostReq, error) { + var result []storage.PostReq + rows, err := p.db.Query("SELECT title content FROM posts") + if err != nil { + p.logger.Error(err.Error()) + return nil, err + } + for rows.Next() { + var title string + var content string + err := rows.Scan(&title, &content) + if err != nil { + p.logger.Error("error scan: " + err.Error()) + } + result = append(result, storage.PostReq{ + Title: title, + Content: content, + }) + } + return result, nil } -func (p *postRepository) GetByID(ctx context.Context, id int) (storage.Post, error) { - - return storage.Post{}, nil +func (p *postRepository) GetByID(ctx context.Context, id int) (storage.PostReq, error) { + var result storage.PostReq + row := p.db.QueryRow("SELECT title content FROM posts WHERE id = ?", id) + var title string + var content string + err := row.Scan(&title, &content) + if err != nil { + p.logger.Error("error scan: " + err.Error()) + } + result = storage.PostReq{ + Title: title, + Content: content, + } + return result, nil } func (p *postRepository) Create(ctx context.Context, post storage.Post) error { diff --git a/backend/internal/storage/models.go b/backend/internal/storage/models.go index ab6b536..667956f 100644 --- a/backend/internal/storage/models.go +++ b/backend/internal/storage/models.go @@ -6,3 +6,8 @@ type Post struct { Content string `db:"content"` CreatedAt string `db:"created_at"` } + +type PostReq struct { + Title string `json:"title"` + Content string `json:"content"` +}