@@ -30,16 +30,39 @@ export function Variants(http, data) {
30
30
* @example
31
31
* import * as contentstack from '@contentstack/management'
32
32
* const client = contentstack.client()
33
- *
34
- * client.stack({ api_key: 'api_key'}).contentType('content_type_uid').entry('entry_uid').variants('uid').fetch()
35
- * .then((variants) => {
36
- * variants.title = 'My New Variants'
37
- * variants.description = 'Variants description'
38
- * return variants.update()
39
- * })
33
+ * const data = {
34
+ * "entry": {
35
+ * "title": "example",
36
+ * "url": "/example",
37
+ * "_variant": {
38
+ * "_change_set": [
39
+ * "title",
40
+ * "url"
41
+ * ]
42
+ * }
43
+ * }
44
+ * }
45
+ * client.stack({ api_key: 'api_key'}).contentType('content_type_uid').entry('entry_uid').variants('uid').update(data)
40
46
* .then((variants) => console.log(variants))
41
47
*/
42
- this . update = update ( http , 'variants' )
48
+ this . update = async ( data ) => {
49
+ try {
50
+ const response = await http . put ( this . urlPath ,
51
+ data ,
52
+ {
53
+ headers : {
54
+ ...cloneDeep ( this . stackHeaders )
55
+ }
56
+ } )
57
+ if ( response . data ) {
58
+ return response . data
59
+ } else {
60
+ return error ( response )
61
+ }
62
+ } catch ( err ) {
63
+ return error ( err )
64
+ }
65
+ }
43
66
44
67
/**
45
68
* @description The Delete an variants call is used to delete a specific variants from a content type.
@@ -69,6 +92,37 @@ export function Variants(http, data) {
69
92
*
70
93
*/
71
94
this . fetch = fetch ( http , 'variants' )
95
+
96
+ /**
97
+ * @description The version Variants call fetches Variants version details.
98
+ * @memberof Variants
99
+ * @func versions
100
+ * @returns {Promise<Variants.Variants> } Promise for Variants instance
101
+ * @example
102
+ * import * as contentstack from '@contentstack/management'
103
+ * const client = contentstack.client()
104
+ *
105
+ * client.stack({ api_key: 'api_key'}).contentType('content_type_uid').entry('entry_uid').variants('uid').versions()
106
+ * .then((variants) => console.log(variants))
107
+ *
108
+ */
109
+ this . versions = async ( ) => {
110
+ try {
111
+ const response = await http . get ( `${ this . urlPath } /versions` , {
112
+ headers : {
113
+ ...cloneDeep ( this . stackHeaders )
114
+ }
115
+ } )
116
+ if ( response . data ) {
117
+ return response . data
118
+ } else {
119
+ return error ( response )
120
+ }
121
+ } catch ( err ) {
122
+ return error ( err )
123
+ }
124
+ }
125
+
72
126
} else {
73
127
/**
74
128
* @description The Query on Variants will allow to fetch details of all or specific Variants
@@ -90,11 +144,11 @@ export function Variants(http, data) {
90
144
}
91
145
export function VariantsCollection ( http , data ) {
92
146
const obj = cloneDeep ( data . entries ) || [ ]
93
- const variantCollection = obj . map ( ( variants ) => {
147
+ const variantCollection = obj . map ( ( variant ) => {
94
148
return new Variants ( http , {
95
- content_type_uid : data . content_type_uid ,
96
- entry_uid : data . entry_uid ,
97
- variants_uid : data . variants_uid ,
149
+ content_type_uid : variant . content_type_uid ,
150
+ entry_uid : variant . entry_uid ,
151
+ variants_uid : variant . uid ,
98
152
stackHeaders : data . stackHeaders
99
153
} )
100
154
} )
0 commit comments