public class AddEvernoteAccountController extends BaseController {
@Override
protected Navigation execute(UserModel loginUserModel) throws Exception {
EvernoteAuth evernoteAuth = null;
try {
evernoteAuth = getEvernoteAuth();
} catch (Exception e) {
return redirect("/account/setting");
}
NoteStoreClient noteStoreClient = new ClientFactory(evernoteAuth).createNoteStoreClient();
// アクセストークンが期限切れで再設定する場合、NoteBookは既に作成されている可能性があるため
// 作成する前に既存のNotebookが存在するかをチェック
Notebook notebook = null;
if(loginUserModel.getEvernoteNotebookId() == null) {
notebook = createNotebook(noteStoreClient);
}else {
try {
notebook = noteStoreClient.getNotebook(loginUserModel.getEvernoteNotebookId());
} catch (Exception e) {
// ユーザーに削除された場合再作成する もしく アカウント変更した場合
notebook = createNotebook(noteStoreClient);
}
}
loginUserModel.setEvernoteAccessToken(new Text(evernoteAuth.getToken()));
if(notebook != null) {
loginUserModel.setEvernoteNotebookId(notebook.getGuid());
}
// ユーザー情報を更新