Parse SDK를 통해 발생하는 모든 error 처리에 과정에 미들웨어를 끼워 넣고 싶을 때가 있습니다.
대표적인 예로 다음 두가지 입니다.
- Invalid session
- 이 경우에는 로그인 페이지로 넘기는 대응을 하고 싶고
- network connection failed
- 이 경우에는 네트워크 상태 확인하라던지 재시도하라는 dialog를 띄우고 싶을 수 있죠
공식적으로 middleware를 넣는 방법이 제공되는 것은 아니지만 다음과 같이 RESTController의 request 함수를 한번 싸주면 됩니다.
const RESTController = Parse.CoreManager.getRESTController();
const originalRequest = RESTController.request;
RESTController.request = function(method, path, data, options){
return originalRequest(method, path, data, options).catch(function (err) {
if (err.code === Parse.Error.INVALID_SESSION_TOKEN) {
// do something : go to login screen
} else if (err.code === Parse.Error.CONNECTION_FAILED) {
// do something : show retry alert based on method, path, data, options
}
return Parse.Promise.error(err);
});
};
Parse.CoreManager.setRESTController(RESTController);
이렇게 서용자 정의 Controller를 지정하는 다른 예는 다음글을 참고하세요.