@@ -52,25 +52,36 @@ export function ReleaseItem (http, data = {}) {
5252 * client.stack({ api_key: 'api_key'}).release('release_uid').delete({items})
5353 * .then((response) => console.log(response.notice))
5454 */
55- this . delete = async ( items ) => {
55+ this . delete = async ( params ) => {
5656 let param = { }
57- if ( items === undefined ) {
57+ if ( params . items === undefined && params . item === undefined ) {
5858 param = { all : true }
59+ params . items = [ ]
5960 }
6061 try {
6162 const headers = {
6263 headers : { ...cloneDeep ( this . stackHeaders ) } ,
6364 data : {
64- ...cloneDeep ( items )
65+ ...cloneDeep ( params )
6566 } ,
6667 params : {
6768 ...cloneDeep ( param )
6869 }
6970 } || { }
71+
72+ if ( params . release_version ) {
73+ headers . headers [ 'release_version' ] = params . release_version ;
74+ }
75+
76+ if ( params . item ) {
77+ this . urlPath = `releases/${ data . releaseUid } /item`
78+ headers . data [ 'item' ] = params . item
79+ } else
80+ headers . data [ 'items' ] = params . items
7081
7182 const response = await http . delete ( this . urlPath , headers )
7283 if ( response . data ) {
73- return new Release ( http , { ... response . data , stackHeaders : data . stackHeaders } )
84+ return response . data
7485 } else {
7586 throw error ( response )
7687 }
@@ -129,9 +140,18 @@ export function ReleaseItem (http, data = {}) {
129140 ...cloneDeep ( this . stackHeaders )
130141 }
131142 } || { }
143+
144+ if ( param . release_version ) {
145+ headers . headers [ 'release_version' ] = param . release_version ;
146+ }
147+ if ( param . item ) {
148+ this . urlPath = `releases/${ data . releaseUid } /item`
149+ param [ 'item' ] = param . item
150+ } else
151+ param [ 'items' ] = param . items
132152
133153 try {
134- const response = await http . post ( param . item ? `releases/ ${ data . releaseUid } /item` : this . urlPath , param , headers )
154+ const response = await http . post ( this . urlPath , param , headers )
135155 if ( response . data ) {
136156 if ( response . data ) {
137157 return new Release ( http , { ...response . data , stackHeaders : data . stackHeaders } )
@@ -166,7 +186,10 @@ export function ReleaseItem (http, data = {}) {
166186 ...cloneDeep ( param )
167187 }
168188 } || { }
169-
189+ if ( param . release_version ) {
190+ headers . headers [ 'release_version' ] = param . release_version ;
191+ delete headers . params . release_version ;
192+ }
170193 const response = await http . get ( this . urlPath , headers )
171194 if ( response . data ) {
172195 return new ContentstackCollection ( response , http , this . stackHeaders , ReleaseItemCollection )
@@ -177,6 +200,44 @@ export function ReleaseItem (http, data = {}) {
177200 error ( err )
178201 }
179202 }
203+
204+ /**
205+ * The move request allows you to move multiple items within a release.
206+ * @memberof ReleaseItem
207+ * @func move
208+ * @returns {Promise<Object> } Response Object.
209+ * @param {Object } params.param - The data containing the items to be moved within the release.
210+ * @param {String } [params.release_version] - The release version.
211+ * @example
212+ * const moveData = {
213+ * items: [
214+ * {
215+ * uid: '{{entry_uid}}',
216+ * content_type: '{{content_type_uid}}'
217+ * }
218+ * ]
219+ * }
220+ * client.stack({ api_key: 'api_key'}).release('release_uid').item().move({ param: moveData, release_version: '1.0' })
221+ * .then((response) => { console.log(response) })
222+ */
223+ this . move = async ( { param, release_version = '' } ) => {
224+ const headers = {
225+ headers : {
226+ ...cloneDeep ( this . stackHeaders )
227+ }
228+ } || { }
229+ if ( release_version ) {
230+ headers . headers [ 'release_version' ] = release_version ;
231+ }
232+ try {
233+ const response = await http . put ( `${ this . urlPath } /move` , param , headers )
234+ if ( response . data ) {
235+ return response . data
236+ }
237+ } catch ( err ) {
238+ throw error ( err )
239+ }
240+ }
180241 }
181242 return this
182243}
0 commit comments