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

Big refactoring, implemented SnapshotGetSavedVersRequest.

Winston Li 12 лет назад
Родитель
Сommit
28013f586c
23 измененных файлов с 607 добавлено и 325 удалено
  1. 241 153
      services/git-bridge/.idea/workspace.xml
  2. 18 0
      services/git-bridge/build.xml
  3. 0 43
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java
  4. 0 14
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java
  5. 0 14
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetForVersionRequest.java
  6. 0 14
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.java
  7. 12 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/JSONSource.java
  8. 61 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/Request.java
  9. 28 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/Result.java
  10. 2 2
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/SnapshotAPIRequest.java
  11. 22 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocRequest.java
  12. 22 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocResult.java
  13. 22 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotGetForVersionRequest.java
  14. 21 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotGetForVersionResult.java
  15. 22 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequest.java
  16. 31 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersResult.java
  17. 21 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotInfo.java
  18. 19 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/WLUser.java
  19. 6 29
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java
  20. 0 41
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java
  21. 0 15
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetSavedVersRequestTests.java
  22. 37 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/base/RequestTests.java
  23. 22 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequestTests.java

+ 241 - 153
services/git-bridge/.idea/workspace.xml

@@ -7,15 +7,19 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="0c822a5a-f421-4f3c-b941-5c2809c4546f" name="Default" comment="">
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/SnapshotRepositoryBuilder.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/SnapshotRepositoryBuilder.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/application/WLGitBridgeApplicationTests.java" afterPath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/application/WLGitBridgeApplicationTests.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/Request.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocRequest.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotGetForVersionRequest.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequest.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetForVersionRequest.java" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.java" afterPath="" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/SnapshotAPIRequest.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java" afterPath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/base/RequestTests.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetSavedVersRequestTests.java" afterPath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequestTests.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/handler/WLRepositoryResolver.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/handler/WLRepositoryResolver.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/build.xml" afterPath="$PROJECT_DIR$/build.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
     </list>
     <ignored path="writelatex-git-bridge.iws" />
@@ -39,71 +43,82 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="DummySnapshotDBAPI.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotDBAPI.java">
+      <file leaf-file-name="WLProject.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="260" max-vertical-offset="645">
-              <caret line="23" column="0" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1305">
+              <caret line="80" column="1" selection-start-line="80" selection-start-column="1" selection-end-line="80" selection-end-column="1" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="RequestTests.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java">
+      <file leaf-file-name="SnapshotGetDocResult.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocResult.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="150" max-vertical-offset="705">
-              <caret line="18" column="40" selection-start-line="18" selection-start-column="30" selection-end-line="18" selection-end-column="40" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="420">
+              <caret line="19" column="8" selection-start-line="19" selection-start-column="8" selection-end-line="19" selection-end-column="8" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="Snapshot.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java">
+      <file leaf-file-name="SnapshotGetForVersionRequestTests.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetForVersionRequestTests.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="43" max-vertical-offset="405">
-              <caret line="9" column="25" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
+              <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="WLProject.java" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java">
+      <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/build.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.24749164" vertical-offset="1052" max-vertical-offset="1650">
-              <caret line="80" column="8" selection-start-line="80" selection-start-column="8" selection-end-line="80" selection-end-column="8" />
+            <state vertical-scroll-proportion="7.6538463" vertical-offset="4369" max-vertical-offset="4905">
+              <caret line="277" column="6" selection-start-line="277" selection-start-column="6" selection-end-line="277" selection-end-column="6" />
+              <caret line="278" column="6" selection-start-line="278" selection-start-column="6" selection-end-line="278" selection-end-column="6" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="WLDataModel.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java">
+      <file leaf-file-name="SnapshotGetDocRequestTests.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetDocRequestTests.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="270" max-vertical-offset="420">
-              <caret line="18" column="33" selection-start-line="18" selection-start-column="33" selection-end-line="18" selection-end-column="33" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
+              <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="JSONModel.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java">
+      <file leaf-file-name="SnapshotGetSavedVersRequestTests.java" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequestTests.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="105" max-vertical-offset="270">
-              <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
+            <state vertical-scroll-proportion="0.621547" vertical-offset="15" max-vertical-offset="420">
+              <caret line="16" column="39" selection-start-line="16" selection-start-column="39" selection-end-line="16" selection-end-column="39" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="WLDataModelTests.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLDataModelTests.java">
+      <file leaf-file-name="SnapshotGetSavedVersResult.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersResult.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="315">
-              <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="120" max-vertical-offset="555">
+              <caret line="29" column="0" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="SnapshotAPIRequestTests.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotAPIRequestTests.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
+              <caret line="7" column="38" selection-start-line="7" selection-start-column="38" selection-end-line="13" selection-end-column="0" />
               <folding />
             </state>
           </provider>
