import BaseServer from '../BaseServer'
import { Zondy } from '../../base'
/**
* M3d服务,服务地址:/igs/rest/services/{folder}/{serviceName}/M3dServer
* @class M3DServer
* @moduleEx ServiceModule
* @extends BaseServer
* @param {Object} options 构造参数
* @param {String} [options.url = 无] 服务基地址
* @example
* //初始化M3DServer服务对象
* // ES5引入方式
* const { M3DServer } = Zondy.Service
* // ES6引入方式
* import { M3DServer } from "@mapgis/webclient-common"
* const m3dServer = new M3DServer({
* //服务基地址
* url: 'http://192.168.82.89:8089/igs/rest/services/M3Dv2/武汉建筑轮廓白模/M3dServer'
* })
*/
class M3DServer extends BaseServer {
constructor(options) {
super(options)
}
/**
* @function M3DServer.prototype.queryRootNodeInfo
* @description 获取M3d根节点信息 后端接口:/igs/rest/services/{serviceName}/M3dServer/nodes/root
* @param options 查询参数
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {Function} [options.success = 无] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure = 无] 查询失败回调函数,若使用Promise方式则不必填写
* @param {String} [options.include = 无] 返回节点信息包括的类型,默认为空,等于descendants时返回节点信息包括节点的子孙后代
* @param {Number} [options.maxDepth = 1] 节点最大深度
* @param {Number} [options.maxCount = 1000] 节点最大个数
* @returns {Promise<Object>}
* @example
* //回调方式
* m3dServer.queryRootNodeInfo({
* maxCount:1100,
* success: function (result) {
* console.log('请求成功:', result)
* }
* })
* //promise方式
* m3dServer.queryRootNodeInfo({
* maxCount:1100,
* }).then(function (result) {
* console.log('请求成功:', result);
* }).catch(function (result) {
* console.log('请求失败:', result);
* });
*/
queryRootNodeInfo(options) {
// 设置PATH PARAMETERS校验
const checkPathOpts = {}
// 设置QUERY PARAMETERS校验
const checkQueryOpts = {
include: {
type: 'String'
},
maxDepth: {
type: 'Number'
},
maxCount: {
type: 'Number'
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/nodes/root?f=json`
}
)
}
/**
* @function M3DServer.prototype.queryRootInfo
* @description 获取M3d节点信息,后端接口:/igs/rest/services/{serviceName}/M3dServer/nodes/{nodeId}
* @param options 查询参数
* @param {String} [options.nodeId = 无] 节点Id,必传
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {Function} [options.success = 无] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure = 无] 查询失败回调函数,若使用Promise方式则不必填写
* @param {String} [options.include = 无] 返回节点信息包括的类型,默认为空,等于descendants时返回节点信息包括节点的子孙后代
* @param {Number} [options.maxDepth = 1] 节点最大深度
* @param {Number} [options.maxCount = 1000] 节点最大个数
* @returns {Promise<Object>}
* @example
* //回调方式
* m3dServer.queryNodeInfo({
* nodeId: '1',
* maxCount:2,
* success: function (result) {
* console.log('请求成功:', result)
* }
* })
* //promise方式
* m3dServer.queryNodeInfo({
* nodeId: '1',
* maxCount:2,
* }).then(function (result) {
* console.log('请求成功:', result);
* }).catch(function (result) {
* console.log('请求失败:', result);
* });
*/
queryNodeInfo(options) {
// 设置PATH PARAMETERS校验
const checkPathOpts = {
nodeId: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
const checkQueryOpts = {
include: {
type: 'String'
},
maxDepth: {
type: 'Number'
},
maxCount: {
type: 'Number'
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
return `${url}/nodes/${options.nodeId}?f=json`
}
)
}
/**
* @function M3DServer.prototype.getSharedResources
* @description 获取M3d公共服务资源,后端接口:/igs/rest/services/{serviceName}/M3dServer/sharedResources
* @param options 查询参数
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {Function} [options.success = 无] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure = 无] 查询失败回调函数,若使用Promise方式则不必填写
* @returns {Promise<Object>}
* @example
* //回调方式
* m3dServer.getSharedResources({
* success: function (result) {
* console.log('请求成功:', result)
* }
* })
* //promise方式
* m3dServer.getSharedResources({
* }).then(function (result) {
* console.log('请求成功:', result);
* }).catch(function (result) {
* console.log('请求失败:', result);
* });
*/
getSharedResources(options) {
// 设置PATH PARAMETERS校验
const checkPathOpts = {}
// 设置QUERY PARAMETERS校验
const checkQueryOpts = {}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/sharedResources?f=json`
}
)
}
}
Zondy.Service.M3DServer = M3DServer
export default M3DServer