@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.43 kB
JavaScript
import e from"../../../request.js";import{mapParameters as t}from"../../operations/urlUtils.js";function o(e,t){const o=e.toJSON();return o.objectIds&&(o.objectIds=o.objectIds.join(",")),o.orderByFields&&(o.orderByFields=o.orderByFields.join(",")),o.outFields&&!t?.returnCountOnly?o.outFields.includes("*")?o.outFields="*":o.outFields=o.outFields.join(","):delete o.outFields,o.outSpatialReference&&(o.outSR=o.outSR.wkid||JSON.stringify(o.outSR.toJSON()),delete o.outSpatialReference),o.dynamicDataSource&&(o.layer=JSON.stringify({source:o.dynamicDataSource}),delete o.dynamicDataSource),o}async function r(e,t,o){const r=await s(e,t,o),n=r.data,a=n.geometryType,d=n.spatialReference,c={};for(const s of n.relatedRecordGroups){const e={fields:void 0,objectIdFieldName:void 0,geometryType:a,spatialReference:d,hasZ:!!n.hasZ,hasM:!!n.hasM,features:s.relatedRecords};if(null!=s.objectId)c[s.objectId]=e;else for(const t in s)s.hasOwnProperty(t)&&"relatedRecords"!==t&&(c[s[t]]=e)}return{...r,data:c}}async function n(e,t,o){const r=await s(e,t,o,{returnCountOnly:!0}),n=r.data,a={};for(const s of n.relatedRecordGroups)null!=s.objectId&&(a[s.objectId]=s.count);return{...r,data:a}}async function s(r,n,s={},a){const d=t({...r.query,f:"json",...a,...o(n,a)});return e(r.path+"/queryRelatedRecords",{...s,query:{...s.query,...d}})}export{r as executeRelationshipQuery,n as executeRelationshipQueryForCount,o as toQueryStringParameters};