@@ -129,16 +144,6 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="SnapshotGetSavedVersRequestTests.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetSavedVersRequestTests.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="315">
-              <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FindManager">
@@ -152,9 +157,6 @@
   <component name="IdeDocumentHistory">
     <option name="changedFiles">
       <list>
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/handler/WLRepositoryResolver.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/RepositoryBuilder.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/SnapshotAPIFacade.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/DummySnapshotAPIFacade.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/DummySnapshotDBAPI.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/SnapshotDBAPI.java" />
@@ -181,7 +183,6 @@
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/WLProjectModel.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/WLProject.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/Snapshot.java" />
-        <option value="$PROJECT_DIR$/build.xml" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/WLDataModel.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/Request.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPIRequest.java" />
@@ -203,6 +204,10 @@
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java" />
         <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLProjectTests.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocResult.java" />
+        <option value="$PROJECT_DIR$/build.xml" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersResult.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequestTests.java" />
       </list>
     </option>
   </component>
@@ -238,7 +243,6 @@
     </navigator>
     <panes>
       <pane id="Scope" />
-      <pane id="PackagesPane" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -353,6 +357,70 @@
               <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="writelatex-git-bridge" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="writelatex-git-bridge" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="test" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="test" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="writelatex" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="request" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="getsavedvers" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="writelatex-git-bridge" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="writelatex-git-bridge" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="test" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="test" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="writelatex" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="request" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
           <PATH>
             <PATH_ELEMENT>
               <option name="myItemId" value="writelatex-git-bridge" />
@@ -919,6 +987,7 @@
           </PATH>
         </subPane>
       </pane>
+      <pane id="PackagesPane" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -964,7 +1033,7 @@
       <recent name="$PROJECT_DIR$/libs" />
     </key>
   </component>
-  <component name="RunManager" selected="JUnit.RequestTests">
+  <component name="RunManager" selected="JUnit.SnapshotGetSavedVersRequestTests">
     <configuration default="false" name="Request" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
       <option name="MAIN_CLASS_NAME" value="uk.ac.ic.wlgitbridge.writelatex.api.request.Request" />
       <option name="VM_PARAMETERS" />
@@ -1025,6 +1094,28 @@
       <ConfigurationWrapper RunnerId="Run" />
       <method />
     </configuration>
+    <configuration default="false" name="SnapshotGetSavedVersRequestTests" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="writelatex-git-bridge" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" value="uk.ac.ic.wlgitbridge.test.writelatex.api.request.getsavedvers" />
+      <option name="MAIN_CLASS_NAME" value="uk.ac.ic.wlgitbridge.test.writelatex.api.request.getsavedvers.SnapshotGetSavedVersRequestTests" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" value="-ea" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="moduleWithDependencies" />
+      </option>
+      <envs />
+      <patterns />
+      <RunnerSettings RunnerId="Run" />
+      <ConfigurationWrapper RunnerId="Run" />
+      <method />
+    </configuration>
     <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
       <module name="" />
       <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
@@ -1075,6 +1166,19 @@
       </ExternalSystemSettings>
       <method />
     </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <option name="VM_PARAMETERS" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <method />
+    </configuration>
     <configuration default="true" type="TestNG" factoryName="TestNG">
       <module name="" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@@ -1102,19 +1206,6 @@
       <listeners />
       <method />
     </configuration>
-    <configuration default="true" type="Applet" factoryName="Applet">
-      <module name="" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="HTML_FILE_NAME" />
-      <option name="HTML_USED" value="false" />
-      <option name="WIDTH" value="400" />
-      <option name="HEIGHT" value="300" />
-      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
-      <option name="VM_PARAMETERS" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <method />
-    </configuration>
     <configuration default="true" type="Application" factoryName="Application">
       <option name="MAIN_CLASS_NAME" />
       <option name="VM_PARAMETERS" />
