Skip to content

Commit c5cdcc4

Browse files
Release v1.6.5
1 parent 5705cd1 commit c5cdcc4

File tree

6 files changed

+56
-118
lines changed

6 files changed

+56
-118
lines changed

dist/dynamics-web-api-callbacks.js

Lines changed: 25 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! dynamics-web-api-callbacks v1.6.4 (c) 2020 Aleksandr Rogov */
1+
/*! dynamics-web-api-callbacks v1.6.5 (c) 2020 Aleksandr Rogov */
22
(function webpackUniversalModuleDefinition(root, factory) {
33
if(typeof exports === 'object' && typeof module === 'object')
44
module.exports = factory();
@@ -884,19 +884,24 @@ function stringifyData(data, config) {
884884
return stringifiedData;
885885
}
886886

887-
var convertToBatch = function (requestCollection, config) {
887+
var _batchRequestCollection = [];
888+
var _responseParseParams = [];
889+
890+
var _convertToBatch = function (requestCollection, config) {
888891
var batchBoundary = 'dwa_batch_' + Utility.generateUUID();
889892

890893
var batchBody = [];
891894
var currentChangeSet = null;
892895
var contentId = 100000;
893896

894897
for (var i = 0; i < requestCollection.length; i++) {
898+
var rawRequest = requestCollection[i].request;
899+
895900
if (config.useEntityNames) {
896-
requestCollection[i].request.collection = findCollectionName(requestCollection[i].request.collection) || requestCollection[i].request.collection;
901+
rawRequest.collection = findCollectionName(rawRequest.collection) || rawRequest.collection;
897902
}
898903

899-
var request = RequestConverter.convertRequest(requestCollection[i].request, "executeBatch", config);
904+
var request = RequestConverter.convertRequest(rawRequest, "executeBatch", config);
900905
var method = requestCollection[i].method;
901906
var isGet = method === 'GET';
902907

@@ -953,7 +958,7 @@ var convertToBatch = function (requestCollection, config) {
953958
batchBody.push(key + ': ' + request.headers[key]);
954959
}
955960

956-
var data = requestCollection[i].request.data || requestCollection[i].request.entity;
961+
var data = rawRequest.data || rawRequest.entity;
957962

958963
if (!isGet && data) {
959964
batchBody.push('\n' + stringifyData(data, config));
@@ -969,9 +974,6 @@ var convertToBatch = function (requestCollection, config) {
969974
return { boundary: batchBoundary, body: batchBody.join('\n') };
970975
};
971976

972-
var batchRequestCollection = [];
973-
var responseParseParams = [];
974-
975977
/**
976978
* Sends a request to given URL with given parameters
977979
*
@@ -992,28 +994,18 @@ function sendRequest(method, path, config, data, additionalHeaders, responsePara
992994
responseParams = responseParams || {};
993995

994996
//add response parameters to parse
995-
responseParseParams.push(responseParams);
997+
_responseParseParams.push(responseParams);
996998

997999
//stringify passed data
9981000
var stringifiedData = stringifyData(data, config);
9991001

1000-
//if (isBatch) {
1001-
// batchRequestCollection.push({
1002-
// method: method, path: path, config: config, data: data, headers: additionalHeaders
1003-
// });
1004-
// return;
1005-
//}
1006-
//if (!isBatch)
1007-
// stringifiedData = stringifyData(data, config);
1008-
//}
1009-
10101002
if (path === '$batch') {
1011-
var batchResult = convertToBatch(batchRequestCollection, config);
1003+
var batchResult = _convertToBatch(_batchRequestCollection, config);
10121004

10131005
stringifiedData = batchResult.body;
10141006

10151007
//clear an array of requests
1016-
batchRequestCollection.length = 0;
1008+
_batchRequestCollection.length = 0;
10171009

10181010
additionalHeaders = setStandardHeaders(additionalHeaders);
10191011
additionalHeaders['Content-Type'] = 'multipart/mixed;boundary=' + batchResult.boundary;
@@ -1081,7 +1073,7 @@ function sendRequest(method, path, config, data, additionalHeaders, responsePara
10811073
uri: config.webApiUrl + path,
10821074
data: stringifiedData,
10831075
additionalHeaders: additionalHeaders,
1084-
responseParams: responseParseParams,
1076+
responseParams: _responseParseParams,
10851077
successCallback: successCallback,
10861078
errorCallback: errorCallback,
10871079
isAsync: isAsync,
@@ -1098,20 +1090,8 @@ function sendRequest(method, path, config, data, additionalHeaders, responsePara
10981090
}
10991091
}
11001092

1101-
function _getEntityNames(entityName, config, successCallback, errorCallback) {
1102-
1103-
//var xrmUtility = Utility.getXrmUtility();
1093+
function _getCollectionNames(entityName, config, successCallback, errorCallback) {
11041094

1105-
////try using Xrm.Utility.getEntityMetadata first (because D365 caches metadata)
1106-
//if (!Utility.isNull(xrmUtility) && typeof xrmUtility.getEntityMetadata === "function") {
1107-
// xrmUtility.getEntityMetadata(entityName, []).then(function (response) {
1108-
// if (!response)
1109-
// successCallback(entityName);
1110-
// else
1111-
// successCallback(response.EntitySetName);
1112-
// }, errorCallback);
1113-
//}
1114-
//else {
11151095
//make a web api call for Node.js apps
11161096
if (!Utility.isNull(_entityNames)) {
11171097
successCallback(findCollectionName(entityName) || entityName);
@@ -1148,7 +1128,7 @@ function _isEntityNameException(entityName) {
11481128
return exceptions.indexOf(entityName) > -1;
11491129
}
11501130

1151-
function _getCollectionName(entityName, config, successCallback, errorCallback) {
1131+
function _checkCollectionName(entityName, config, successCallback, errorCallback) {
11521132

11531133
if (_isEntityNameException(entityName) || Utility.isNull(entityName)) {
11541134
successCallback(entityName);
@@ -1163,41 +1143,30 @@ function _getCollectionName(entityName, config, successCallback, errorCallback)
11631143
}
11641144

11651145
try {
1166-
_getEntityNames(entityName, config, successCallback, errorCallback);
1167-
1168-
1169-
//var collectionName = findCollectionName(entityName);
1170-
1171-
//if (Utility.isNull(collectionName)) {
1172-
// _getEntityNames(entityName, config, successCallback, errorCallback);
1173-
//}
1174-
//else {
1175-
// successCallback(collectionName);
1176-
//}
1146+
_getCollectionNames(entityName, config, successCallback, errorCallback);
11771147
}
11781148
catch (error) {
11791149
errorCallback({ message: 'Unable to fetch Collection Names. Error: ' + error.message });
11801150
}
11811151
}
11821152

11831153
function makeRequest(method, request, functionName, config, responseParams, resolve, reject) {
1184-
var successCallback = function (collectionName) {
1185-
request.collection = collectionName;
1186-
var result = RequestConverter.convertRequest(request, functionName, config);
1187-
sendRequest(method, result.url, config, request.data || request.entity, result.headers, responseParams, resolve, reject, request.isBatch, result.async);
1188-
};
1189-
1154+
//no need to make a request to web api if it's a part of batch
11901155
if (request.isBatch) {
11911156
//add response parameters to parse
1192-
responseParseParams.push(responseParams || {});
1157+
_responseParseParams.push(responseParams || {});
11931158

1194-
batchRequestCollection.push({ method: method, request: request });
1159+
_batchRequestCollection.push({ method: method, request: request });
11951160

11961161
//check for errors
11971162
RequestConverter.convertRequest(request, functionName, config);
11981163
}
11991164
else {
1200-
_getCollectionName(request.collection, config, successCallback, reject);
1165+
_checkCollectionName(request.collection, config, function (collectionName) {
1166+
request.collection = collectionName;
1167+
var result = RequestConverter.convertRequest(request, functionName, config);
1168+
sendRequest(method, result.url, config, request.data || request.entity, result.headers, responseParams, resolve, reject, request.isBatch, result.async);
1169+
}, reject);
12011170
}
12021171
}
12031172

dist/dynamics-web-api-callbacks.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dynamics-web-api.js

Lines changed: 25 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! dynamics-web-api v1.6.4 (c) 2020 Aleksandr Rogov */
1+
/*! dynamics-web-api v1.6.5 (c) 2020 Aleksandr Rogov */
22
(function webpackUniversalModuleDefinition(root, factory) {
33
if(typeof exports === 'object' && typeof module === 'object')
44
module.exports = factory();
@@ -589,19 +589,24 @@ function stringifyData(data, config) {
589589
return stringifiedData;
590590
}
591591

592-
var convertToBatch = function (requestCollection, config) {
592+
var _batchRequestCollection = [];
593+
var _responseParseParams = [];
594+
595+
var _convertToBatch = function (requestCollection, config) {
593596
var batchBoundary = 'dwa_batch_' + Utility.generateUUID();
594597

595598
var batchBody = [];
596599
var currentChangeSet = null;
597600
var contentId = 100000;
598601

599602
for (var i = 0; i < requestCollection.length; i++) {
603+
var rawRequest = requestCollection[i].request;
604+
600605
if (config.useEntityNames) {
601-
requestCollection[i].request.collection = findCollectionName(requestCollection[i].request.collection) || requestCollection[i].request.collection;
606+
rawRequest.collection = findCollectionName(rawRequest.collection) || rawRequest.collection;
602607
}
603608

604-
var request = RequestConverter.convertRequest(requestCollection[i].request, "executeBatch", config);
609+
var request = RequestConverter.convertRequest(rawRequest, "executeBatch", config);
605610
var method = requestCollection[i].method;
606611
var isGet = method === 'GET';
607612

@@ -658,7 +663,7 @@ var convertToBatch = function (requestCollection, config) {
658663
batchBody.push(key + ': ' + request.headers[key]);
659664
}
660665

661-
var data = requestCollection[i].request.data || requestCollection[i].request.entity;
666+
var data = rawRequest.data || rawRequest.entity;
662667

663668
if (!isGet && data) {
664669
batchBody.push('\n' + stringifyData(data, config));
@@ -674,9 +679,6 @@ var convertToBatch = function (requestCollection, config) {
674679
return { boundary: batchBoundary, body: batchBody.join('\n') };
675680
};
676681

677-
var batchRequestCollection = [];
678-
var responseParseParams = [];
679-
680682
/**
681683
* Sends a request to given URL with given parameters
682684
*
@@ -697,28 +699,18 @@ function sendRequest(method, path, config, data, additionalHeaders, responsePara
697699
responseParams = responseParams || {};
698700

699701
//add response parameters to parse
700-
responseParseParams.push(responseParams);
702+
_responseParseParams.push(responseParams);
701703

702704
//stringify passed data
703705
var stringifiedData = stringifyData(data, config);
704706

705-
//if (isBatch) {
706-
// batchRequestCollection.push({
707-
// method: method, path: path, config: config, data: data, headers: additionalHeaders
708-
// });
709-
// return;
710-
//}
711-
//if (!isBatch)
712-
// stringifiedData = stringifyData(data, config);
713-
//}
714-
715707
if (path === '$batch') {
716-
var batchResult = convertToBatch(batchRequestCollection, config);
708+
var batchResult = _convertToBatch(_batchRequestCollection, config);
717709

718710
stringifiedData = batchResult.body;
719711

720712
//clear an array of requests
721-
batchRequestCollection.length = 0;
713+
_batchRequestCollection.length = 0;
722714

723715
additionalHeaders = setStandardHeaders(additionalHeaders);
724716
additionalHeaders['Content-Type'] = 'multipart/mixed;boundary=' + batchResult.boundary;
@@ -786,7 +778,7 @@ function sendRequest(method, path, config, data, additionalHeaders, responsePara
786778
uri: config.webApiUrl + path,
787779
data: stringifiedData,
788780
additionalHeaders: additionalHeaders,
789-
responseParams: responseParseParams,
781+
responseParams: _responseParseParams,
790782
successCallback: successCallback,
791783
errorCallback: errorCallback,
792784
isAsync: isAsync,
@@ -803,20 +795,8 @@ function sendRequest(method, path, config, data, additionalHeaders, responsePara
803795
}
804796
}
805797

806-
function _getEntityNames(entityName, config, successCallback, errorCallback) {
807-
808-
//var xrmUtility = Utility.getXrmUtility();
798+
function _getCollectionNames(entityName, config, successCallback, errorCallback) {
809799

810-
////try using Xrm.Utility.getEntityMetadata first (because D365 caches metadata)
811-
//if (!Utility.isNull(xrmUtility) && typeof xrmUtility.getEntityMetadata === "function") {
812-
// xrmUtility.getEntityMetadata(entityName, []).then(function (response) {
813-
// if (!response)
814-
// successCallback(entityName);
815-
// else
816-
// successCallback(response.EntitySetName);
817-
// }, errorCallback);
818-
//}
819-
//else {
820800
//make a web api call for Node.js apps
821801
if (!Utility.isNull(_entityNames)) {
822802
successCallback(findCollectionName(entityName) || entityName);
@@ -853,7 +833,7 @@ function _isEntityNameException(entityName) {
853833
return exceptions.indexOf(entityName) > -1;
854834
}
855835

856-
function _getCollectionName(entityName, config, successCallback, errorCallback) {
836+
function _checkCollectionName(entityName, config, successCallback, errorCallback) {
857837

858838
if (_isEntityNameException(entityName) || Utility.isNull(entityName)) {
859839
successCallback(entityName);
@@ -868,41 +848,30 @@ function _getCollectionName(entityName, config, successCallback, errorCallback)
868848
}
869849

870850
try {
871-
_getEntityNames(entityName, config, successCallback, errorCallback);
872-
873-
874-
//var collectionName = findCollectionName(entityName);
875-
876-
//if (Utility.isNull(collectionName)) {
877-
// _getEntityNames(entityName, config, successCallback, errorCallback);
878-
//}
879-
//else {
880-
// successCallback(collectionName);
881-
//}
851+
_getCollectionNames(entityName, config, successCallback, errorCallback);
882852
}
883853
catch (error) {
884854
errorCallback({ message: 'Unable to fetch Collection Names. Error: ' + error.message });
885855
}
886856
}
887857

888858
function makeRequest(method, request, functionName, config, responseParams, resolve, reject) {
889-
var successCallback = function (collectionName) {
890-
request.collection = collectionName;
891-
var result = RequestConverter.convertRequest(request, functionName, config);
892-
sendRequest(method, result.url, config, request.data || request.entity, result.headers, responseParams, resolve, reject, request.isBatch, result.async);
893-
};
894-
859+
//no need to make a request to web api if it's a part of batch
895860
if (request.isBatch) {
896861
//add response parameters to parse
897-
responseParseParams.push(responseParams || {});
862+
_responseParseParams.push(responseParams || {});
898863

899-
batchRequestCollection.push({ method: method, request: request });
864+
_batchRequestCollection.push({ method: method, request: request });
900865

901866
//check for errors
902867
RequestConverter.convertRequest(request, functionName, config);
903868
}
904869
else {
905-
_getCollectionName(request.collection, config, successCallback, reject);
870+
_checkCollectionName(request.collection, config, function (collectionName) {
871+
request.collection = collectionName;
872+
var result = RequestConverter.convertRequest(request, functionName, config);
873+
sendRequest(method, result.url, config, request.data || request.entity, result.headers, responseParams, resolve, reject, request.isBatch, result.async);
874+
}, reject);
906875
}
907876
}
908877

dist/dynamics-web-api.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dynamics-web-api",
3-
"version": "1.6.4",
3+
"version": "1.6.5",
44
"description": "DynamicsWebApi is a Microsoft Dynamics CRM Web API helper library",
55
"keywords": [
66
"crm",

0 commit comments

Comments
 (0)