2014-11-13 11 views
0

소프트 삭제 기능이 활성화 된 자바 스크립트 라이브러리를 사용하는 Azure 모바일 서비스의 테이블로 작업하고 있습니다. 삭제 부분은 정상적으로 작동하지만 삭제 취소로 인해 문제가 발생합니다. 나는 온통 보았고 실제로 삭제 된 레코드를 삭제 취소하는 방법에 대한 문서를 찾을 수없는 것 같습니다. 나는 레코드를 갱신하고 __deleted 필드를 false로 설정하려고했지만 단지 412 에러 "Precondition Failed"를 반환합니다.자바 모바일 라이브러리가있는 Azure 모바일 서비스

 function addUser(user) { 

     return $q(function (resolve, reject) { 
      var users = aadClient.getTable("user"); 
      var newUser = { id: user.userPrincipalName, name: user.givenName + " " + user.surname }; 

      users.where({ id: user.userPrincipalName }) 
       .read({ __includedeleted: true }) 
       .done(function (results) { 
        if (results.length < 1) { 
         users.insert(newUser).done(function (result) { 
          resolve(result); 
         }, function (err) { 
          reject(err); 
         }); 

        } else { 
         results[0].__deleted = false; 
         users.update(results[0]).done(function (result) { 
          resolve(result); 
         }, function (err) { 
          reject(err); 
         }); 

        } 

       }); 

     }) 

    } 

답변

1

삭제 취소는/table/tablename/recordId에 대한 POST입니다. 우리는 아직 JS SDK에 그 메소드를 추가하지 않은 것처럼 보입니다. 따라서 아약스 요청을 직접 수행하는 것이 가장 빠를 수 있습니다.

또한 테이블의 삽입 스크립트를 업데이트하여 충돌을 캡처하고 삽입 프로세스 중에 문제를 해결하고 클라이언트를 그림 밖으로 떠날 수 있습니다. 이것이 제가 추천하는 길입니다.

은 (내가 사용하는 백엔드 유형을 알고하자, 내가 필요한 경우 이렇게하는 방법의 조각 게시 할 수 있는지 볼 수 있습니다)

+0

는 빠른 응답 해 주셔서 감사합니다. JavaScript 백엔드를 사용하고 있습니다. 빠른 후속 질문. 이 문서에서는 서버에서 삭제 취소 요청 (request.undelete)을 삭제하는 기능을 참조하지만이 기능도 작동하지 않는 것으로 보입니다. 이것도 잘 작동하도록하는 비밀이 있습니까? – Alfawan

+0

읽어야하는 삭제 취소 요청을 감지합니다. 죄송합니다. – Alfawan

+0

그게 효과가! 주의 할 점은 POST 요청의 본문이 비어 있어야한다는 것입니다. – Alfawan

관련 문제