87 lines
1.8 KiB
Go
87 lines
1.8 KiB
Go
package repositories
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
|
|
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/logger"
|
|
|
|
"gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/storage"
|
|
)
|
|
|
|
type commentsRepository struct {
|
|
db *sql.DB
|
|
logger *logger.Logger
|
|
}
|
|
|
|
func NewCommentsRepository(db *sql.DB) CommentRepository {
|
|
return &commentsRepository{
|
|
db: db,
|
|
logger: logger.New(false),
|
|
}
|
|
}
|
|
|
|
func (c *commentsRepository) CreateComment(
|
|
ctx context.Context,
|
|
comment *storage.CommentCreate,
|
|
) error {
|
|
_, err := c.db.Exec(
|
|
"INSERT INTO comments(content, post_id) VALUES(?, ?, ?)",
|
|
comment.Content,
|
|
comment.PostID,
|
|
comment.UserID,
|
|
)
|
|
if err != nil {
|
|
c.logger.Error("error insert: " + err.Error())
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (c *commentsRepository) GetAllComments(ctx context.Context) ([]storage.Comment, error) {
|
|
var result []storage.Comment
|
|
rows, err := c.db.Query("SELECT id, content, post_id, user_id, created_at FROM comments")
|
|
if err != nil {
|
|
c.logger.Error("error scan " + err.Error())
|
|
return nil, err
|
|
}
|
|
for rows.Next() {
|
|
var id int
|
|
var content string
|
|
var postID int
|
|
var userID int
|
|
var createdAt string
|
|
err := rows.Scan(&id, &content, &postID, &userID, &createdAt)
|
|
if err != nil {
|
|
c.logger.Error("error scan: " + err.Error())
|
|
}
|
|
result = append(result, storage.Comment{
|
|
ID: id,
|
|
Content: content,
|
|
PostID: postID,
|
|
UserID: userID,
|
|
CreatedAt: createdAt,
|
|
})
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
func (c *commentsRepository) GetCommentsOfPost(
|
|
ctx context.Context,
|
|
id int,
|
|
) ([]storage.Comment, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (c *commentsRepository) DeleteComment(ctx context.Context, id int) error {
|
|
return nil
|
|
}
|
|
|
|
func (c *commentsRepository) UpdateComment(
|
|
ctx context.Context,
|
|
id int,
|
|
comment *storage.Comment,
|
|
) error {
|
|
return nil
|
|
}
|