@@ -1207,18 +1298,20 @@
       <ConfigurationWrapper RunnerId="Run" />
       <method />
     </configuration>
-    <list size="5">
+    <list size="6">
       <item index="0" class="java.lang.String" itemvalue="Application.writelatex-git-bridge" />
       <item index="1" class="java.lang.String" itemvalue="JUnit.writelatex-git-bridge tests" />
       <item index="2" class="java.lang.String" itemvalue="Application.Request" />
       <item index="3" class="java.lang.String" itemvalue="JUnit.RequestTests" />
       <item index="4" class="java.lang.String" itemvalue="JUnit.WLProjectTests" />
+      <item index="5" class="java.lang.String" itemvalue="JUnit.SnapshotGetSavedVersRequestTests" />
     </list>
     <recent_temporary>
-      <list size="3">
-        <item index="0" class="java.lang.String" itemvalue="JUnit.RequestTests" />
-        <item index="1" class="java.lang.String" itemvalue="JUnit.WLProjectTests" />
-        <item index="2" class="java.lang.String" itemvalue="Application.Request" />
+      <list size="4">
+        <item index="0" class="java.lang.String" itemvalue="JUnit.SnapshotGetSavedVersRequestTests" />
+        <item index="1" class="java.lang.String" itemvalue="JUnit.RequestTests" />
+        <item index="2" class="java.lang.String" itemvalue="JUnit.WLProjectTests" />
+        <item index="3" class="java.lang.String" itemvalue="Application.Request" />
       </list>
     </recent_temporary>
     <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
@@ -1252,20 +1345,20 @@
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.26785713" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2510981" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3169643" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2510981" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3169643" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Documentation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="FLOATING" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" x="100" y="123" width="1166" height="541" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.26785713" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
     </layout>
   </component>
   <component name="Vcs.Log.UiProperties">
@@ -1314,6 +1407,38 @@
     </buildFile>
   </component>
   <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="105" max-vertical-offset="270">
+          <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLDataModelTests.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="315">
+          <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/SnapshotTests.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="315">
+          <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLProjectTests.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="225" max-vertical-offset="510">
+          <caret line="15" column="53" selection-start-line="15" selection-start-column="53" selection-end-line="15" selection-end-column="53" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/MainTests.java">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
@@ -1350,14 +1475,14 @@
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/README.md">
+      <provider editor-type-id="MarkdownPreviewEditor">
+        <state />
+      </provider>
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="-5.0" vertical-offset="0" max-vertical-offset="270">
           <caret line="9" column="7" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="7" />
         </state>
       </provider>
-      <provider editor-type-id="MarkdownPreviewEditor">
-        <state />
-      </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/application/exception/InvalidProgramArgumentsException.java">
       <provider selected="true" editor-type-id="text-editor">
@@ -1489,7 +1614,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="495">
           <caret line="22" column="53" selection-start-line="22" selection-start-column="53" selection-end-line="22" selection-end-column="53" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1497,7 +1621,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
           <caret line="23" column="13" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="13" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1512,7 +1635,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="420">
           <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1527,7 +1649,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="270" max-vertical-offset="945">
           <caret line="7" column="39" selection-start-line="7" selection-start-column="39" selection-end-line="7" selection-end-column="39" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1535,15 +1656,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="330">
           <caret line="10" column="27" selection-start-line="10" selection-start-column="27" selection-end-line="10" selection-end-column="27" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/build.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="3639" max-vertical-offset="4635">
