Просмотр исходного кода

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

Handle when v1 is deprecated, print a message instead of an error
Shane Kilkelly 7 лет назад
Родитель
Сommit
766dcc379c

+ 31 - 0
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/snapshot/base/MissingRepositoryException.java

@@ -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(

+ 10 - 0
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/snapshot/base/Request.java

@@ -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