132 lines
3.4 KiB
Ruby
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
|
|
|