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

142 lines
3.1 KiB
Ruby

object @user_sync
glue :recorded_track do
@object.current_user = current_user
node :type do |i|
'recorded_track'
end
attributes :id, :recording_id, :client_id, :track_id, :client_track_id, :md5, :length, :download_count, :instrument_id, :fully_uploaded, :upload_failures, :part_failures, :created_at
node :user do |recorded_track|
partial("api_users/show_minimal", :object => recorded_track.user)
end
node :recording do |recorded_track|
partial("api_recordings/show", :object => recorded_track.recording)
end
node :upload do |recorded_track|
{
should_upload: true,
too_many_upload_failures: recorded_track.too_many_upload_failures?
}
end
node :download do |recorded_track|
{
should_download: recorded_track.can_download?(current_user),
too_many_downloads: recorded_track.too_many_downloads?
}
end
end
glue :recorded_backing_track do
@object.current_user = current_user
node :type do |i|
'recorded_backing_track'
end
attributes :id, :recording_id, :client_id, :track_id, :client_track_id, :md5, :length, :download_count, :fully_uploaded, :upload_failures, :part_failures, :created_at, :filename
node :user do |recorded_backing_track|
partial("api_users/show_minimal", :object => recorded_backing_track.user)
end
node :recording do |recorded_backing_track|
partial("api_recordings/show", :object => recorded_backing_track.recording)
end
node :mine do |recorded_backing_track|
recorded_backing_track.user == current_user
end
node :upload do |recorded_backing_track|
{
should_upload: true,
too_many_upload_failures: recorded_backing_track.too_many_upload_failures?
}
end
node :download do |recorded_backing_track|
{
should_download: recorded_backing_track.can_download?(current_user),
too_many_downloads: recorded_backing_track.too_many_downloads?
}
end
end
glue :mix do
@object.current_user = current_user
node :type do |i|
'mix'
end
attributes :id, :recording_id, :started_at, :completed_at, :completed, :should_retry, :download_count, :state
node :recording do |mix|
partial("api_recordings/show", :object => mix.recording)
end
node do |mix|
{
duration: mix.recording.duration,
error: mix.error
}
end
node :download do |mix|
{
should_download: mix.can_download?(current_user),
too_many_downloads: mix.too_many_downloads?
}
end
end
glue :quick_mix do
@object.current_user = current_user
node :type do |i|
'stream_mix'
end
attributes :id, :recording_id, :fully_uploaded, :upload_failures, :part_failures, :created_at
node :user do |quick_mix|
partial("api_users/show_minimal", :object => quick_mix.user)
end
node :recording do |quick_mix|
partial("api_recordings/show", :object => quick_mix.recording)
end
node :upload do |quick_mix|
{
should_upload: true,
too_many_upload_failures: quick_mix.too_many_upload_failures?
}
end
node :download do |quick_mix|
{
should_download: false,
too_many_downloads: false
}
end
end