@@ -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 - 9 A - F ] { 8 } [ - ] ? ( [ 0 - 9 A - F ] { 4 } [ - ] ? ) { 3 } [ 0 - 9 A - 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 - 9 A - F ] { 8 } [ - ] ? ( [ 0 - 9 A - F ] { 4 } [ - ] ? ) { 3 } [ 0 - 9 A - 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 /**
0 commit comments