WEB - ADD COMMENTS ON ISSUES

This commit is contained in:
Ine Maria Nilssen Aanonsen
2026-02-20 17:02:10 +01:00
parent bb059ad8d8
commit 4ad08b3720
7 changed files with 109 additions and 99 deletions

View File

@@ -3,7 +3,6 @@ package service
import (
"context"
"fmt"
"time"
"github.com/LazyBachelor/LazyPM/internal/models"
@@ -54,49 +53,25 @@ func (s *BeadsService) DeleteIssues() error {
}
func (s *BeadsService) GetComments(ctx context.Context, issueID string) ([]models.Comment, error) {
query := `SELECT id, issue_id, author, text, created_at FROM comments WHERE issue_id = ? ORDER BY created_at ASC`
rows, err := s.UnderlyingDB().QueryContext(ctx, query, issueID)
commentsPtr, err := s.Storage.GetIssueComments(ctx, issueID)
if err != nil {
return nil, err
}
defer rows.Close()
var comments []models.Comment
for rows.Next() {
var c models.Comment
if err := rows.Scan(&c.ID, &c.IssueID, &c.Author, &c.Text, &c.CreatedAt); err != nil {
return nil, err
}
comments = append(comments, c)
if len(commentsPtr) == 0 {
return []models.Comment{}, nil
}
if err := rows.Err(); err != nil {
return nil, err
comments := make([]models.Comment, 0, len(commentsPtr))
for _, c := range commentsPtr {
if c != nil {
comments = append(comments, *c)
}
}
return comments, nil
}
func (s *BeadsService) AddComment(ctx context.Context, issueID, author, text string) (*models.Comment, error) {
query := `INSERT INTO comments (issue_id, author, text, created_at) VALUES (?, ?, ?, ?)`
createdAt := time.Now()
result, err := s.UnderlyingDB().ExecContext(ctx, query, issueID, author, text, createdAt)
if err != nil {
return nil, err
}
id, err := result.LastInsertId()
if err != nil {
return nil, err
}
return &models.Comment{
ID: id,
IssueID: issueID,
Author: author,
Text: text,
CreatedAt: createdAt,
}, nil
return s.Storage.AddIssueComment(ctx, issueID, author, text)
}