-          <caret line="260" column="92" selection-start-line="260" selection-start-column="92" selection-end-line="260" selection-end-column="92" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1551,59 +1663,42 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetForVersionRequest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="300">
-          <caret line="5" column="34" selection-start-line="5" selection-start-column="34" selection-end-line="5" selection-end-column="34" />
-          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="330">
-          <caret line="12" column="27" selection-start-line="12" selection-start-column="27" selection-end-line="12" selection-end-column="27" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotDBAPI.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="525">
-          <caret line="16" column="30" selection-start-line="16" selection-start-column="30" selection-end-line="16" selection-end-column="30" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="645">
+          <caret line="23" column="0" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="300">
-          <caret line="10" column="29" selection-start-line="10" selection-start-column="29" selection-end-line="10" selection-end-column="29" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="405">
+          <caret line="9" column="25" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="320" max-vertical-offset="705">
-          <caret line="38" column="5" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="270" max-vertical-offset="420">
+          <caret line="18" column="33" selection-start-line="18" selection-start-column="33" selection-end-line="18" selection-end-column="33" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotAPIRequestTests.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
-          <caret line="7" column="38" selection-start-line="7" selection-start-column="38" selection-end-line="13" selection-end-column="0" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="270">
+          <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetDocRequestTests.java">
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLDataModelTests.java">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
@@ -1611,7 +1706,7 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetForVersionRequestTests.java">
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/SnapshotTests.java">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
@@ -1619,47 +1714,48 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotDBAPI.java">
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLProjectTests.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="645">
-          <caret line="23" column="0" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="510">
+          <caret line="15" column="53" selection-start-line="15" selection-start-column="53" selection-end-line="15" selection-end-column="53" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="705">
-          <caret line="18" column="40" selection-start-line="18" selection-start-column="30" selection-end-line="18" selection-end-column="40" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1305">
+          <caret line="80" column="1" selection-start-line="80" selection-start-column="1" selection-end-line="80" selection-end-column="1" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocResult.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="405">
-          <caret line="9" column="25" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="420">
+          <caret line="19" column="8" selection-start-line="19" selection-start-column="8" selection-end-line="19" selection-end-column="8" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java">
+    <entry file="file://$PROJECT_DIR$/build.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="270" max-vertical-offset="420">
-          <caret line="18" column="33" selection-start-line="18" selection-start-column="33" selection-end-line="18" selection-end-column="33" />
+        <state vertical-scroll-proportion="7.6538463" vertical-offset="4369" max-vertical-offset="4905">
+          <caret line="277" column="6" selection-start-line="277" selection-start-column="6" selection-end-line="277" selection-end-column="6" />
+          <caret line="278" column="6" selection-start-line="278" selection-start-column="6" selection-end-line="278" selection-end-column="6" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java">
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotAPIRequestTests.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="270">
-          <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
+          <caret line="7" column="38" selection-start-line="7" selection-start-column="38" selection-end-line="13" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLDataModelTests.java">
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetForVersionRequestTests.java">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
@@ -1667,7 +1763,7 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/SnapshotTests.java">
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetDocRequestTests.java">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
@@ -1675,26 +1771,18 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLProjectTests.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersResult.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="510">
-          <caret line="15" column="53" selection-start-line="15" selection-start-column="53" selection-end-line="15" selection-end-column="53" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="120" max-vertical-offset="555">
+          <caret line="29" column="0" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetSavedVersRequestTests.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
-          <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java">
+    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequestTests.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.24749164" vertical-offset="1052" max-vertical-offset="1650">
-          <caret line="80" column="8" selection-start-line="80" selection-start-column="8" selection-end-line="80" selection-end-column="8" />
+        <state vertical-scroll-proportion="0.621547" vertical-offset="15" max-vertical-offset="420">
+          <caret line="16" column="39" selection-start-line="16" selection-start-column="39" selection-end-line="16" selection-end-column="39" />
           <folding />
         </state>
       </provider>
@@ -1778,7 +1866,7 @@
       </state>
       <state key="ProjectLibrariesConfigurable.UI">
         <settings>
-          <last-edited>slf4j-nop-1.7.7</last-edited>
+          <last-edited>slf4j-api-1.7.7</last-edited>
           <splitter-proportions>
             <option name="proportions">
               <list>

+ 18 - 0
services/git-bridge/build.xml

@@ -87,6 +87,14 @@
   <path id="library.async-http-client-1.8.14.classpath">
     <pathelement location="${basedir}/libs/async-http-client-1.8.14.jar"/>
   </path>
+
+  <path id="library.slf4j-api-1.7.7.classpath">
+    <pathelement location="${basedir}/libs/slf4j-api-1.7.7.jar"/>
+  </path>
+
+  <path id="library.slf4j-nop-1.7.7.classpath">
+    <pathelement location="${basedir}/libs/slf4j-nop-1.7.7.jar"/>
+  </path>
   
   <!-- Modules -->
   
