upvotes models
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing

This commit is contained in:
2024-04-23 20:24:35 +03:00
parent 3ab98cf500
commit d56846b1cb
3 changed files with 22 additions and 11 deletions

View File

@@ -1,4 +1,7 @@
#!make #!make
include ~/envs/gerald.env
export
PROJECT_NAME=gerald PROJECT_NAME=gerald
spec_path = ./api/$(PROJECT_NAME).yaml spec_path = ./api/$(PROJECT_NAME).yaml

View File

@@ -19,7 +19,7 @@ func NewDB(
logger zerolog.Logger, logger zerolog.Logger,
) *DB { ) *DB {
return &DB{ return &DB{
Feedback: NewFeedback(db), Feedback: NewFeedback(db, logger),
logger: logger, logger: logger,
} }
} }

View File

@@ -2,16 +2,22 @@ package pg
import ( import (
"gerald/internal/models" "gerald/internal/models"
"github.com/rs/zerolog"
"gorm.io/gorm" "gorm.io/gorm"
) )
type Feedback struct { 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{ 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 var tickets []*models.Feedback
res := t.db. res := t.db.
Preload("Upvote").
Where("session_uuid = ?", sessionID). Where("session_uuid = ?", sessionID).
Find(&tickets) Find(&tickets)
if res.Error != nil { 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) { func (t *Feedback) GetByUUID(uuid string) (*models.Feedback, error) {
var ticket models.Feedback var feedback models.Feedback
res := t.db. res := t.db.
Preload("Vote"). Preload("Upvote").
Where("uuid = ?", uuid). Where("uuid = ?", uuid).
First(&ticket) First(&feedback)
if res.Error != nil { if res.Error != nil {
return nil, res.Error return nil, res.Error
} }
return &ticket, nil return &feedback, nil
} }
func (t *Feedback) GetByProjectID(projectID string) ([]*models.Feedback, error) { func (t *Feedback) GetByProjectID(projectID string) ([]*models.Feedback, error) {
var tickets []*models.Feedback var feedbacks []*models.Feedback
res := t.db. res := t.db.
Preload("Upvote").
Where("project_id = ?", projectID). Where("project_id = ?", projectID).
Where("type = ?", models.FeedbackTypeFeature). Where("type = ?", models.FeedbackTypeFeature).
Find(&tickets) Find(&feedbacks)
if res.Error != nil { if res.Error != nil {
return nil, res.Error return nil, res.Error
} }
return tickets, nil return feedbacks, nil
} }
func (t *Feedback) CreateUpvote(upvote *models.Upvote) error { func (t *Feedback) CreateUpvote(upvote *models.Upvote) error {