115 lines
3.2 KiB
Ruby
115 lines
3.2 KiB
Ruby
class ApiLinksController < ApiController
|
|
|
|
respond_to :json
|
|
|
|
before_filter :api_any_user
|
|
before_filter :affiliate_partner
|
|
|
|
def log
|
|
@log || Logging.logger[ApiLinksController]
|
|
end
|
|
|
|
def jamtrack_song_index
|
|
@affiliate_params = affiliate_params('jamtrack-song')
|
|
|
|
results = []
|
|
|
|
@jamtracks, @next = JamTrack.index({offset: 0, limit:1000}, any_user)
|
|
|
|
@jamtracks.each do |jamtrack|
|
|
results << {url: individual_jamtrack_url(jamtrack.short_plan_code, @affiliate_params),
|
|
target: "#{jamtrack.original_artist} - #{jamtrack.name}" }
|
|
end
|
|
|
|
render json: results, status: 200
|
|
end
|
|
|
|
def jamtrack_band_index
|
|
@affiliate_params = affiliate_params('jamtrack-band')
|
|
|
|
results = []
|
|
|
|
@jamtracks, @next = JamTrack.index({offset: 0, limit:1000}, any_user)
|
|
@jamtracks.each do |jamtrack|
|
|
results << {url: individual_jamtrack_band_url(jamtrack.short_plan_code, @affiliate_params),
|
|
target: "#{jamtrack.original_artist} - #{jamtrack.name}" }
|
|
end
|
|
|
|
render json: results, status: 200
|
|
end
|
|
|
|
def jamtrack_general_index
|
|
@affiliate_params = affiliate_params('jamtrack-general')
|
|
@affiliate_params[:generic] = 1
|
|
|
|
results = []
|
|
|
|
@jamtracks, @next = JamTrack.index({offset: 0, limit:1000}, any_user)
|
|
|
|
@jamtracks.each do |jamtrack|
|
|
results << {url: individual_jamtrack_url(jamtrack.short_plan_code, @affiliate_params),
|
|
target: "#{jamtrack.original_artist} - #{jamtrack.name}" }
|
|
end
|
|
|
|
render json: results, status: 200
|
|
end
|
|
|
|
def jamkazam_general_index
|
|
|
|
results = []
|
|
|
|
@affiliate_params = affiliate_params('home')
|
|
results << {url: root_url(@affiliate_params), target: 'JamKazam Home'}
|
|
|
|
@affiliate_params = affiliate_params('products-jamblaster')
|
|
results << {url: product_jamblaster_url(@affiliate_params), target: 'JamBlaster'}
|
|
|
|
@affiliate_params = affiliate_params('products-jamtracks')
|
|
results << {url: product_jamtracks_url(@affiliate_params), target: 'JamTracks'}
|
|
|
|
|
|
render json: results, status: 200
|
|
end
|
|
|
|
def session_index
|
|
|
|
@affiliate_params = affiliate_params('session')
|
|
|
|
results = []
|
|
|
|
ActiveRecord::Base.transaction do
|
|
options = {offset:0, limit:50}
|
|
@music_sessions = MusicSession.scheduled(@partner.partner_user, true)
|
|
|
|
@music_sessions.each do |session|
|
|
results << {url: music_scheduled_session_detail_url(session.id, @affiliate_params), target: session.name}
|
|
end
|
|
end
|
|
|
|
render json: results, status: 200
|
|
end
|
|
|
|
def recording_index
|
|
|
|
@affiliate_params = affiliate_params('recording')
|
|
|
|
results = []
|
|
|
|
feeds, next_page = Feed.index(@partner.partner_user, :type => 'recording', time_range: 'all', limit:100, user: @partner.partner_user.id, )
|
|
|
|
feeds.each do |feed|
|
|
claim = feed.recording.candidate_claimed_recording
|
|
if claim
|
|
results << {url: share_token_url(claim.share_token.token, @affiliate_params), target: claim.name}
|
|
end
|
|
end
|
|
|
|
render json: results, status: 200
|
|
end
|
|
|
|
private
|
|
def affiliate_params(campaign)
|
|
{utm_source:'affiliate', utm_medium: 'affiliate', utm_campaign: "#{Date.today.year}-affiliate-#{campaign}", affiliate: @partner.id}
|
|
end
|
|
end
|