Newer
Older
danielgrippi
a validé
class ApisController < ApplicationController #We should start with this versioned, V0ApisController BEES
before_filter :authenticate_user!, :only => [:home_timeline]
#posts
def public_timeline
set_defaults
timeline = StatusMessage.where(:public => true).includes(:photos, :author => :profile).paginate(:page => params[:page], :per_page => params[:per_page], :order => "#{params[:order]} DESC")
respond_with timeline do |format|
format.json{ render :json => timeline.to_json(:format => :twitter) }
end
end
if person = Person.where(:guid => params[:user_id]).first
if user_signed_in?
timeline = current_user.posts_from(person)
else
timeline = StatusMessage.where(:public => true, :author_id => person.id).includes(:photos).paginate(:page => params[:page], :per_page => params[:per_page], :order => "#{params[:order]} DESC")
end
danielgrippi
a validé
respond_with timeline do |format|
format.json{ render :json => timeline.to_json(:format => :twitter) }
end
danielgrippi
a validé
render :json => {:status => 'failed', :reason => 'user not found'}, :status => 404
end
end
def home_timeline
set_defaults
timeline = current_user.visible_posts(:max_time => params[:max_time],
:limit => params[:per_page],
:order => "#{params[:order]} DESC").includes(:comments, :photos, :likes, :dislikes)
respond_with timeline do |format|
format.json{ render :json => timeline.to_json(:format => :twitter) }
end
end
def statuses
status = StatusMessage.where(:guid => params[:guid], :public => true).includes(:photos, :author => :profile).first
if status
respond_with status do |format|
format.json{ render :json => status.to_json(:format => :twitter) }
end
else
render(:nothing => true, :status => 404)
#people
def users
if params[:user_id]
danielgrippi
a validé
person = Person.where(:guid => params[:user_id]).first
elsif params[:screen_name]
person = Person.where(:diaspora_handle => params[:screen_name]).first
end
if person && !person.remote?
respond_with person do |format|
format.json{ render :json => person.to_json(:format => :twitter) }
end
render(:nothing => true, :status => 404)
def users_search
set_defaults
if params[:q]
people = Person.public_search(params[:q]).paginate(:page => params[:page], :per_page => params[:per_page], :order => "#{params[:order]} DESC")
end
if people
respond_with people do |format|
format.json{ render :json => people.to_json(:format => :twitter) }
end
else
render(:nothing => true, :status => 404)
def users_profile_image
if person = Person.where(:diaspora_handle => params[:screen_name]).first
redirect_to person.profile.image_url
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")
danielgrippi
a validé
render :json => posts.as_json(:format => :twitter)
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")
danielgrippi
a validé
render :json => people.as_json(:format => :twitter)
params[:per_page] = 20 if params[:per_page].nil? || params[:per_page] > 100
danielgrippi
a validé
params[:order] = 'created_at' unless ['created_at', 'updated_at'].include?(params[:order])