2015-09-25 2 views
0

Я пытаюсь сделать следующее с API управления контентом для: содержательнойAPI возвращения содержательной «несоответствие версий» на обновление ввода

  1. Получить въездную (entry1)
  2. Найти ещё одну запись (entry2) используя данные из поля в entry1
  3. Update entry1 с данными из entry2

Мой код выглядит следующим образом:

client.getSpace("xxxxxxxx").then(function(space){ 
    space.getEntries({ 
    "content_type": "xxxxxxxx", 
    "sys.id": "2KEZYJOgDSeQMCQIE0Oo88", 
    "limit": 1 
    }).then(function(places){ 

    //search for 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); 
     }); 

    }); 


    }); 
}); 

шаги 1 и 2 работают нормально, но последний шаг, обновив исходную запись, продолжает возвращаться следующее сообщение об ошибке:

Response: { 
    "sys": { 
    "type": "Error", 
    "id": "VersionMismatch" 
    }, 
    "requestId": "content-api:2PSSF6RtpSs2YyaaisK2wc" 
} 

Как остановить это происходит? Я пробовал все, о чем я могу думать, включая ручное обновление номера sys.version, но при обновлении он, кажется, игнорирует любые данные sys, которые я предоставляю.

ответ