UNPKG

more-xrm

Version:

Create more applications using the Microsoft Dynamics Xrm platform, enables querying the dynamics data model from any application.

43 lines (42 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Query_1 = require("../Query/Query"); const DynamicsBatch_1 = require("./DynamicsBatch"); const DynamicsRequest_1 = require("./DynamicsRequest"); exports.WebApiVersion = 'v9.1'; exports.DefaultMaxRecords = 100; exports.DynamicsHeaders = { 'OData-MaxVersion': '4.0', 'OData-Version': '4.0', 'Prefer': 'odata.include-annotations=OData.Community.Display.V1.FormattedValue' }; function dynamics(accessToken) { return new DynamicsClient(accessToken); } exports.default = dynamics; class DynamicsClient { constructor(accessToken) { this.dynamicsHeaders = accessToken && { 'Authorization': 'Bearer ' + accessToken }; } batch() { return DynamicsBatch_1.dynamicsBatch(this.dynamicsHeaders); } fetch(query, maxRowCount = exports.DefaultMaxRecords) { return DynamicsRequest_1.dynamicsQuery(query, maxRowCount, this.dynamicsHeaders); } optionset(entityName, attributeName) { return DynamicsRequest_1.dynamicsRequest(`/api/data/${exports.WebApiVersion}/EntityDefinitions(LogicalName='${entityName}')/Attributes(LogicalName='${attributeName}')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet($select=Options),GlobalOptionSet($select=Options)`, this.dynamicsHeaders) .then(attribute => (attribute.OptionSet || attribute.GlobalOptionSet).Options.map((option) => ({ label: (option.Label && option.Label.UserLocalizedLabel && option.Label.UserLocalizedLabel.Label), value: option.Value }))); } query(entityLogicalName, entitySetName) { return Query_1.default(entityLogicalName).path(entitySetName); } save(entitySetName, data, id) { return DynamicsRequest_1.dynamicsSave(entitySetName, data, id, this.dynamicsHeaders); } }