fix: chat accepts posts
This commit is contained in:
@@ -242,6 +242,35 @@ func (r *BlockRepo) Unblock(ctx context.Context, blockerID, blockedID string) er
|
||||
|
||||
// BlockState reports, in one round-trip, whether a blocked b and whether
|
||||
// b blocked a.
|
||||
// BlockedWith returns the subset of others that viewerID is blocked with in
|
||||
// EITHER direction — the set whose content must be hidden from them.
|
||||
//
|
||||
// The batched counterpart to BlockState, for resolving many authors at once.
|
||||
func (r *BlockRepo) BlockedWith(ctx context.Context, viewerID string, others []string) (map[string]bool, error) {
|
||||
out := make(map[string]bool, len(others))
|
||||
if viewerID == "" || len(others) == 0 {
|
||||
return out, nil
|
||||
}
|
||||
rows, err := r.pg.Pool.Query(ctx, `
|
||||
SELECT CASE WHEN blocker_id = $1 THEN blocked_id ELSE blocker_id END
|
||||
FROM user_blocks
|
||||
WHERE (blocker_id = $1 AND blocked_id = ANY($2))
|
||||
OR (blocked_id = $1 AND blocker_id = ANY($2))`,
|
||||
viewerID, others)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("blocked with: %w", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var id string
|
||||
if err := rows.Scan(&id); err != nil {
|
||||
return nil, fmt.Errorf("scan blocked with: %w", err)
|
||||
}
|
||||
out[id] = true
|
||||
}
|
||||
return out, rows.Err()
|
||||
}
|
||||
|
||||
func (r *BlockRepo) BlockState(ctx context.Context, a, b string) (aBlockedB, bBlockedA bool, err error) {
|
||||
err = r.pg.Pool.QueryRow(ctx, `
|
||||
SELECT
|
||||
|
||||
Reference in New Issue
Block a user