class Ruckus::BaseApi
  extend RuckusApi

  def get_integration_details ln, org=nil
    if ln.blank?
      int_type = org.integration_types.where(vendor_name: 'ruckus').last
    else
      int_type = ln.integration_type
      int_type = ln.organisation.integration_types.where(vendor_name: 'ruckus', level: 'organisation').last if int_type.blank?
    end
    raise "Ruckus integration is not found. Please check the Ruckus integartion for location network - #{ln.network_name}" unless int_type
    int_type
  end

  def self.service_ticket(int_type)
    @username = int_type.details['username']
    @password = int_type.details['password']
    options = {username: "#{@username}", password: "#{@password}"}
    begin
      Rails.logger.info "[RUCKUS][LOGON] :: inside logon api:: VALues ::#{options}"
      err = nil, response = nil
      int_type.api_key = nil
      response = RuckusApi.make_api_call(int_type, "v9_0/serviceTicket", 'POST', options)
      Rails.logger.info "[RUCKUS][LOGON] :: Got the service ticket ..!!#{response.first}"
      if response.present? && response['serviceTicket'].present?
	      int_type.update(api_key: response['serviceTicket']) 
	      Rails.logger.info "[RUCKUS][LOGON][INT_TYPE:#{int_type.id}] service ticket updated sucessfully"
      else
        Rails.logger.info "[RUCKUS][LOGON][INT_TYPE:#{int_type.id}] service ticket update failed"
      end
    rescue Exception => e
      Rails.logger.error "[RUCKUS][LOGON] :: [INT_TYPE:#{int_type.id}]" + e
    end
    response
  end
  
end
