29 lines
685 B
Ruby
29 lines
685 B
Ruby
require "time_math"
|
|
|
|
module Adamantium
|
|
module Repos
|
|
class PostRepo < Adamantium::DB::Repo[:posts]
|
|
def recent(limit:)
|
|
date = Time.now
|
|
|
|
posts
|
|
.where(post_type: "bookmark", is_read: false, published_at: TimeMath.day.advance(date, -7)...TimeMath.day.floor(date))
|
|
.limit(limit)
|
|
.published
|
|
.order(Sequel.desc(:published_at))
|
|
.to_a
|
|
end
|
|
|
|
def random(limit:, excluding:)
|
|
posts
|
|
.where(post_type: "bookmark", is_read: false)
|
|
.exclude(id: excluding)
|
|
.limit(limit)
|
|
.published
|
|
.order(Sequel.lit("random()"))
|
|
.to_a
|
|
end
|
|
end
|
|
end
|
|
end
|