|
|
|
@ -189,23 +189,20 @@ func NotificationsForUser(user *User, statuses []NotificationStatus, page, perPa
|
|
|
|
|
return notificationsForUser(x, user, statuses, page, perPage)
|
|
|
|
|
}
|
|
|
|
|
func notificationsForUser(e Engine, user *User, statuses []NotificationStatus, page, perPage int) (notifications []*Notification, err error) {
|
|
|
|
|
// FIXME: Xorm does not support aliases types (like NotificationStatus) on In() method
|
|
|
|
|
s := make([]uint8, len(statuses))
|
|
|
|
|
for i, status := range statuses {
|
|
|
|
|
s[i] = uint8(status)
|
|
|
|
|
if len(statuses) == 0 {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sess := e.
|
|
|
|
|
Where("user_id = ?", user.ID).
|
|
|
|
|
In("status", s).
|
|
|
|
|
In("status", statuses).
|
|
|
|
|
OrderBy("updated_unix DESC")
|
|
|
|
|
|
|
|
|
|
if page > 0 && perPage > 0 {
|
|
|
|
|
sess.Limit(perPage, (page-1)*perPage)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = sess.
|
|
|
|
|
Find(¬ifications)
|
|
|
|
|
err = sess.Find(¬ifications)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|