1
0
Fork 0
mirror of https://github.com/binwiederhier/ntfy.git synced 2025-06-23 04:48:03 +02:00

Tests for /access endpoints

This commit is contained in:
binwiederhier 2023-01-06 10:45:38 -05:00
parent a51d95743a
commit ac4042ca04
5 changed files with 198 additions and 40 deletions

View file

@ -145,6 +145,13 @@ const (
FROM user_access
WHERE user_id = owner_user_id AND owner_user_id = (SELECT id FROM user WHERE user = ?)
`
selectUserHasReservationQuery = `
SELECT COUNT(*)
FROM user_access
WHERE user_id = owner_user_id
AND owner_user_id = (SELECT id FROM user WHERE user = ?)
AND topic = ?
`
selectOtherAccessCountQuery = `
SELECT COUNT(*)
FROM user_access
@ -604,6 +611,23 @@ func (a *Manager) Reservations(username string) ([]Reservation, error) {
return reservations, nil
}
// HasReservation returns true if the given topic access is owned by the user
func (a *Manager) HasReservation(username, topic string) (bool, error) {
rows, err := a.db.Query(selectUserHasReservationQuery, username, topic)
if err != nil {
return false, err
}
defer rows.Close()
if !rows.Next() {
return false, errNoRows
}
var count int64
if err := rows.Scan(&count); err != nil {
return false, err
}
return count > 0, nil
}
// ReservationsCount returns the number of reservations owned by this user
func (a *Manager) ReservationsCount(username string) (int64, error) {
rows, err := a.db.Query(selectUserReservationsCountQuery, username)