@@ -116,6 +124,8 @@
     <path refid="library.junit-4.11.classpath"/>
     <path refid="library.gson-2.3.classpath"/>
     <path refid="library.async-http-client-1.8.14.classpath"/>
+    <path refid="library.slf4j-api-1.7.7.classpath"/>
+    <path refid="library.slf4j-nop-1.7.7.classpath"/>
   </path>
   
   <path id="writelatex-git-bridge.runtime.production.module.classpath">
@@ -129,6 +139,8 @@
     <path refid="library.junit-4.11.classpath"/>
     <path refid="library.gson-2.3.classpath"/>
     <path refid="library.async-http-client-1.8.14.classpath"/>
+    <path refid="library.slf4j-api-1.7.7.classpath"/>
+    <path refid="library.slf4j-nop-1.7.7.classpath"/>
   </path>
   
   <path id="writelatex-git-bridge.module.classpath">
@@ -142,6 +154,8 @@
     <path refid="library.junit-4.11.classpath"/>
     <path refid="library.gson-2.3.classpath"/>
     <path refid="library.async-http-client-1.8.14.classpath"/>
+    <path refid="library.slf4j-api-1.7.7.classpath"/>
+    <path refid="library.slf4j-nop-1.7.7.classpath"/>
   </path>
   
   <path id="writelatex-git-bridge.runtime.module.classpath">
@@ -156,6 +170,8 @@
     <path refid="library.junit-4.11.classpath"/>
     <path refid="library.gson-2.3.classpath"/>
     <path refid="library.async-http-client-1.8.14.classpath"/>
+    <path refid="library.slf4j-api-1.7.7.classpath"/>
+    <path refid="library.slf4j-nop-1.7.7.classpath"/>
   </path>
   
   
@@ -259,6 +275,8 @@
       <zipfileset excludes="META-INF/**/*" src="${basedir}/libs/hamcrest-library-1.3.jar"/>
       <zipfileset excludes="META-INF/**/*" src="${basedir}/libs/gson-2.3.jar"/>
       <zipfileset excludes="META-INF/**/*" src="${basedir}/libs/async-http-client-1.8.14.jar"/>
+      <zipfileset excludes="META-INF/**/*" src="${basedir}/libs/slf4j-api-1.7.7.jar"/>
+      <zipfileset excludes="META-INF/**/*" src="${basedir}/libs/slf4j-nop-1.7.7.jar"/>
     </jar>
     <copy file="${temp.jar.path.writelatex-git-bridge.jar}" tofile="${artifact.temp.output.writelatex-git-bridge:jar}/writelatex-git-bridge.jar"/>
   </target>

+ 0 - 43
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java

@@ -1,43 +0,0 @@
-package uk.ac.ic.wlgitbridge.writelatex.api.request;
-
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.Realm;
-import com.ning.http.client.Response;
-
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-
-/**
- * Created by Winston on 06/11/14.
- */
-public abstract class Request {
-
-    private final String url;
-
-    private Future<Response> response;
-    private IOException exception;
-
-    public Request(String url) {
-        this.url = url;
-    }
-
-    protected abstract Realm buildRequestRealm();
-
-    public void request() {
-        AsyncHttpClient client = new AsyncHttpClient();
-        try {
-            response = client.prepareGet(url).setRealm(buildRequestRealm()).execute();
-        } catch (IOException e) {
-            exception = e;
-        }
-    }
-
-    public String getResponse() throws IOException, ExecutionException, InterruptedException {
-        if (exception != null) {
-            throw exception;
-        }
-        return response.get().getResponseBody();
-    }
-
-}

+ 0 - 14
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java

@@ -1,14 +0,0 @@
-package uk.ac.ic.wlgitbridge.writelatex.api.request;
-
-/**
- * Created by Winston on 06/11/14.
- */
-public class SnapshotGetDocRequest extends SnapshotAPIRequest {
-
-    public static final String API_CALL = "";
-
-    public SnapshotGetDocRequest(String projectName) {
-        super(projectName, API_CALL);
-    }
-
-}

+ 0 - 14
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetForVersionRequest.java

