Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Variants entry getting None response issue fixed (#10)
  • Loading branch information
sunil-lakshman authored May 10, 2024
commit 7da938d8fc28e1c7da515d52d901730196059464
78 changes: 66 additions & 12 deletions lib/stack/contentType/entry/variants/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,39 @@ export function Variants(http, data) {
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).contentType('content_type_uid').entry('entry_uid').variants('uid').fetch()
* .then((variants) => {
* variants.title = 'My New Variants'
* variants.description = 'Variants description'
* return variants.update()
* })
* const data = {
* "entry": {
* "title": "example",
* "url": "/example",
* "_variant": {
* "_change_set": [
* "title",
* "url"
* ]
* }
* }
* }
* client.stack({ api_key: 'api_key'}).contentType('content_type_uid').entry('entry_uid').variants('uid').update(data)
* .then((variants) => console.log(variants))
*/
this.update = update(http, 'variants')
this.update = async (data) => {
try {
const response = await http.put(this.urlPath,
data,
{
headers: {
...cloneDeep(this.stackHeaders)
}
})
if (response.data) {
return response.data
} else {
return error(response)
}
} catch (err) {
return error(err)
}
}

/**
* @description The Delete an variants call is used to delete a specific variants from a content type.
Expand Down Expand Up @@ -69,6 +92,37 @@ export function Variants(http, data) {
*
*/
this.fetch = fetch(http, 'variants')

/**
* @description The version Variants call fetches Variants version details.
* @memberof Variants
* @func versions
* @returns {Promise<Variants.Variants>} Promise for Variants instance
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).contentType('content_type_uid').entry('entry_uid').variants('uid').versions()
* .then((variants) => console.log(variants))
*
*/
this.versions = async () => {
try {
const response = await http.get(`${this.urlPath}/versions`, {
headers: {
...cloneDeep(this.stackHeaders)
}
})
if (response.data) {
return response.data
} else {
return error(response)
}
} catch (err) {
return error(err)
}
}

} else {
/**
* @description The Query on Variants will allow to fetch details of all or specific Variants
Expand All @@ -90,11 +144,11 @@ export function Variants(http, data) {
}
export function VariantsCollection(http, data) {
const obj = cloneDeep(data.entries) || []
const variantCollection = obj.map((variants) => {
const variantCollection = obj.map((variant) => {
return new Variants(http, {
content_type_uid: data.content_type_uid,
entry_uid: data.entry_uid,
variants_uid: data.variants_uid,
content_type_uid: variant.content_type_uid,
entry_uid: variant.entry_uid,
variants_uid: variant.uid,
stackHeaders: data.stackHeaders
})
})
Expand Down
40 changes: 21 additions & 19 deletions lib/stack/variantGroup/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,29 @@ export function VariantGroup (http, data = {}) {
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).VariantGroup('variant_group_uid').fetch()
* .then((variant_group) => {
* variant_group.name = 'test'
* variant_group.content_types = ['iphone_product_page']
* return variant_group.update()
* })
* const up_data = {name: 'update name'}
* client.stack({ api_key: 'api_key'}).VariantGroup('variant_group_uid').update(up_data)
* .then((variant_group) => console.log(variant_group))
*
*/
this.update = update(/* The `http` parameter is being used as a dependency injection to make HTTP
requests within the `VariantGroup` and `VariantGroupCollection` functions.
It allows the functions to interact with an external API or server to
perform operations such as creating, updating, deleting, fetching, or
querying variant groups. */
/* The `http` parameter in the `VariantGroup` function is being used to make
HTTP requests to interact with the Contentstack API. It is likely being
used to send requests to create, update, delete, fetch, or query variant
groups and their related entities. */
http, 'variant_group')

this.update = async (data) => {
try {
const response = await http.put(this.urlPath,
data,
{
headers: {
...cloneDeep(this.stackHeaders)
}
})
if (response.data) {
return response.data
} else {
return error(response)
}
} catch (err) {
return error(err)
}
}
/**
* @description The Delete VariantGroup call is used to delete an existing VariantGroup permanently from your Stack.
* @memberof VariantGroup
Expand Down Expand Up @@ -71,7 +73,7 @@ export function VariantGroup (http, data = {}) {
* .then((variant_group) => console.log(variant_group))
*
*/
this.fetch = fetch(http, 'variant_group')
// this.fetch = fetch(http, 'variant_group')

/**
* @description Content type defines the structure or schema of a page or a section of your web or mobile property.
Expand Down
28 changes: 20 additions & 8 deletions lib/stack/variantGroup/variants/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,29 @@ export function Variants (http, data = {}) {
* @example
* import * as contentstack from '@contentstack/management'
* const client = contentstack.client()
*
* client.stack({ api_key: 'api_key'}).VariantGroup('variant_group_uid').variants('variant_uid').fetch()
* .then((variants) => {
* variants.name = 'test'
* variants.content_types = ['iphone_product_page']
* return variants.update()
* })
* const data = { "name": "Update name" }
* client.stack({ api_key: 'api_key'}).VariantGroup('variant_group_uid').variants('variant_uid').update(data)
* .then((variants) => console.log(variants))
*
*/
this.update = update(http, 'variants')
this.update = async (data) => {
try {
const response = await http.put(this.urlPath,
data,
{
headers: {
...cloneDeep(this.stackHeaders)
}
})
if (response.data) {
return response.data
} else {
return error(response)
}
} catch (err) {
return error(err)
}
}

/**
* @description The fetch Variants call fetches Variants details.
Expand Down
3 changes: 1 addition & 2 deletions test/unit/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,4 @@ require('./team-stack-role-mapping-test')
require('./managementToken-test')
require('./ungroupedVariants-test')
require('./variantGroup-test')
require('./variantsWithVariantsGroup-test')

require('./variantsWithVariantsGroup-test')
48 changes: 23 additions & 25 deletions test/unit/variantGroup-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ describe('Contentstack VariantGroup test', () => {
expect(variantGroup.stackHeaders).to.be.equal(undefined)
expect(variantGroup.update).to.be.equal(undefined)
expect(variantGroup.delete).to.be.equal(undefined)
expect(variantGroup.fetch).to.be.equal(undefined)
expect(variantGroup.create).to.not.equal(undefined)
expect(variantGroup.query).to.not.equal(undefined)
done()
Expand All @@ -25,7 +24,6 @@ describe('Contentstack VariantGroup test', () => {
expect(variantGroup.stackHeaders).to.be.equal(undefined)
expect(variantGroup.update).to.not.equal(undefined)
expect(variantGroup.delete).to.not.equal(undefined)
expect(variantGroup.fetch).to.not.equal(undefined)
expect(variantGroup.create).to.be.equal(undefined)
expect(variantGroup.query).to.be.equal(undefined)
done()
Expand All @@ -42,7 +40,6 @@ describe('Contentstack VariantGroup test', () => {
expect(variantGroup.stackHeaders.api_key).to.be.equal(stackHeadersMock.api_key)
expect(variantGroup.update).to.not.equal(undefined)
expect(variantGroup.delete).to.not.equal(undefined)
expect(variantGroup.fetch).to.not.equal(undefined)
expect(variantGroup.create).to.be.equal(undefined)
expect(variantGroup.query).to.be.equal(undefined)
done()
Expand Down Expand Up @@ -107,34 +104,35 @@ describe('Contentstack VariantGroup test', () => {
stackHeaders: stackHeadersMock
}
})
.update()
.update({name: 'test'})
.then((variantGroup) => {
checkVariantGroup(variantGroup)
checkVariantGroup(variantGroup.variant_group)
done()
})
.catch(done)
})

it('VariantGroup fetch test', done => {
var mock = new MockAdapter(Axios)
mock.onGet('/variant_groups/UID').reply(200, {
variant_group: {
...variantGroupMock
}
})
makeVariantGroup({
variant_group: {
...systemUidMock
},
stackHeaders: stackHeadersMock
})
.fetch()
.then((variantGroup) => {
checkVariantGroup(variantGroup)
done()
})
.catch(done)
})
// Fetch API not present in the variant group
// it('VariantGroup fetch test', done => {
// var mock = new MockAdapter(Axios)
// mock.onGet('/variant_groups/UID').reply(200, {
// variant_group: {
// ...variantGroupMock
// }
// })
// makeVariantGroup({
// variant_group: {
// ...systemUidMock
// },
// stackHeaders: stackHeadersMock
// })
// .fetch()
// .then((variantGroup) => {
// checkVariantGroup(variantGroup)
// done()
// })
// .catch(done)
// })

it('VariantGroup delete test', done => {
var mock = new MockAdapter(Axios)
Expand Down
2 changes: 1 addition & 1 deletion test/unit/variantsWithVariantsGroup-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ describe('Contentstack Variants test', () => {
})
.update()
.then((variant) => {
checkVariants(variant)
checkVariants(variant.variants)
done()
})
.catch(done)
Expand Down