    import BaseServer from '../../BaseServer'
    import { Zondy } from '../../../base'
    import { defaultValue } from '../../../util'

    /**
     * IGS的WMS服务
     * @class WMSServer
     * @moduleEx ServiceModule
     * @extends BaseServer
     * @param {Object} options 构造参数
     * @param {String} [options.url] 服务基地址
     * @param {String} [options.version = '1.1.1'] 请求版本号
     * @example
     * // ES5引入方式
     * const { WMSServer } = Zondy.Service
     * // ES6引入方式
     * import { WMSServer } from "@mapgis/webclient-common"
     * WMSServer = new WMSServer({
     *    url: 'http://192.168.82.89:8089/igs/rest/services/Map/Hubei4326/WMSServer',
     *    requestInterceptor: {
     *      before: function (config) {
     *        return config;
     *      },
     *      failure: function (error) {
     *        console.log("请求发送失败(拦截器):", error)
     *      }
     *    },
     *    responseInterceptor: {
     *      success: function (result) {
     *        console.log("请求成功拦截响应")
     *        return result;
     *      },
     *      failure: function (result) {
     *        console.log("请求失败拦截响应")
     *        return result;
     *      }
     *    }
     *  });
     */
    class WMSServer extends BaseServer {
      constructor(options) {
        super(options)

        this.version = defaultValue(options.version, '1.1.1')
      }

      /**
       * 获取服务元信息
       * @param options 查询参数
       * @param {Function} [options.success] 查询成功回调函数，若使用Promise方式则不必填写
       * @param {Function} [options.failure] 查询失败回调函数，若使用Promise方式则不必填写
       * @example
       * // 回调方式
       * WMSServer.getCapabitities({
       *   success: function (result) {
       *     console.log('请求成功：', result);
       *   },
       *   failure: function (result) {
       *     console.log('请求失败：', result);
       *   }
       * });
       * // promise方式
       * WMSServer.getCapabitities().then(function (result) {
       *   console.log('请求成功：', result);
       * }).catch(function (result) {
       *   console.log('请求失败：', result);
       * })
       */
      getCapabitities(options) {
        // 调用基类的查询信息方法
        const self = this
        return this._querySimpleInfo(options, function (url) {
          // 拼装返回基地址
          // 确保igs1.0的wms服务版本一定是1.1.1
          if (self.url.indexOf('igs/rest/ogc/doc') > -1) {
            return `${url}?version=1.1.1&service=WMS&request=GetCapabilities`
          }
          return `${url}?version=${self.version}&service=WMS&request=GetCapabilities`
        })
      }
    }

    Zondy.Service.WMSServer = WMSServer
    export default WMSServer