+ query = Enum.reduce(recipients, query, fn (recipient, q) ->
+ map = %{ to: [recipient] }
+ from activity in q,
+ or_where: fragment(~s(? @> ?), activity.data, ^map)
+ end)
+
+ query = from activity in query,
+ where: activity.id > ^since_id
+
+ query = if opts["max_id"] do
+ from activity in query, where: activity.id < ^opts["max_id"]
+ else
+ query
+ end
+