i'm attempting following content management api contentful:
- get entry (entry1)
- find entry (entry2) using data field in entry1
- update entry1 data entry2
my code looks this:
client.getspace("xxxxxxxx").then(function(space){ space.getentries({ "content_type": "xxxxxxxx", "sys.id": "2kezyjogdseqmcqie0oo88", "limit": 1 }).then(function(places){ //search relevant category entry space.getentries({ "content_type": contenttype.category, "sys.id": places[0].fields.category["en-gb"], "limit": 1 }).then(function(category){ //update place object places[0].fields.categorynew = { "en-gb": [ { sys: { type: "link", linktype: "entry", id: category[0].sys.id } } ] }; //update place request({ method: 'put', url: 'https://api.contentful.com/spaces/xxxxxxxx/entries/' + places[0].sys.id, headers: { 'authorization': 'bearer xxxxxxxx', 'content-type': 'application/vnd.contentful.management.v1+json', 'x-contentful-content-type': 'xxxxxxxx' }, body: json.stringify({fields:places[0].fields}) }, function (error, response, body) { console.log(body); }); }); }); });
steps 1 , 2 work fine final step, updating original entry, keeps returning following error:
response: { "sys": { "type": "error", "id": "versionmismatch" }, "requestid": "content-api:2pssf6rtpss2yyaaisk2wc" }
how stop happening? i've tried can think of including manually updating sys.version
number, when updating seems ignore sys
data provide.
refer http://docs.contentfulcma.apiary.io/#introduction/resource-ids , section titled 'updating , version locking'
you need pass version header parameter called "x-contentful-version" put request.
Comments
Post a Comment