@@ -213,6 +213,81 @@ export class IPortalUser extends IPortalServiceBase {
213
213
}
214
214
} )
215
215
}
216
+
217
+ /**
218
+ * @function SuperMap.iPortalUser.prototype.publishOrUnpublish
219
+ * @description 发布/取消发布。
220
+ * @param {object } options - 发布/取消发布数据服务所需的参数。
221
+ * @param {object } options.dataId - 数据项id。
222
+ * @param {object } options.serviceType - 发布的服务类型,目前支持发布的服务类型包括:RESTDATA, RESTMAP, RESTREALSPACE, RESTSPATIALANALYST。
223
+ * @param {object } [options.dataServiceId] - 发布的服务 id。
224
+ * @param {boolean } forPublish - 是否取消发布。
225
+ * @returns {Promise } 返回发布/取消发布数据服务的 Promise 对象。
226
+ */
227
+ publishOrUnpublish ( option , forPublish ) {
228
+ if ( ! option . dataId || ! option . serviceType ) {
229
+ this . getErrMsgPromise ( "option.dataID and option.serviceType are Required!" ) ;
230
+ }
231
+ var dataId = option . dataId ;
232
+ var dataServiceId = option . dataServiceId ;
233
+ var serviceType = option . serviceType ;
234
+ var publishUrl = this . iportalUrl + "/web/mycontent/datas/" + dataId + "/publishstatus.json?serviceType=" + serviceType ;
235
+ if ( dataServiceId ) {
236
+ publishUrl += "&dataServiceId=" + dataServiceId ;
237
+ }
238
+ return this . request ( "PUT" , publishUrl , JSON . stringify ( forPublish ) ) . then ( res => {
239
+ // 发起服务状态查询
240
+ if ( forPublish ) {
241
+ // 发布服务的结果异步处理
242
+ // var publishStateUrl = this.iportalUrl + "web/mycontent/datas/" + dataId + "/publishstatus.rjson";
243
+ if ( ! dataServiceId ) { // 发布服务时会回传serviceIDs,发布服务之前serviceIDs为空
244
+ dataServiceId = res . customResult ;
245
+ }
246
+ return dataServiceId ;
247
+ } else {
248
+ // 取消发布的结果同步处理
249
+ return res ;
250
+ }
251
+ } ) ;
252
+ }
253
+
254
+ /**
255
+ * @function SuperMap.iPortalUser.prototype.getDataPublishedStatus
256
+ * @description 查询服务状态,发起服务状态查询。
257
+ * @param {number } dataId - 查询服务状态的数据项id。
258
+ * @param {string } dataServiceId - 发布的服务id。
259
+ * @returns {Promise } 返回查询服务状态的 Promise 对象。
260
+ */
261
+ getDataPublishedStatus ( dataId , dataServiceId ) {
262
+ var publishStateUrl = this . iportalUrl + "/web/mycontent/datas/" + dataId + "/publishstatus.json?dataServiceId=" + dataServiceId + "&forPublish=true" ;
263
+ return this . request ( "GET" , publishStateUrl ) ;
264
+ }
265
+
266
+ /**
267
+ * @function SuperMap.iPortalUser.prototype.unPublishedDataService
268
+ * @description 取消发布。
269
+ * @param {object } options - 取消发布服务具体参数。
270
+ * @param {object } options.dataId - 数据项id。
271
+ * @param {object } options.serviceType - 发布的服务类型,目前支持发布的服务类型包括:RESTDATA, RESTMAP, RESTREALSPACE, RESTSPATIALANALYST。
272
+ * @param {object } [options.dataServiceId] - 发布的服务 id。
273
+ * @returns {Promise } 返回取消发布数据服务的 Promise 对象。
274
+ */
275
+ unPublishDataService ( option ) {
276
+ return this . publishOrUnpublish ( option , false ) ;
277
+ }
278
+
279
+ /**
280
+ * @function SuperMap.iPortalUser.prototype.publishedDataService
281
+ * @description 发布数据服务。
282
+ * @param {object } options - 发布数据服务具体参数。
283
+ * @param {object } options.dataId - 数据项id。
284
+ * @param {object } options.serviceType - 发布的服务类型,目前支持发布的服务类型包括:RESTDATA, RESTMAP, RESTREALSPACE, RESTSPATIALANALYST。
285
+ * @param {object } [options.dataServiceId] - 发布的服务 id。
286
+ * @returns {Promise } 返回发布数据服务的 Promise 对象。
287
+ */
288
+ publishDataService ( option ) {
289
+ return this . publishOrUnpublish ( option , true ) ;
290
+ }
216
291
}
217
292
218
293
SuperMap . iPortalUser = IPortalUser ;
0 commit comments