upvotes models
This commit is contained in:
3
Makefile
3
Makefile
@@ -1,4 +1,7 @@
|
||||
#!make
|
||||
include ~/envs/gerald.env
|
||||
export
|
||||
|
||||
PROJECT_NAME=gerald
|
||||
|
||||
spec_path = ./api/$(PROJECT_NAME).yaml
|
||||
|
||||
@@ -19,7 +19,7 @@ func NewDB(
|
||||
logger zerolog.Logger,
|
||||
) *DB {
|
||||
return &DB{
|
||||
Feedback: NewFeedback(db),
|
||||
Feedback: NewFeedback(db, logger),
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,16 +2,22 @@ package pg
|
||||
|
||||
import (
|
||||
"gerald/internal/models"
|
||||
"github.com/rs/zerolog"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Feedback struct {
|
||||
db *gorm.DB
|
||||
db *gorm.DB
|
||||
logger zerolog.Logger
|
||||
}
|
||||
|
||||
func NewFeedback(db *gorm.DB) *Feedback {
|
||||
func NewFeedback(
|
||||
db *gorm.DB,
|
||||
logger zerolog.Logger,
|
||||
) *Feedback {
|
||||
return &Feedback{
|
||||
db: db,
|
||||
db: db,
|
||||
logger: logger.With().Str("package", "pg").Str("service", "feedback").Logger(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +29,7 @@ func (t *Feedback) GetBySessionID(sessionID string) ([]*models.Feedback, error)
|
||||
var tickets []*models.Feedback
|
||||
|
||||
res := t.db.
|
||||
Preload("Upvote").
|
||||
Where("session_uuid = ?", sessionID).
|
||||
Find(&tickets)
|
||||
if res.Error != nil {
|
||||
@@ -33,31 +40,32 @@ func (t *Feedback) GetBySessionID(sessionID string) ([]*models.Feedback, error)
|
||||
}
|
||||
|
||||
func (t *Feedback) GetByUUID(uuid string) (*models.Feedback, error) {
|
||||
var ticket models.Feedback
|
||||
var feedback models.Feedback
|
||||
|
||||
res := t.db.
|
||||
Preload("Vote").
|
||||
Preload("Upvote").
|
||||
Where("uuid = ?", uuid).
|
||||
First(&ticket)
|
||||
First(&feedback)
|
||||
if res.Error != nil {
|
||||
return nil, res.Error
|
||||
}
|
||||
|
||||
return &ticket, nil
|
||||
return &feedback, nil
|
||||
}
|
||||
|
||||
func (t *Feedback) GetByProjectID(projectID string) ([]*models.Feedback, error) {
|
||||
var tickets []*models.Feedback
|
||||
var feedbacks []*models.Feedback
|
||||
|
||||
res := t.db.
|
||||
Preload("Upvote").
|
||||
Where("project_id = ?", projectID).
|
||||
Where("type = ?", models.FeedbackTypeFeature).
|
||||
Find(&tickets)
|
||||
Find(&feedbacks)
|
||||
if res.Error != nil {
|
||||
return nil, res.Error
|
||||
}
|
||||
|
||||
return tickets, nil
|
||||
return feedbacks, nil
|
||||
}
|
||||
|
||||
func (t *Feedback) CreateUpvote(upvote *models.Upvote) error {
|
||||
|
||||
Reference in New Issue
Block a user