Files
mapknitter/app/controllers/feeds_controller.rb
Cess 0a8813cc87 (WIP)Move some controller code to models (#519)
* Remove trailing white spaces and unnecessary blank lines

* Remove basic rubocop offenses

* add few maps  tests

* refactor maps controller

* fix 'line too long' rubocop offense
2019-04-15 20:42:28 -05:00

57 lines
1.9 KiB
Ruby

class FeedsController < ApplicationController
def all
# (Warpable.all + Map.all).sort_by(&:created_at)
@maps = Map.find(:all, order: 'id DESC', limit: 20,
conditions: { archived: false, password: '' },
joins: %i[user warpables],
group: 'maps.id')
render layout: false, template: 'feeds/all'
response.headers['Content-Type'] = 'application/xml; charset=utf-8'
end
def clean
@maps = Map.order(id: :desc)
.limit(20)
.where(archived: false, password: '')
.joins(:warpables)
.group('maps.id')
render layout: false, template: 'feeds/clean'
response.headers['Content-Type'] = 'application/xml; charset=utf-8'
end
def license
@maps = Map.order(id: :desc)
.limit(20)
.where(archived: false, password: '', license: params[:id])
.joins(:warpables)
.group('maps.id')
render layout: false, template: 'feeds/license'
response.headers['Content-Type'] = 'application/xml; charset=utf-8'
end
def author
@maps = Map.find_all_by_author(params[:id],
order: 'id DESC',
conditions: { archived: false, password: '' },
joins: :warpables, group: 'maps.id')
images = []
@maps.each do |map|
images += map.warpables
end
@feed = (@maps + images).sort_by(&:created_at)
render layout: false, template: 'feeds/author'
response.headers['Content-Type'] = 'application/xml; charset=utf-8'
end
def tag
@tag = Tag.find_by_name params[:id]
if @tag
@maps = @tag.maps.paginate(page: params[:page], per_page: 24)
render layout: false, template: 'feeds/tag'
response.headers['Content-Type'] = 'application/xml; charset=utf-8'
else
render text: "No maps with tag #{params[:id]}"
end
end
end