Class: Referrer::SourcesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/referrer/sources_controller.rb

Instance Method Summary collapse

Instance Method Details

#mass_createObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/controllers/referrer/sources_controller.rb', line 5

def mass_create
  user = Referrer::User.where(id: mass_source_params[:user_id], token: mass_source_params[:user_token]).first
  if user.present?
    sessions = user.sessions
    @sources = JSON.parse(mass_source_params[:values]).inject([]) do |r, pack|
      session ||= sessions.detect{|s| s.id == pack['session_id'].to_i} ||
          sessions.detect{|s| s.id == mass_source_params[:current_session_id].to_i}
      if session.blank? || session.sources.exists?(client_duplicate_id: pack['client_duplicate_id'])
        r
      else
        r << session.sources.create!(entry_point: pack['entry_point'], referrer: pack['referrer'],
                                     client_duplicate_id: pack['client_duplicate_id'])
      end
    end
    render json: {ids: @sources.map(&:id)}
  else
    render json: {errors: ['User token is incorrect']}, status: 401
  end
end