21 lines
468 B
Go
21 lines
468 B
Go
package adsrepository
|
|
|
|
import (
|
|
"fmt"
|
|
adsdomain "legalgo-BE-go/internal/domain/ads"
|
|
)
|
|
|
|
func (a *accessor) GetAll() ([]adsdomain.AdsResponse, error) {
|
|
var ads []adsdomain.AdsResponse
|
|
|
|
if err := a.db.Table("ads").
|
|
Select("ads.*, COUNT(log_ads.content_id) as clicked").
|
|
Joins("LEFT JOIN log_ads ON log_ads.content_id = ads.id").
|
|
Group("ads.id").
|
|
Scan(&ads).Error; err != nil {
|
|
return ads, fmt.Errorf("failed to get all ads: %v", err)
|
|
}
|
|
|
|
return ads, nil
|
|
}
|