1
0
Fork 0
This repository has been archived on 2025-08-23. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
mareshq-backoffice-v2-api/internal/postgres/feedback_repository.go

61 lines
1.8 KiB
Go

package postgres
import (
"database/sql"
"gitlab.mareshq.com/hq/backoffice/backoffice-api/pkg/training"
)
type FeedbackRepository struct {
db *sql.DB
}
func NewFeedbackRepository(db *sql.DB) *FeedbackRepository {
return &FeedbackRepository{db: db}
}
func (r *FeedbackRepository) Get(id training.FeedbackID) (*training.Feedback, error) {
var f training.Feedback
err := r.db.QueryRow("SELECT * FROM feedback WHERE id = $1", id).Scan(&f.ID, &f.AttendeeID, &f.Rating, &f.Comment, &f.IsAnonymous, &f.IsSharingAllowed)
if err != nil {
return nil, err
}
return &f, nil
}
func (r *FeedbackRepository) FindAll() ([]training.Feedback, error) {
rows, err := r.db.Query("SELECT * FROM feedback")
if err != nil {
return nil, err
}
defer rows.Close()
var feedbacks []training.Feedback
for rows.Next() {
var f training.Feedback
err := rows.Scan(&f.ID, &f.AttendeeID, &f.Rating, &f.Comment, &f.IsAnonymous, &f.IsSharingAllowed)
if err != nil {
return nil, err
}
feedbacks = append(feedbacks, f)
}
return feedbacks, nil
}
func (r *FeedbackRepository) Create(f *training.Feedback) error {
_, err := r.db.Exec("INSERT INTO feedback (id, attendee_id, rating, comment, is_anonymous, is_sharing_allowed) VALUES ($1, $2, $3, $4, $5, $6)", f.ID, f.AttendeeID, f.Rating, f.Comment, f.IsAnonymous, f.IsSharingAllowed)
return err
}
func (r *FeedbackRepository) Update(f *training.Feedback) error {
_, err := r.db.Exec("UPDATE feedback SET attendee_id = $2, rating = $3, comment = $4, is_anonymous = $5, is_sharing_allowed = $6 WHERE id = $1", f.ID, f.AttendeeID, f.Rating, f.Comment, f.IsAnonymous, f.IsSharingAllowed)
return err
}
func (r *FeedbackRepository) Delete(id training.FeedbackID) error {
_, err := r.db.Exec("DELETE FROM feedback WHERE id = $1", id)
return err
}