jam-cloud/web/app/views/api_users/show.rabl

132 lines
3.4 KiB
Ruby

object @user
attributes :id, :first_name, :last_name, :name, :city, :state, :country, :location, :online, :photo_url, :musician, :gender, :birth_date, :internet_service_provider, :friend_count, :liker_count, :like_count, :follower_count, :following_count,
:recording_count, :session_count, :biography, :favorite_count, :audio_latency, :upcoming_session_count, :age, :website, :skill_level, :reuse_card, :email_needs_verification
if @user.musician?
node :location do @user.location end
else
node :location do @user.online ? 'Online' : 'Offline' end
end
if @show_teacher && @user.teacher
node :teacher do
partial("api_teachers/detail", :object => @user.teacher)
end
end
if @show_profile
node :profile do
partial("api_users/profile_show", :object => @user)
end
end
# give back more info if the user being fetched is yourself
if @user == current_user
attributes :email, :original_fpfile, :cropped_fpfile, :crop_selection, :session_settings, :show_whats_next, :show_whats_next_count, :subscribe_email, :auth_twitter, :new_notifications, :sales_count, :reuse_card, :purchased_jamtracks_count, :first_downloaded_client_at, :created_at, :first_opened_jamtrack_web_player, :gifted_jamtracks, :has_redeemable_jamtrack
node :geoiplocation do |user|
geoiplocation = current_user.geoiplocation
geoiplocation.info if geoiplocation
end
node :show_free_jamtrack do |user|
user.show_free_jamtrack?
end
node :show_jamtrack_guide do |user|
!user.first_played_jamtrack_at && user.jam_track_rights.count > 0
end
node :mods do |user|
user.mods_json
end
node :has_recurly_account do
@user.recurly_code == @user.id
end
node :is_affiliate_partner do
@user.affiliate_partner.present?
end
node :affiliate_referral_count do
@user.affiliate_partner.try(:referral_user_count)
end
node :affiliate_earnings do
@user.affiliate_partner.try(:cumulative_earnings_in_cents)
end
elsif current_user
node :is_friend do |uu|
current_user.friends?(@user)
end
node :is_following do |uu|
current_user.following?(@user)
end
node :is_liking do |uu|
current_user.likes?(@user)
end
node :pending_friend_request do |uu|
current_user.pending_friend_request?(@user)
end
node :my_audio_latency do |user|
current_user.last_jam_audio_latency.round if current_user.last_jam_audio_latency
end
node :internet_score do |user|
current_user.score_info(user)
end
end
child :friends => :friends do
attributes :id, :first_name, :last_name, :name, :online, :photo_url
end
child :followings => :followings do
attributes :type
node :id do |f|
f.followable.id
end
node :name do |f|
f.followable.name
end
node :location do |f|
f.followable.location
end
node :photo_url do |f|
f.followable.photo_url
end
end
child :band_musicians => :bands do
attributes :id, :name, :admin, :photo_url, :logo_url
child :genres => :genres do
attributes :id, :description
#partial('api_genres/index', :object => @user.bands.genres)
end
end
child :musician_instruments => :instruments do
attributes :description, :proficiency_level, :priority, :instrument_id
end
child :genres do
attributes :description, :id
end
child :music_sessions => :sessions do
attributes :id, :description, :musician_access, :approval_required, :fan_access
end
node :last_jam_audio_latency do |user|
user.last_jam_audio_latency.round if user.last_jam_audio_latency
end