Files
adamantium/app/relations/posts.rb

47 lines
1.0 KiB
Ruby

# frozen_string_literal: true
module Adamantium
module Relations
class Posts < Adamantium::DB::Relation
schema :posts, infer: true do
associations do
has_many :post_tags
has_many :tags, through: :post_tags
has_many :post_trips
has_many :trips, through: :post_trips
has_many :highlights
has_many :reactions
has_many :webmentions
end
end
auto_struct(true)
def published
where(self[:published_at] <= Time.now)
end
def weekly
ref = post_tags.where(tag_id: "70").select(:post_id).dataset
where(id: ref)
end
def non_weekly
ref = post_tags.where(tag_id: "70").select(:post_id).dataset
exclude(id: ref)
end
def published_between(start_date, end_date)
where(self[:published_at] >= start_date)
.where(self[:published_at] <= end_date)
end
def search(term:)
where(Sequel.ilike(:content, "%#{term}%"))
end
end
end
end