Skip to content

Indentation problem with chained promise statement #97

Closed
@southball

Description

@southball

What I get:

this.app.get("/auth_callback", function(request, response) {
  var code = request.query.code;
  var resolver = obj => Promise(resolve => resolve(obj));
  var tokenBackup;

  var token = Authentication
    .getToken(request.query.code)
    .then(token => (tokenBackup = token, token), 
      PromiseErrorHandler(`Failed to get token from server. Please try to login again <a href="/">here</a>.`))
        .then(Authentication.getUser)
        .then(user => Authentication.applyUser(request, response, user.DisplayName, user.EmailAddress),
          PromiseErrorHandler(`Failed to get user data from server. Please try to login again <a href="/">here</a>.`))
            .then(success => {
              if(success) response.redirect("/");
              else return Promise((resolve, reject) => reject(null))
            })
              .catch(PromiseErrorHandler(`Your account is not a valid Sing Yin email account. Please <a href="/">login again</a>.`))
              .catch(error => {
                let message: string = `Unexpected error. Please <a href="/">login again</a>.`;
                if(error instanceof PromiseError) message = <string>error.message;
                ErrorDisplay.show(request, response, message);
              })
                .done();
});

What I expect:

this.app.get("/auth_callback", function(request, response) {
  var code = request.query.code;
  var resolver = obj => Promise(resolve => resolve(obj));
  var tokenBackup;

  var token = Authentication
    .getToken(request.query.code)
    .then(token => (tokenBackup = token, token), 
      PromiseErrorHandler(`Failed to get token from server. Please try to login again <a href="/">here</a>.`))
    .then(Authentication.getUser)
    .then(user => Authentication.applyUser(request, response, user.DisplayName, user.EmailAddress),
      PromiseErrorHandler(`Failed to get user data from server. Please try to login again <a href="/">here</a>.`))
    .then(success => {
      if(success) response.redirect("/");
      else return Promise((resolve, reject) => reject(null))
    })
    .catch(PromiseErrorHandler(`Your account is not a valid Sing Yin email account. Please <a href="/">login again</a>.`))
    .catch(error => {
      let message: string = `Unexpected error. Please <a href="/">login again</a>.`;
      if(error instanceof PromiseError) message = <string>error.message;
      ErrorDisplay.show(request, response, message);
    })
    .done();
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions