Parse JS SDK의 error 처리에 middleware 끼워 넣기: invalid session과 network failed 처리

tip

(이종은(Jong Lee)) #1

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를 지정하는 다른 예는 다음글을 참고하세요.