class Ruckus::ConfigurationService < Ruckus::BaseApi
  def initialize ln, org=nil
    @ln = ln
    @ruckus_config = get_integration_details @ln, org
    @vendor_org_id = @ruckus_config.org_id
    # @api_key = @ruckus_config
    @api_version = @ruckus_config.details['api_version'] || "v11_0"
  end

  ###################################################
  #ZONE Configuration
  ###################################################

  def create_network_domain domainname
      response = create_domain(domainname)
      return response["id"]
  end

  def create_domain domainname
    params = Ruckus::ObjectMapper.get_domain_params domainname
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/domains", 'POST', params
  end

  def create_zone
    domainid = ""#@ln.tag_list.empty? ? "" : create_network_domain(@ln.tag_list.last)
    domainid = @ruckus_config.details['domainid'] if domainid.blank? && !@ruckus_config.blank? && !@ruckus_config.details['domainid'].blank?
    params = Ruckus::ObjectMapper.get_zone_params @ln, domainid
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones", 'POST', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      @ln.vendor_network_id = response['id'].to_s
      @ln.save
      Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] Zone created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{@ln.network_name}] Zone not created"
    end
  end

  def update_zone
    params = Ruckus::ObjectMapper.get_updated_zone_params @ln
    if params.present?
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}", 'PATCH', params
      Rails.logger.info response
      if response.present? && response['id'].present?
        response
        Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] Zone updated sucessfully"      
      else
        Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] Zone update is failed"
      end
    end
  end

  def delete_zone
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}", 'DELETE', {}
    Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}][delete] :: #{response}"
    response
  end

  ###################################################

  ###################################################
  #Radio Configuration


  def update_radio_parameters radio_obj, apply_to 
    params = Ruckus::ObjectMapper.radio_config radio_obj
    if params.present?
      radioendpoint = "#{@api_version}/rkszones/#{@ln.vendor_network_id}" 
      radioendpoint = "#{@api_version}/aps/#{mac_id}" if apply_to.class.name == "RouterInventory"
      response = RuckusApi.make_api_call @ruckus_config, radioendpoint, 'PATCH', params
      Rails.logger.info response
      if response.present? && response['id'].present?
        response
        Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] Zone updated sucessfully"      
      else
        Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] Zone update is failed"
      end
    end
  end

  
  ###################################################

  ###################################################
  #Access Point Configuration

  def get_zone_devices(zone_id = nil) #list aps under zone
    puts "nw_id:: #{@ln.vendor_network_id}"
    # zone_id = @ln.vendor_network_id
    params = {}
    params["zoneId"] = zone_id if zone_id
    params["domainId"] = (@ln.vendor_details || {})[:domainid] || @ruckus_config.details['domainid']

    response = []
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps", 'GET', {}, params
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_zone_aps][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
    response 
  end 

  def get_devices_details(device_mac)
    response = []
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps/#{device_mac}", 'GET'
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_zone_aps][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
    response 
  end 


  def claim_zone_device inventory
    inventory.each do |inv|
      params = Ruckus::ObjectMapper.get_ap_params @ln, inv
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps", 'POST', params
      Rails.logger.info "[RUCKUS] Claim Zone Device :: response :: #{response}"
    end
  end

  ## Need to discuss on this one....
  def claim_device_in_organisation org, serials
    params = Ruckus::ObjectMapper.get_ap_params @ln
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps", 'POST', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      @ln.vendor_network_id = response['id'].to_s
      @ln.save
      Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] ap created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{@ln.network_name}] ap not created"
    end 
  end

  def move_aps device_serials
    response = move_multiple_aps device_serials
  end

  def move_network_device inventory
    response = move_multiple_aps [inventory.mac_id.to_a]
  end

  def move_multiple_aps device_serials
    params = Ruckus::ObjectMapper.move_multiple_aps @ln, device_serials
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps/move", 'POST', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] Number of AP moved successfully."
    else
      Rails.logger.info "[RUCKUS][#{@ln.network_name}] ERROR in moving aps to the network"
    end 
  end

  def ap_uplink_static
      {"network" => {
    "ipType" => "Static",
    "ip" => "1.1.1.1",
    "netmask" => "255.255.255.0",
    "gateway" => "1.1.1.0",
    "primaryDns" => "8.8.8.8",
    "secondaryDns" => "8.8.8.9"
  }}
  end

  def update_ap mac_id
    params = Ruckus::ObjectMapper.get_update_ap_params mac_id

    if params.present?
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps/#{mac_id}", 'PATCH', params
      Rails.logger.info response
      if response.present? && response['id'].present?
        response
        Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] device updated sucessfully"      
      else
        Rails.logger.info "[RUCKUS][#{@ln.vendor_network_id}] device update is failed"
      end
    end
  end

  def delete_ap mac_id
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps/#{mac_id}", 'DELETE', {}
    Rails.logger.info ":: [RUCKUS] device deleted successfully #{response}"
    response
  end
  ##################################################

  ##################################################
  #wlan Configuration
  def list_wlans
    puts "nw_id:: #{@ln.vendor_network_id}"
    response = []
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlans", 'GET', {}
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_list_rkszones_wlans][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
    response
  end

  def wlan_details wlan_id
    response = {}
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlans/#{wlan_id}", 'GET', {}
      Rails.logger.info "[RUCKUS][wlan details - #{wlan_id}] WLAN details :: #{response}"
      response
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_details_rkszones_wlan][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
  end

  def create_wlan wlan_object
    params,wlanendpoint = Ruckus::ObjectMapper.get_wlan_params wlan_object,@ln
    # response = RuckusApi.make_api_call @ruckus_config, "v11_1/rkszones/#{@ln.vendor_network_id}/#{wlanendpoint}", 'POST', params
    response = RuckusApi.make_api_call @ruckus_config, "v11_0/rkszones/#{@ln.vendor_network_id}/#{wlanendpoint}", 'POST', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      wlan_object.vendor_details["id"] = response['id'].to_s
      wlan_object.save
      Rails.logger.info "[RUCKUS][#{wlan_object.vendor_details}] Wlan created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{wlan_object.ssid_name}] Wlan not created"
    end
  end

  def update_wlan wlan_object
    params,wlanendpoint = Ruckus::ObjectMapper.get_wlan_params wlan_object,@ln
    wlan_id = wlan_object.vendor_details["id"]
    if params.present?
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlans/#{wlan_id}", 'PATCH', params
      Rails.logger.info response
      if response.present? && response['id'].present?
        response
        Rails.logger.info "[RUCKUS][#{wlan_object.vendor_details['id']}] wlan updated sucessfully"   
      else
        Rails.logger.info "[RUCKUS][#{wlan_object.vendor_details['id']}] wlan update is failed"
      end
    end
  end

  def delete_wlan wlan_object
    wlan_id = wlan_object.vendor_details["id"]
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlans/#{wlan_id}", 'DELETE', {}
    Rails.logger.info "[RUCKUS][#{wlan_id}][delete] :: #{response}"
    response
  end
  ##############################################

  #############################################
  #WLAN Group
  #############################################
  def create_wlan_group wlan_group
    params = {name: wlan_group.name, description: "Created from WCC"}
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlangroups", 'POST', params
    Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}] wlan group response :: #{response}"
    if response.present? && response['id'].present?
      wlan_group.vendor_details = response
      wlan_group.vendor_id = response['id']
      wlan_group.save

      Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}] wlan group created sucessfully"
    else
      Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}] wlan group creation failed"
    end 
    
    response
  end

  def add_member_to_wlan_group wlan_group, ssid
    params = {id: ssid.vendor_details['id']}
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlangroups/#{wlan_group.vendor_id}/members", 'POST', params
    Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}] adding member to wlan group response :: #{response}"
    debugger
    if response.present?
      Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}][SSID-#{ssid.id}] Added member to wlan group sucessfully"
    else
      Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}][SSID-#{ssid.id}] Adding member to wlan group is failed"
    end
    
    response
  end

  def get_all_wlan_groups
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlangroups", 'GET', {}
    Rails.logger.info "[RUCKUS][LN-#{@ln.id}] get all wlan groups response :: #{response}"
    if response.present?
      response['list'] || []
    else
      Rails.logger.info "[RUCKUS] Wlan group retrieve is failed"
      []
    end
  end

  def remove_member_from_wlan_group wlan_group, ssid
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlangroups/#{wlan_group.vendor_id}/members/#{ssid.vendor_details['id']}", 'DELETE', {}
    Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}] Removing member from wlan group response :: #{response}"
    debugger
    if response.present?
      Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}][SSID-#{ssid.id}] Removed member from wlan group sucessfully"
    else
      Rails.logger.info "[RUCKUS][WG-#{wlan_group.id}][SSID-#{ssid.id}] Removing member from wlan group is failed"
    end
    
    response
  end
  ########################################

  ########################################
  # AP Group Configuration
  ########################################

  def create_ap_group ap_group
    wlan_group = ap_group.wlan_group
    params = {  
      "name" => ap_group.name, 
      "description" => "Created from WCC", 
      "radioConfig" => {
        "radio24g" => { 
          "wlanGroupId" => wlan_group.vendor_id
        },
        "radio5g" => { 
          "wlanGroupId" => wlan_group.vendor_id
        },
        "radio6g" => { 
          "wlanGroupId" => wlan_group.vendor_id
        },
      }
    }
    #NOTE: radioConfig supports only from v11_0 not in v9_0. So we are using v11_0 for this API
    # {
    #     "message": "object instance has properties which are not allowed by the schema: [\"radioConfig\"]; ",
    #     "errorCode": 101,
    #     "errorType": "Bad HTTP request"
    # }
    #
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/apgroups", 'POST', params
    Rails.logger.info "[RUCKUS][AG-#{ap_group.name}] AP group response :: #{response}"
    if response.present? && response['id'].present?
      ap_group.vendor_details = response
      ap_group.vendor_id = response['id']
      ap_group.save

      Rails.logger.info "[RUCKUS][AG-#{ap_group.name}] AP group created sucessfully"
    else
      Rails.logger.info "[RUCKUS][AG-#{ap_group.name}] AP group creation failed"
    end 
    
    response
  end

  # AP Group configuration

  def list_ap_group
    puts "nw_id:: #{@ln.vendor_network_id}"
    response = []
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/apgroups", 'GET', {}
      response = response['list'] || []
      Rails.logger.info "[RUCKUS][AG] List AP groups - #{response}"    
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_ap_groups][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
    response
  end

  def get_ap_group_details ap_group_id
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/apgroups/#{ap_group_id}", 'GET', {}
      Rails.logger.info "[RUCKUS][RESPONSE][AG-#{ap_group_id}] Get AP group details - #{response}"    
      response
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_details_of_ap_group][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
  end  

  def ap_group_details
    (list_ap_group||{})['list'].map do |ap_group|
      get_ap_group_details ap_group['id']
    end 
  end

  def add_members_to_ap_group ap_group
    params = {
      "memberList" => ap_group.router_inventories.map {|d| {"apMac" => d.mac_id}}
    }
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/apgroups/#{ap_group.vendor_id}/members", 'POST', params
    Rails.logger.info "[RUCKUS][AG-#{ap_group.name}] [#{ap_group.router_inventories.map(&:mac_id)}] adding member to ap group response :: #{response}"
    if response.present?
      Rails.logger.info "[RUCKUS][AG-#{ap_group.name}] Added member to ap group sucessfully"
    else
      Rails.logger.info "[RUCKUS][AG-#{ap_group.name}] Adding member to ap group is failed"
    end

    response
  end  

  #upgrade

  def list_firmware_upgrades
    puts "nw_id:: #{@ln.vendor_network_id}"
    response = []
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/zoneScheduleUpgrade/history", 'GET', {}
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_list_rkszones_wlans][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
    response
  end

  def create_firmware_upgrade upgrade_obj
    params = Ruckus::ObjectMapper.get_firmware_upgrade_params upgrade_obj

    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/zoneScheduleUpgrade", 'POST', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      upgrade_obj.vendor_details = {"id" => response['id'].to_s}
      upgrade_obj.save
      Rails.logger.info "[RUCKUS][#{upgrade_obj}] firmware upgrade created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{upgrade_obj}] firmware upgrade not created sucessfully"
    end
  end

  def update_firmware_upgrade upgrade_obj
    params = Ruckus::ObjectMapper.upgrade_obj upgrade_obj
    upgrade_id = upgrade_obj.vendor_details["id"]
    if params.present?
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/zoneScheduleUpgrade/#{upgrade_id}", 'PATCH', params
      Rails.logger.info response
      if response.present? && response['id'].present?
        response
        Rails.logger.info "[RUCKUS][#{upgrade_id}] firmware upgrade updated sucessfully"      
      else
        Rails.logger.info "[RUCKUS][#{upgrade_id}] firmware upgrade update is failed"
      end
    end
  end

  def delete_firmware_upgrade upgrade_obj
    upgrade_id = upgrade_obj.vendor_details["id"]
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/zoneScheduleUpgrade/#{upgrade_id}", 'DELETE', {}
    Rails.logger.info "[RUCKUS][#{upgrade_id}][delete] :: #{response}"
    response
  end

  #ACL Group

  def create_acl_group acl_obj
    params = Ruckus::ObjectMapper.get_acl_group acl_obj
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/l3AccessControlPolicies", 'POST', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      acl_obj.vendor_details = {"id" => response['id'].to_s}
      acl_obj.save
      Rails.logger.info "[RUCKUS][#{acl_obj}] ACL Group created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{acl_obj}] ACL Group not created sucessfully"
    end
  end

  def update_acl_group acl_obj
    params = Ruckus::ObjectMapper.get_acl_group acl_obj
    acl_group_id = acl_obj.vendor_details["id"]
    if params.present?
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/l3AccessControlPolicies/#{acl_group_id}", 'PATCH', params
      Rails.logger.info response
      if response.present? && response['id'].present?
        response
        Rails.logger.info "[RUCKUS][#{acl_group_id}] ACL Group updated sucessfully"      
      else
        Rails.logger.info "[RUCKUS][#{acl_group_id}] ACL Group update is failed"
      end
    end
  end

  def delete_acl_group acl_obj
    acl_group_id = acl_obj.vendor_details["id"]
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/l3AccessControlPolicies/#{acl_group_id}", 'DELETE', {}
    Rails.logger.info "[RUCKUS][#{acl_group_id}][delete] :: #{response}"
    response
  end
  
  def disable_wlan wlan_object
    params = Ruckus::ObjectMapper.disable_wlan_params wlan_object
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlans/#{wlan_object.vendor_network_id}", 'PATCH', params
    puts "disable wlan", response 
    return response if response.present? && response['id'].present?
    return nil 
  end

  def enable_wlan wlan_object
    params = Ruckus::ObjectMapper.enable_wlan_params wlan_object
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/wlans/#{wlan_object.vendor_network_id}", 'PATCH', params
    return response if response.present? && response['id'].present?
    return nil 
  end


  # Radius
  def radius_details radius_server_type, id
    response = {}
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/services/#{radius_server_type}/radius/#{id}", 'GET', {}
      Rails.logger.info "[RUCKUS][RADIUS - #{radius_server_type} - #{id}] RADIUS #{radius_server_type} details :: #{response}"
      response
    rescue Exception => e
      raise "[ERROR][RUCKUS][RADIUS - #{radius_server_type} - #{id}] RADIUS #{radius_server_type} details ERROR:: #{e}"
    end
  end

  def create_radius radius_obj, type
     params = Ruckus::ObjectMapper.get_radius_params radius_obj,type
     Rails.logger.info "[RUCKUS]type #{type}"
     puts "--------------------------------------- #{type}"
     rendpoint = (type == "auth") ? "auth/radius" : "acct/radius"
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/services/#{rendpoint}", 'POST', params
      Rails.logger.info response
    if response.present? && response['id'].present?
      radius_obj.vendor_details = {"id" => response['id'].to_s}
      radius_obj.save
      Rails.logger.info "[RUCKUS][#{radius_obj.vendor_details}] RADIUS  created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{radius_obj.id}] Radius not created"
    end
   end

   def update_radius radius_obj, type
     params = Ruckus::ObjectMapper.get_radius_params radius_obj,type
     puts "--------------------------------------- #{type}"
     rendpoint = (type == "auth") ? "auth/radius" : "acct/radius"
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/services/#{rendpoint}/#{radius_obj.vendor_details['id']}", 'PATCH', params
      Rails.logger.info response
    if response.present? && response['id'].present?
      radius_obj.vendor_details["id"] = response['id'].to_s
      radius_obj.save
      Rails.logger.info "[RUCKUS][#{radius_obj.vendor_details}] RADIUS update sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{radius_obj.id}] Ruckus not created"
    end
   end


   def delete_radius radius_obj
     response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/services/auth/radius/#{radius_obj.vendor_details['id']}", 'DELETE'
   end

   #Hotspot SSID

   def create_wlan_external_hotspot wlan_object
    params = Ruckus::ObjectMapper.get_external_hotspot_params wlan_object
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/portals/hotspot/external", 'POST', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      wlan_object.vendor_details["external_hotspot"] = response['id'].to_s
      wlan_object.save
      Rails.logger.info "[RUCKUS][#{wlan_object.vendor_details}] External Hotspot created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{wlan_object.ssid_name}] External Hotspot not created"
    end
   end

   def update_wlan_external_hotspot wlan_object
    params = Ruckus::ObjectMapper.get_external_hotspot_params wlan_object
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/rkszones/#{@ln.vendor_network_id}/portals/hotspot/external/#{wlan_object.vendor_details['external_hotspot']}", 'PUT', params
    Rails.logger.info response
    if response.present? && response['id'].present?
      wlan_object.vendor_details["external_hotspot"] = response['id'].to_s
      wlan_object.save
      Rails.logger.info "[RUCKUS][#{wlan_object.vendor_details}] External Hotspot created sucessfully"
    else
      Rails.logger.info "[RUCKUS][#{wlan_object.ssid_name}] External Hotspot not created"
    end
   end


  ## Tools

  def reboot_device mac_id
    response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/aps/#{mac_id}/reboot", 'PUT'
    Rails.logger.info response
  end

  ########################################
  def query_aps params
    puts "nw_id:: #{@ln.vendor_network_id}"
    response = []
    begin
      response = RuckusApi.make_api_call @ruckus_config, "#{@api_version}/query/ap", 'POST', params
      p response
    rescue Exception => e
      raise "[ERROR][RUCKUS][get_list_rkszones_wlans][#{@ln.vendor_network_id}] ERROR:: #{e}"
    end
    response
  end
end
