28 lines
656 B
Go
28 lines
656 B
Go
package db
|
|
|
|
type GistLanguage struct {
|
|
GistID uint `gorm:"primaryKey"`
|
|
Language string `gorm:"primaryKey;size:100"`
|
|
}
|
|
|
|
func GetGistLanguagesForUser(fromUserId, currentUserId uint) ([]struct {
|
|
Language string
|
|
Count int64
|
|
}, error) {
|
|
var results []struct {
|
|
Language string
|
|
Count int64
|
|
}
|
|
|
|
err := gistsFromUserStatement(fromUserId, currentUserId).Model(&GistLanguage{}).
|
|
Select("language, count(*) as count").
|
|
Joins("JOIN gists ON gists.id = gist_languages.gist_id").
|
|
Where("gists.user_id = ?", fromUserId).
|
|
Group("language").
|
|
Order("count DESC").
|
|
Limit(15). // Added limit of 15
|
|
Find(&results).Error
|
|
|
|
return results, err
|
|
}
|