61 lines
1.9 KiB
Ruby
61 lines
1.9 KiB
Ruby
class ApisController < ActionController::Metal
|
|
include ActionController::Rendering
|
|
include ActionController::Renderers::All
|
|
|
|
## posts
|
|
def posts_index
|
|
set_defaults
|
|
sm = StatusMessage.where(:public => true).includes(:photos, :author => :profile).paginate(:page => params[:page], :per_page => params[:per_page], :order => "#{params[:order]} DESC")
|
|
render :json => sm.to_json
|
|
end
|
|
|
|
def posts
|
|
sm = StatusMessage.where(:guid => params[:guid], :public => true).includes(:photos, :author => :profile).first
|
|
if sm
|
|
render :json => sm.to_json
|
|
else
|
|
render(:nothing => true, :status => 404)
|
|
end
|
|
end
|
|
|
|
#tags
|
|
#
|
|
def tag_posts
|
|
set_defaults
|
|
posts = StatusMessage.where(:public => true, :pending => false)
|
|
posts = posts.tagged_with(params[:tag])
|
|
posts = posts.includes(:comments, :photos).paginate(:page => params[:page], :per_page => params[:per_page], :order => "#{params[:order]} DESC")
|
|
render :json => posts.as_json
|
|
end
|
|
|
|
def tag_people
|
|
set_defaults
|
|
profiles = Profile.tagged_with(params[:tag]).where(:searchable => true).select('profiles.id, profiles.person_id')
|
|
people = Person.where(:id => profiles.map{|p| p.person_id}).paginate(:page => params[:page], :per_page => params[:per_page], :order => "#{params[:order]} DESC")
|
|
render :json => people.as_json
|
|
end
|
|
|
|
##people
|
|
def people_index
|
|
set_defaults
|
|
people = Person.public_search(params[:q]).paginate(:page => params[:page], :per_page => params[:per_page], :order => "profiles.last_name ASC, profiles.first_name ASC")
|
|
render :json => people.as_json
|
|
end
|
|
|
|
def people
|
|
person = Person.where(:diaspora_handle => params[:diaspora_handle]).first
|
|
if person
|
|
render :json => person.as_json
|
|
else
|
|
render(:nothing => true, :status => 404)
|
|
end
|
|
end
|
|
|
|
protected
|
|
|
|
def set_defaults
|
|
params[:per_page] ||= 15
|
|
params[:order] ||= 'created_at'
|
|
params[:page] ||= 1
|
|
end
|
|
end
|