40 lines
904 B
Go
40 lines
904 B
Go
package common
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
qgen "github.com/Azareal/Gosora/query_gen"
|
|
)
|
|
|
|
type BlockStore interface {
|
|
IsBlockedBy(blocker int, blockee int) (bool, error)
|
|
}
|
|
|
|
type DefaultBlockStore struct {
|
|
isBlocked *sql.Stmt
|
|
}
|
|
|
|
func NewDefaultBlockStore(acc *qgen.Accumulator) (*DefaultBlockStore, error) {
|
|
return &DefaultBlockStore{
|
|
isBlocked: acc.Select("users_blocks").Cols("blocker").Where("blocker = ? AND blockedUser = ?").Prepare(),
|
|
}, acc.FirstError()
|
|
}
|
|
|
|
func (s *DefaultBlockStore) IsBlockedBy(blocker int, blockee int) (bool, error) {
|
|
err := s.isBlocked.QueryRow(blocker, blockee).Scan(&blocker)
|
|
if err != nil && err != ErrNoRows {
|
|
return false, err
|
|
}
|
|
return err != ErrNoRows, nil
|
|
}
|
|
|
|
type FriendStore interface {
|
|
}
|
|
|
|
type DefaultFriendStore struct {
|
|
}
|
|
|
|
func NewDefaultFriendStore(acc *qgen.Accumulator) (*DefaultFriendStore, error) {
|
|
return &DefaultFriendStore{}, acc.FirstError()
|
|
}
|