Merge pull request #49 from overleaf/sk-git-bridge-handle-deprecation

Handle when v1 is deprecated, print a message instead of an error
This commit is contained in:
Shane Kilkelly
2019-01-08 10:09:29 +00:00
committed by GitHub
2 changed files with 41 additions and 0 deletions
@@ -18,6 +18,37 @@ public class MissingRepositoryException extends SnapshotAPIException {
"see https://www.overleaf.com/help/342 for more information."
);
static List<String> buildDeprecatedMessage(String newUrl) {
if (newUrl == null) {
return Arrays.asList(
"This project has not yet been moved into the new version of Overleaf. You will",
"need to move it in order to continue working on it. Please visit this project",
"online on www.overleaf.com to do this.",
"",
"After migrating this project to the new version of Overleaf, you will be",
"prompted to update your git remote to the project's new identifier.",
"",
"If this is unexpected, please contact us at support@overleaf.com, or",
"see https://www.overleaf.com/help/342 for more information."
);
} else {
return Arrays.asList(
"This project has not yet been moved into the new version of Overleaf. You will",
"need to move it in order to continue working on it. Please visit this project",
"online to do this:",
"",
" " + newUrl,
"",
"After migrating this project to the new version of Overleaf, you will be",
"prompted to update your git remote to the project's new identifier.",
"",
"If this is unexpected, please contact us at support@overleaf.com, or",
"see https://www.overleaf.com/help/342 for more information."
);
}
}
static List<String> buildExportedToV2Message(String remoteUrl) {
if (remoteUrl == null) {
return Arrays.asList(
@@ -90,6 +90,16 @@ public abstract class Request<T extends Result> {
throw new MissingRepositoryException(
MissingRepositoryException.buildExportedToV2Message(newRemote)
);
} else if ("Overleaf v1 is Deprecated".equals(message)) {
String newUrl;
if (json.has("newUrl")) {
newUrl = json.get("newUrl").getAsString();
} else {
newUrl = null;
}
throw new MissingRepositoryException(
MissingRepositoryException.buildDeprecatedMessage(newUrl)
);
}
} catch (IllegalStateException
| ClassCastException