require "json"
require 'rest_client'

class SearchImageField < ActiveRecord::Base

  belongs_to :search_stat
  validates :search_stat_id, presence: true

  serialize :iptc

  def self.envoi_field_searches
    server_url = "http://#{Server.find_by_name("Pixadmin").host}:#{Server.find_by_name("Pixadmin").api_port}/"
    cs_name = Server.find_by_is_self(true).name
    api_res = ""
    url_key = "cs_request"
    safeurl = URI.encode("#{server_url}#{url_key}".strip)
    SearchImageField.all.each do |imf|
      ssid = imf.search_stat_id
      imf.iptc.each do |k,v|
        message = { "cs_demand" => "image_field", "cs_name" => cs_name, "user_login" => k, "var_id" => ssid, "parameters" => { :result => v } }
        begin
          res = RestClient.post( safeurl, message.to_json, content_type: :json, accept: :json)
        rescue => e
          if res.blank?
            "Erreur Rest : #{e.inspect}"
          else
            retour = JSON.parse(res.body)
            api_res = retour["result"]
          end
          newjob = CommunicationOutJob.new
          newjob.params = message
          newjob.result = api_res
          newjob.done = 0
          newjob.save
        end
      end
    end
  end

end
