commento/api/comment_statistics.go

37 lines
919 B
Go
Raw Normal View History

2018-06-04 00:05:44 +08:00
package main
2018-06-11 01:43:42 +08:00
import ()
2018-06-04 00:05:44 +08:00
func commentStatistics(domain string) ([]int64, error) {
statement := `
SELECT COUNT(comments.creationDate)
FROM (
SELECT to_char(date_trunc('day', (current_date - offs)), 'YYYY-MM-DD') AS date
FROM generate_series(0, 30, 1) AS offs
) gen LEFT OUTER JOIN comments
ON gen.date = to_char(date_trunc('day', comments.creationDate), 'YYYY-MM-DD') AND
comments.domain=$1
GROUP BY gen.date
ORDER BY gen.date;
`
rows, err := db.Query(statement, domain)
if err != nil {
logger.Errorf("cannot get daily views: %v", err)
return []int64{}, errorInternal
}
defer rows.Close()
last30Days := []int64{}
for rows.Next() {
var count int64
if err = rows.Scan(&count); err != nil {
logger.Errorf("cannot get daily comments for the last month: %v", err)
return make([]int64, 0), errorInternal
}
last30Days = append(last30Days, count)
}
return last30Days, nil
}