require 'capistrano'

class PpDestroyImagesController < ApplicationController

  def create
    logger.info "*** #{params.inspect}"
    remJob = CommunicationInJob.new
    remJob.job_source = "externe"
    remJob.params = params
    remJob.typop = "pp_destroy_images"

    remJob.done = 0
    remJob.save
    logi = params[:login]
    mdp = params[:pwd]
    prov = ProvToApi.find_by_login_and_mot_passe(logi, mdp)
    retval = "** Erreur : identification inconnue"
    unless prov.nil?
      imgs = []
      params[:photo].collect{ |im| imgs << im }
      deleting_images(imgs, prov.string_key)
      retVal = " OK nb images=#{imgs.count}"
    end

    message = {}
    message["result"] = retVal
    json_message = message.to_json
    respond_to do |format|
      format.json { render json: json_message }
    end


    done_pixa = 100
    remJob.done = done_pixa
    remJob.result = retVal
    remJob.save
  end

  def deleting_images(imgs, titlename)

    local_tmp_path = '/home/pix/support/tmp/'
    capistrano_path = '/home/pix/capistrano/pixways/'
    logs_path = "/var/log/pixways/delete_images/#{Time.now.strftime("%Y%m%d")}/"
    field_name = "original_filename"

    file_name = Time.now.strftime("%Y-%m-%d-%Hh%Mm%S")+"_#{titlename}"
    main_log_file_name="#{logs_path}#{file_name}_main.log"
    main_error_log_file_name="#{logs_path}#{file_name}_main.error-log"
    pictures_list = "#{local_tmp_path}#{file_name}.txt"
    ini_file = "#{local_tmp_path}#{file_name}.ini"

    File.open(pictures_list,'wb') do |f|
      imgs.each do |i|
        f.write(i+"\n")
      end
    end

    #create logs folder if doesn't exist and call ultra_cap_delete
    delete_command = "mkdir -p #{logs_path};#{capistrano_path}ultra_cap_delete.sh 'pixpalace:pictures_deletion -s stringkey=#{titlename} -s field=#{field_name} -s pictures_list=#{pictures_list}' 1>>#{main_log_file_name} 2>>#{main_error_log_file_name}"

    File.open(ini_file,'wb') do |f|
      f.write(delete_command)
    end

    #execute the command as a background task
    pid = Process.spawn("at -f #{ini_file} now")
    Process.detach(pid)

  end
end