@@ -1,14 +0,0 @@
-package uk.ac.ic.wlgitbridge.writelatex.api.request;
-
-/**
- * Created by Winston on 06/11/14.
- */
-public class SnapshotGetForVersionRequest extends SnapshotAPIRequest {
-
-    public static final String API_CALL = "/snapshots";
-
-    public SnapshotGetForVersionRequest(String projectName, int versionID) {
-        super(projectName, API_CALL + "/" + versionID);
-    }
-
-}

+ 0 - 14
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.java

@@ -1,14 +0,0 @@
-package uk.ac.ic.wlgitbridge.writelatex.api.request;
-
-/**
- * Created by Winston on 06/11/14.
- */
-public class SnapshotGetSavedVersRequest extends SnapshotAPIRequest {
-
-    public static final String API_CALL = "/saved_vers";
-
-    public SnapshotGetSavedVersRequest(String projectName) {
-        super(projectName, API_CALL);
-    }
-
-}

+ 12 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/JSONSource.java

@@ -0,0 +1,12 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.base;
+
+import com.google.gson.JsonElement;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public interface JSONSource {
+
+    public abstract void fromJSON(JsonElement json);
+
+}

+ 61 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/Request.java

@@ -0,0 +1,61 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.base;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.ning.http.client.AsyncCompletionHandler;
+import com.ning.http.client.AsyncHttpClient;
+import com.ning.http.client.Realm;
+import com.ning.http.client.Response;
+
+import java.io.IOException;
+import java.util.concurrent.Future;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public abstract class Request<T extends Result> {
+
+    private final String url;
+
+    private Future<T> future;
+    private Throwable throwable;
+
+    private boolean finished;
+
+    public Request(String url) {
+        this.url = url;
+        finished = false;
+    }
+
+    protected abstract Realm buildRequestRealm();
+    protected abstract T parseResponse(JsonElement json);
+
+    public void request() {
+        AsyncHttpClient client = new AsyncHttpClient();
+        try {
+            future = client.prepareGet(url).setRealm(buildRequestRealm()).execute(new AsyncCompletionHandler<T>() {
+
+                @Override
+                public T onCompleted(Response response) throws Exception {
+                    return parseResponse(new Gson().fromJson(response.getResponseBody(), JsonElement.class));
+                }
+
+                @Override
+                public void onThrowable(Throwable t) {
+                    throwable = t;
+                }
+
+            });
+        } catch (IOException e) {
+            throwable = e;
+        }
+    }
+
+    public T getResult() throws Throwable {
+        if (throwable != null) {
+            throw throwable;
+        }
+        return future.get();
+    }
+
+}

+ 28 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/Result.java

@@ -0,0 +1,28 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.base;
+
+import com.google.gson.JsonElement;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public abstract class Result implements JSONSource {
+
+    private JsonElement json;
+    private final Request request;
+
+    public Result(Request request, JsonElement json) {
+        this.request = request;
+        this.json = json;
+        fromJSON(json);
+    }
+
+    public Request getRequest() {
+        return request;
+    }
+
+    @Override
+    public String toString() {
+        return json.toString();
+    }
+
+}

+ 2 - 2
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java → services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/base/SnapshotAPIRequest.java

@@ -1,11 +1,11 @@
-package uk.ac.ic.wlgitbridge.writelatex.api.request;
+package uk.ac.ic.wlgitbridge.writelatex.api.request.base;
 
 import com.ning.http.client.Realm;
 
 /**
  * Created by Winston on 06/11/14.
  */
