-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathWebApiClient.ChangeSet.js.html
132 lines (92 loc) · 6.14 KB
/
WebApiClient.ChangeSet.js.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>WebApiClient.ChangeSet.js - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<script src="scripts/nav.js" defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav >
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="module-WebApiClient.Batch.html">Batch</a><ul class='methods'><li data-type='method'><a href="module-WebApiClient.Batch.html#buildPayload">buildPayload</a></li></ul></li><li><a href="module-WebApiClient.BatchRequest.html">BatchRequest</a><ul class='methods'><li data-type='method'><a href="module-WebApiClient.BatchRequest.html#stringify">stringify</a></li></ul></li><li><a href="module-WebApiClient.BatchResponse.html">BatchResponse</a></li><li><a href="module-WebApiClient.ChangeSet.html">ChangeSet</a><ul class='methods'><li data-type='method'><a href="module-WebApiClient.ChangeSet.html#stringify">stringify</a></li></ul></li><li><a href="module-WebApiClient.Response.html">Response</a></li><li><a href="WebApiClient.Promise.html">Promise</a></li><li><a href="WebApiClient.Requests.Request.html">Request</a></li></ul><h3>Modules</h3><ul><li><a href="module-Requests.html">Requests</a><ul class='methods'><li data-type='method'><a href="module-Requests.html#.Requests.Request#with">Requests.Request#with</a></li></ul></li><li><a href="module-WebApiClient.html">WebApiClient</a><ul class='methods'><li data-type='method'><a href="module-WebApiClient.html#.AppendToDefaultHeaders">AppendToDefaultHeaders</a></li><li data-type='method'><a href="module-WebApiClient.html#.Associate">Associate</a></li><li data-type='method'><a href="module-WebApiClient.html#.Configure">Configure</a></li><li data-type='method'><a href="module-WebApiClient.html#.Create">Create</a></li><li data-type='method'><a href="module-WebApiClient.html#.Delete">Delete</a></li><li data-type='method'><a href="module-WebApiClient.html#.Disassociate">Disassociate</a></li><li data-type='method'><a href="module-WebApiClient.html#.Execute">Execute</a></li><li data-type='method'><a href="module-WebApiClient.html#.Expand">Expand</a></li><li data-type='method'><a href="module-WebApiClient.html#.GetApiUrl">GetApiUrl</a></li><li data-type='method'><a href="module-WebApiClient.html#.GetDefaultHeaders">GetDefaultHeaders</a></li><li data-type='method'><a href="module-WebApiClient.html#.GetSetName">GetSetName</a></li><li data-type='method'><a href="module-WebApiClient.html#.Retrieve">Retrieve</a></li><li data-type='method'><a href="module-WebApiClient.html#.SendBatch">SendBatch</a></li><li data-type='method'><a href="module-WebApiClient.html#.SendRequest">SendRequest</a></li><li data-type='method'><a href="module-WebApiClient.html#.Update">Update</a></li></ul></li></ul>
</nav>
<div id="main">
<h1 class="page-title">WebApiClient.ChangeSet.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>(function(undefined) {
"use strict";
var instanceCount = 1;
/**
* Change sets are containers for requests inside batch requests.
* All requests inside a change set fail or succeed together.
* No GET requests are allowed inside change sets.
* @constructor
* @see https://msdn.microsoft.com/en-us/library/mt607719.aspx#bkmk_ChangeSets
* @param {Object} [parameters]
* @param {String} [parameters.name] The name of the change set (should be unique for this batch). Auto generated if ommitted
* @param {Array<Request>} [parameters.requests] Array of _POST_ requests for this change set. No get requests are allowed inside change sets. Initialized as empty array if ommitted
* @memberof module:WebApiClient
*/
var ChangeSet = function (parameters) {
var params = parameters || {};
/**
* @property {String} name - Name of the change set
* @this {ChangeSet}
*/
this.name = params.name || "changeset_" + instanceCount++;
/**
* @property {Array<Request>} requests - Requests included in the change set. Only non GET requests are allowed.
* @this {ChangeSet}
*/
this.requests = params.requests || [];
};
/**
* @description Converts current change set into a string representation for including in the batch body
* @return {String}
* @this {ChangeSet}
*/
ChangeSet.prototype.stringify = function () {
var payload = "";
var contentId = 1;
for (var i = 0; i < this.requests.length; i++) {
payload += "--" + this.name + "\n";
payload += "Content-Type: application/http\n";
payload += "Content-Transfer-Encoding:binary\n";
var request = this.requests[i];
request.contentId = request.contentId || contentId++;
payload += request.stringify() + "\n";
// When all requests are stringified, we need a closing changeSet tag
if (i === this.requests.length - 1) {
payload += "--" + this.name + "--\n\n";
}
}
return payload;
};
module.exports = ChangeSet;
} ());
</code></pre>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.7</a> on Sat Nov 06 2021 00:44:45 GMT+0100 (Mitteleuropäische Normalzeit) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>
</body>
</html>