refactor news feed default dataset, fix event delete

This commit is contained in:
Kyle Drake 2015-03-31 13:28:35 -07:00
parent ebc3254724
commit 54ea98be1c
4 changed files with 18 additions and 11 deletions

View file

@ -36,12 +36,13 @@ end
post '/event/:event_id/delete' do |event_id| post '/event/:event_id/delete' do |event_id|
require_login require_login
content_type :json content_type :json
event = Event[id: event_id] event = Event[id: event_id]
if event.site_id == current_site.id || event.created_by?(current_site) if event.site_id == current_site.id || event.actioning_site_id == current_site.id
event.delete event.delete
return {result: 'success'}.to_json return {result: 'success'}.to_json
end end
return {result: 'error'}.to_json return {result: 'error'}.to_json
end end

View file

@ -12,6 +12,7 @@ get '/?' do
elsif params[:event_id] elsif params[:event_id]
event = Event.select(:id).where(id: params[:event_id]).first event = Event.select(:id).where(id: params[:event_id]).first
not_found if event.nil? not_found if event.nil?
not_found if event.is_deleted
events_dataset = Event.where(id: params[:event_id]).paginate(1, 1) events_dataset = Event.where(id: params[:event_id]).paginate(1, 1)
elsif params[:activity] == 'global' elsif params[:activity] == 'global'
events_dataset = Event.global_dataset @current_page events_dataset = Event.global_dataset @current_page

View file

@ -15,17 +15,22 @@ class Event < Sequel::Model
DEFAULT_GLOBAL_LIMIT = 300 DEFAULT_GLOBAL_LIMIT = 300
GLOBAL_VIEWS_MINIMUM = 5 GLOBAL_VIEWS_MINIMUM = 5
def self.global_dataset(current_page=1, limit=DEFAULT_GLOBAL_LIMIT) def self.news_feed_default_dataset
select_all(:events). select_all(:events).
order(:created_at.desc). order(:created_at.desc).
paginate(current_page, 100).
join_table(:inner, :sites, id: :site_id). join_table(:inner, :sites, id: :site_id).
exclude(Sequel.qualify(:sites, :is_deleted) => false). exclude(Sequel.qualify(:sites, :is_deleted) => true).
exclude(is_nsfw: false). exclude(Sequel.qualify(:events, :is_deleted) => true).
exclude(is_banned: false). exclude(is_banned: true)
exclude(is_crashing: false). end
def self.global_dataset(current_page=1, limit=DEFAULT_GLOBAL_LIMIT)
news_feed_default_dataset.
paginate(current_page, 100).
exclude(is_nsfw: true).
exclude(is_crashing: true).
where{views > GLOBAL_VIEWS_MINIMUM}. where{views > GLOBAL_VIEWS_MINIMUM}.
or(site_change_id: nil) where(site_change_id: nil)
end end
def created_by?(site) def created_by?(site)

View file

@ -975,7 +975,7 @@ class Site < Sequel::Model
def latest_events(current_page=1, limit=10) def latest_events(current_page=1, limit=10)
site_id = self.id site_id = self.id
Event.where{Sequel.|({site_id: site_id}, {actioning_site_id: site_id})}. Event.news_feed_default_dataset.where{Sequel.|({site_id: site_id}, {actioning_site_id: site_id})}.
order(:created_at.desc). order(:created_at.desc).
paginate(current_page, limit) paginate(current_page, limit)
end end
@ -984,7 +984,7 @@ class Site < Sequel::Model
following_ids = self.followings_dataset.select(:site_id).all.collect {|f| f.site_id} following_ids = self.followings_dataset.select(:site_id).all.collect {|f| f.site_id}
search_ids = following_ids+[self.id] search_ids = following_ids+[self.id]
Event.where{Sequel.|({site_id: search_ids}, {actioning_site_id: search_ids})}. Event.news_feed_default_dataset.where{Sequel.|({site_id: search_ids}, {actioning_site_id: search_ids})}.
order(:created_at.desc). order(:created_at.desc).
paginate(current_page, limit) paginate(current_page, limit)
end end