-public abstract class SnapshotAPIRequest extends Request {
+public abstract class SnapshotAPIRequest<T extends Result> extends Request<T> {
 
     private static final String USERNAME = "staging";
     private static final String PASSWORD = "6kUfbv0R";

+ 22 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocRequest.java

@@ -0,0 +1,22 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc;
+
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.SnapshotAPIRequest;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotGetDocRequest extends SnapshotAPIRequest<SnapshotGetDocResult> {
+
+    public static final String API_CALL = "";
+
+    public SnapshotGetDocRequest(String projectName) {
+        super(projectName, API_CALL);
+    }
+
+    @Override
+    protected SnapshotGetDocResult parseResponse(JsonElement json) {
+        return new SnapshotGetDocResult(this, json);
+    }
+
+}

+ 22 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getdoc/SnapshotGetDocResult.java

@@ -0,0 +1,22 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc;
+
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Request;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Result;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotGetDocResult extends Result {
+
+    private int versionID;
+
+    public SnapshotGetDocResult(Request request, JsonElement json) {
+        super(request, json);
+    }
+
+    @Override
+    public void fromJSON(JsonElement json) {
+        versionID = json.getAsJsonObject().get("latestVerId").getAsInt();
+    }
+}

+ 22 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotGetForVersionRequest.java

@@ -0,0 +1,22 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion;
+
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.SnapshotAPIRequest;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotGetForVersionRequest extends SnapshotAPIRequest<SnapshotGetForVersionResult> {
+
+    public static final String API_CALL = "/snapshots";
+
+    public SnapshotGetForVersionRequest(String projectName, int versionID) {
+        super(projectName, API_CALL + "/" + versionID);
+    }
+
+    @Override
+    protected SnapshotGetForVersionResult parseResponse(JsonElement json) {
+        return new SnapshotGetForVersionResult(this, json);
+    }
+
+}

+ 21 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotGetForVersionResult.java

@@ -0,0 +1,21 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion;
+
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Request;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Result;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotGetForVersionResult extends Result {
+
+    public SnapshotGetForVersionResult(Request request, JsonElement json) {
+        super(request, json);
+    }
+
+    @Override
+    public void fromJSON(JsonElement json) {
+
+    }
+
+}

+ 22 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequest.java

@@ -0,0 +1,22 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers;
+
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.SnapshotAPIRequest;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotGetSavedVersRequest extends SnapshotAPIRequest<SnapshotGetSavedVersResult> {
+
+    public static final String API_CALL = "/saved_vers";
+
+    public SnapshotGetSavedVersRequest(String projectName) {
+        super(projectName, API_CALL);
+    }
+
+    @Override
+    protected SnapshotGetSavedVersResult parseResponse(JsonElement json) {
+        return new SnapshotGetSavedVersResult(this, json);
+    }
+
+}

+ 31 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotGetSavedVersResult.java

@@ -0,0 +1,31 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Request;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Result;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotGetSavedVersResult extends Result {
+
+    private List<SnapshotInfo> savedVers;
+
+    public SnapshotGetSavedVersResult(Request request, JsonElement json) {
+        super(request, json);
+    }
+
+    @Override
+    public void fromJSON(JsonElement json) {
+        savedVers = new Gson().fromJson(json, LinkedList.class);
+    }
+
+    public List<SnapshotInfo> getSavedVers() {
+        return savedVers;
+    }
+
+}

+ 21 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotInfo.java

@@ -0,0 +1,21 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers;
+
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.JSONSource;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotInfo implements JSONSource {
+
+    private int versionId;
+    private String comment;
+    private WLUser user;
+    private String createdAt;
+
+    @Override
+    public void fromJSON(JsonElement json) {
+
+    }
+
+}

+ 19 - 0
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/WLUser.java

@@ -0,0 +1,19 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers;
+
+import com.google.gson.JsonElement;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.JSONSource;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class WLUser implements JSONSource {
+
+    private String name;
+    private String email;
+
+    @Override
+    public void fromJSON(JsonElement json) {
+
+    }
+
+}

+ 6 - 29
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java

@@ -1,13 +1,10 @@
 package uk.ac.ic.wlgitbridge.writelatex.model;
 
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.Request;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.SnapshotGetDocRequest;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.SnapshotGetForVersionRequest;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.SnapshotGetSavedVersRequest;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Request;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc.SnapshotGetDocRequest;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotGetForVersionRequest;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers.SnapshotGetSavedVersRequest;
 
 import java.io.IOException;
 import java.util.*;
@@ -51,9 +48,9 @@ public class WLProject implements JSONModel {
 
         boolean result = false;
 
-        ids.add(getLatestVersionID(getDoc.getResponse()));
+//        ids.add(getLatestVersionID(getDoc.getResult()));
 
-        ids.addAll(getLatestVersionIDs(getSavedVers.getResponse()));
+//        ids.addAll(getLatestVersionIDs(getSavedVers.getResult()));
 
         List<Integer> idsToUpdate = new LinkedList<Integer>();
 
@@ -81,24 +78,4 @@ public class WLProject implements JSONModel {
         
     }
 
-    private int getLatestVersionID(String response) {
-        Gson gson = new Gson();
-        JsonObject responseObject = gson.fromJson(response, JsonObject.class);
-        return responseObject.get("latestVerId").getAsInt();
-    }
-
-    private Collection<? extends Integer> getLatestVersionIDs(String response) {
-        List<Integer> ids = new LinkedList<Integer>();
-        Gson gson = new Gson();
-        JsonArray responseArray = gson.fromJson(response, JsonArray.class);
-        for (JsonElement elem : responseArray) {
-            ids.add(getVersionID(elem.getAsJsonObject()));
-        }
-        return ids;
-    }
-
-    private Integer getVersionID(JsonObject object) {
-        return object.get("versionId").getAsInt();
-    }
-
 }

+ 0 - 41
services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java

@@ -1,41 +0,0 @@
-package uk.ac.ic.wlgitbridge.test.writelatex.api;
-
-import org.junit.Test;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.Request;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.SnapshotGetDocRequest;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.SnapshotGetForVersionRequest;
-import uk.ac.ic.wlgitbridge.writelatex.api.request.SnapshotGetSavedVersRequest;
-
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-
-/**
- * Created by Winston on 06/11/14.
- */
-public class RequestTests {
-
-    @Test
-    public void nothingToTest() {
-        String projectName = "1826rqgsdb";
-        Request getDoc = new SnapshotGetDocRequest(projectName);
-        Request getSavedVers = new SnapshotGetSavedVersRequest(projectName);
-        Request getForVersion = new SnapshotGetForVersionRequest(projectName, 76);
-
-        getDoc.request();
-        getSavedVers.request();
-        getForVersion.request();
-
-        try {
-            System.out.println(getDoc.getResponse());
-            System.out.println(getSavedVers.getResponse());
-            System.out.println(getForVersion.getResponse());
-        } catch (IOException e) {
-            e.printStackTrace();
-        } catch (ExecutionException e) {
-            e.printStackTrace();
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-    }
-
-}

+ 0 - 15
services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetSavedVersRequestTests.java

@@ -1,15 +0,0 @@
-package uk.ac.ic.wlgitbridge.test.writelatex.api;
-
-import org.junit.Test;
-
-/**
- * Created by Winston on 06/11/14.
- */
-public class SnapshotGetSavedVersRequestTests {
-
-    @Test
-    public void nothingToTest() {
-
-    }
-
-}

+ 37 - 0
services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/base/RequestTests.java

@@ -0,0 +1,37 @@
+package uk.ac.ic.wlgitbridge.test.writelatex.api.request.base;
+
+import org.junit.Test;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.base.Request;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc.SnapshotGetDocRequest;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotGetForVersionRequest;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers.SnapshotGetSavedVersRequest;
+
+import java.io.IOException;
+import java.util.concurrent.ExecutionException;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class RequestTests {
+
+    @Test
+    public void nothingToTest() {
+        String projectName = "1826rqgsdb";
+        Request getDoc = new SnapshotGetDocRequest(projectName);
+        Request getSavedVers = new SnapshotGetSavedVersRequest(projectName);
+        Request getForVersion = new SnapshotGetForVersionRequest(projectName, 76);
+
+        getDoc.request();
+        getSavedVers.request();
+        getForVersion.request();
+
+        try {
+            System.out.println(getDoc.getResult());
+            System.out.println(getSavedVers.getResult());
+            System.out.println(getForVersion.getResult());
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
+    }
+
+}

+ 22 - 0
services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/request/getsavedvers/SnapshotGetSavedVersRequestTests.java

@@ -0,0 +1,22 @@
+package uk.ac.ic.wlgitbridge.test.writelatex.api.request.getsavedvers;
+
+import org.junit.Test;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers.SnapshotGetSavedVersRequest;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public class SnapshotGetSavedVersRequestTests {
+
+    @Test
+    public void nothingToTest() {
+        SnapshotGetSavedVersRequest request = new SnapshotGetSavedVersRequest("1826rqgsdb");
+        request.request();
+        try {
+            System.out.println(request.getResult());
+        } catch (Throwable throwable) {
+            throwable.printStackTrace();
+        }
+    }
+
+}