Skip to content

Commit 83670a3

Browse files
add: createRequest function
1 parent 72c5cbd commit 83670a3

File tree

2 files changed

+101
-30
lines changed

2 files changed

+101
-30
lines changed

lib/dynamics-web-api-callbacks.js

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,51 @@ function DynamicsWebApi(config) {
173173
Request.makeRequest(method, request, functionName, _internalConfig, successCallback, errorCallback);
174174
};
175175

176+
/**
177+
* Sends an asynchronous request to create a new record.
178+
*
179+
* @param {DWARequest} request - An object that represents all possible options for a current request.
180+
* @param {Function} successCallback - The function that will be passed through and be called by a successful response.
181+
* @param {Function} errorCallback - The function that will be passed through and be called by a failed response.
182+
* @example
183+
*var lead = {
184+
* subject: "Test WebAPI",
185+
* firstname: "Test",
186+
* lastname: "WebAPI",
187+
* jobtitle: "Title"
188+
*};
189+
*
190+
*var request = {
191+
* entity: lead,
192+
* collection: "leads",
193+
* returnRepresentation: true
194+
*}
195+
*
196+
*dynamicsWebApi.createRequest(request, function (response) {
197+
*}, function (error) {
198+
*});
199+
*/
200+
this.createRequest = function (request, successCallback, errorCallback) {
201+
ErrorHelper.parameterCheck(request, 'DynamicsWebApi.create', 'request');
202+
ErrorHelper.callbackParameterCheck(successCallback, "DynamicsWebApi.create", "successCallback");
203+
ErrorHelper.callbackParameterCheck(errorCallback, "DynamicsWebApi.create", "errorCallback");
204+
205+
var onSuccess = function (response) {
206+
if (response.data) {
207+
successCallback(response.data);
208+
}
209+
else {
210+
var entityUrl = response.headers['OData-EntityId']
211+
? response.headers['OData-EntityId']
212+
: response.headers['odata-entityid'];
213+
var id = /[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(entityUrl)[0];
214+
successCallback(id);
215+
}
216+
}
217+
218+
_makeRequest("POST", request, 'create', onSuccess, errorCallback);
219+
};
220+
176221
/**
177222
* Sends an asynchronous request to create a new record.
178223
*
@@ -198,8 +243,6 @@ function DynamicsWebApi(config) {
198243

199244
ErrorHelper.parameterCheck(object, "DynamicsWebApi.create", "object");
200245
ErrorHelper.stringParameterCheck(collection, "DynamicsWebApi.create", "collection");
201-
ErrorHelper.callbackParameterCheck(successCallback, "DynamicsWebApi.create", "successCallback");
202-
ErrorHelper.callbackParameterCheck(errorCallback, "DynamicsWebApi.create", "errorCallback");
203246

204247
if (prefer) {
205248
ErrorHelper.stringOrArrayParameterCheck(prefer, "DynamicsWebApi.create", "prefer");
@@ -216,22 +259,7 @@ function DynamicsWebApi(config) {
216259
entity: object
217260
};
218261

219-
var result = RequestConverter.convertRequest(request, "create", _internalConfig);
220-
221-
var onSuccess = function (response) {
222-
if (response.data) {
223-
successCallback(response.data);
224-
}
225-
else {
226-
var entityUrl = response.headers['OData-EntityId']
227-
? response.headers['OData-EntityId']
228-
: response.headers['odata-entityid'];
229-
var id = /[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(entityUrl)[0];
230-
successCallback(id);
231-
}
232-
}
233-
234-
_makeRequest("POST", request, 'create', onSuccess, errorCallback);
262+
this.createRequest(request, successCallback, errorCallback);
235263
};
236264

237265
/**

lib/dynamics-web-api.js

Lines changed: 55 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,46 @@ function DynamicsWebApi(config) {
175175
});
176176
};
177177

178+
/**
179+
* Sends an asynchronous request to create a new record.
180+
*
181+
* @param {DWARequest} request - An object that represents all possible options for a current request.
182+
* @returns {Promise}
183+
* @example
184+
*var lead = {
185+
* subject: "Test WebAPI",
186+
* firstname: "Test",
187+
* lastname: "WebAPI",
188+
* jobtitle: "Title"
189+
*};
190+
*
191+
*var request = {
192+
* entity: lead,
193+
* collection: "leads",
194+
* returnRepresentation: true
195+
*}
196+
*
197+
*dynamicsWebApi.createRequest(request).then(function (response) {
198+
*}).catch(function (error) {
199+
*});
200+
*/
201+
this.createRequest = function (request) {
202+
ErrorHelper.parameterCheck(request, 'DynamicsWebApi.create', 'request');
203+
204+
return _makeRequest('POST', request, 'create')
205+
.then(function (response) {
206+
if (response.data) {
207+
return response.data;
208+
}
209+
210+
var entityUrl = response.headers['OData-EntityId']
211+
? response.headers['OData-EntityId']
212+
: response.headers['odata-entityid'];
213+
var id = /[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(entityUrl)[0];
214+
return id;
215+
});
216+
};
217+
178218
/**
179219
* Sends an asynchronous request to create a new record.
180220
*
@@ -214,25 +254,28 @@ function DynamicsWebApi(config) {
214254
entity: object
215255
};
216256

217-
return _makeRequest('POST', request, 'create')
218-
.then(function (response) {
219-
if (response.data) {
220-
return response.data;
221-
}
222-
223-
var entityUrl = response.headers['OData-EntityId']
224-
? response.headers['OData-EntityId']
225-
: response.headers['odata-entityid'];
226-
var id = /[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(entityUrl)[0];
227-
return id;
228-
});
257+
return this.createRequest(request);
229258
};
230259

231260
/**
232261
* Sends an asynchronous request to retrieve a record.
233262
*
234263
* @param {DWARequest} request - An object that represents all possible options for a current request.
235264
* @returns {Promise}
265+
* @example
266+
*var request = {
267+
* key: '7d577253-3ef0-4a0a-bb7f-8335c2596e70',
268+
* collection: "leads",
269+
* select: ["fullname", "subject"],
270+
* ifnonematch: 'W/"468026"',
271+
* includeAnnotations: "OData.Community.Display.V1.FormattedValue"
272+
*};
273+
*
274+
*dynamicsWebApi.retrieveRequest(request).then(function (response) {
275+
*
276+
*}).catch(function (error) {
277+
*
278+
*});
236279
*/
237280
this.retrieveRequest = function (request) {
238281
ErrorHelper.parameterCheck(request, 'DynamicsWebApi.retrieve', 'request');

0 commit comments

Comments
 (0)