Browse Source

Included slf4j jars and implemented Snapshot Fetch API.

Winston Li 12 năm trước cách đây
mục cha
commit
d59c3da400
32 tập tin đã thay đổi với 633 bổ sung và 241 xóa
  1. 11 0
      services/git-bridge/.idea/libraries/slf4j_api_1_7_7.xml
  2. 11 0
      services/git-bridge/.idea/libraries/slf4j_nop_1_7_7.xml
  3. 350 219
      services/git-bridge/.idea/workspace.xml
  4. BIN
      services/git-bridge/libs/slf4j-api-1.7.7-javadoc.jar
  5. BIN
      services/git-bridge/libs/slf4j-api-1.7.7.jar
  6. BIN
      services/git-bridge/libs/slf4j-nop-1.7.7-javadoc.jar
  7. BIN
      services/git-bridge/libs/slf4j-nop-1.7.7.jar
  8. 1 5
      services/git-bridge/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java
  9. 0 1
      services/git-bridge/src/uk/ac/ic/wlgitbridge/git/WLGitServlet.java
  10. 0 1
      services/git-bridge/src/uk/ac/ic/wlgitbridge/git/handler/WLReceivePackFactory.java
  11. 1 1
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java
  12. 1 1
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotDBAPI.java
  13. 1 1
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPI.java
  14. 1 1
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotDBAPI.java
  15. 41 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java
  16. 29 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java
  17. 16 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java
  18. 14 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetForVersionRequest.java
  19. 14 0
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.java
  20. 2 2
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java
  21. 2 2
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java
  22. 2 4
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java
  23. 2 2
      services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java
  24. 41 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java
  25. 15 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotAPIRequestTests.java
  26. 15 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetDocRequestTests.java
  27. 15 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetForVersionRequestTests.java
  28. 15 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetSavedVersRequestTests.java
  29. 1 1
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/model/SnapshotTests.java
  30. 15 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLDataModelTests.java
  31. 15 0
      services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLProjectTests.java
  32. 2 0
      services/git-bridge/writelatex-git-bridge.iml

+ 11 - 0
services/git-bridge/.idea/libraries/slf4j_api_1_7_7.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="slf4j-api-1.7.7">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/libs/slf4j-api-1.7.7.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/libs/slf4j-api-1.7.7-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>

+ 11 - 0
services/git-bridge/.idea/libraries/slf4j_nop_1_7_7.xml

@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="slf4j-nop-1.7.7">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/libs/slf4j-nop-1.7.7.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/libs/slf4j-nop-1.7.7-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>

+ 350 - 219
services/git-bridge/.idea/workspace.xml

@@ -7,8 +7,18 @@
   </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/Snapshot.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/Snapshot.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/build.xml" afterPath="$PROJECT_DIR$/build.xml" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/JSONSource.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/Snapshot.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/WLDataModel.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/WLProject.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java" />
+      <change type="MOVED" beforePath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/SnapshotTests.java" afterPath="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/SnapshotTests.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotDBAPI.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotDBAPI.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPI.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPI.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotDBAPI.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotDBAPI.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/git/WLGitServlet.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/WLGitServlet.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/handler/WLReceivePackFactory.java" afterPath="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/handler/WLReceivePackFactory.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/writelatex-git-bridge.iml" afterPath="$PROJECT_DIR$/writelatex-git-bridge.iml" />
     </list>
@@ -33,101 +43,101 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="SnapshotRepositoryBuilder.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/SnapshotRepositoryBuilder.java">
+      <file leaf-file-name="Request.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="675">
-              <caret line="20" column="67" selection-start-line="20" selection-start-column="67" selection-end-line="20" selection-end-column="67" />
+            <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" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/build.xml">
+      <file leaf-file-name="SnapshotGetSavedVersRequest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="-10.038462" 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" />
+            <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" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <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="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">
           <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="200" max-vertical-offset="705">
+              <caret line="30" column="60" selection-start-line="30" selection-start-column="60" selection-end-line="30" selection-end-column="60" />
               <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/Snapshot.java">
+      <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="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="7" column="38" selection-start-line="7" selection-start-column="38" selection-end-line="13" selection-end-column="0" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <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/WLProject.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="60" max-vertical-offset="495">
-              <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="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="WLDataModel.java" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/WLDataModel.java">
+      <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">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.55263156" vertical-offset="9" max-vertical-offset="450">
-              <caret line="16" column="33" selection-start-line="16" selection-start-column="33" selection-end-line="16" selection-end-column="33" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="270">
+              <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="SnapshotDBAPI.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotDBAPI.java">
+      <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">
           <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" />
+            <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="JSONSource.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/JSONSource.java">
+      <file leaf-file-name="WLProjectTests.java" pinned="false" current="true" current-in-tab="true">
+        <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="270">
-              <caret line="7" column="27" selection-start-line="7" selection-start-column="27" selection-end-line="7" selection-end-column="27" />
+            <state vertical-scroll-proportion="0.5064935" vertical-offset="0" max-vertical-offset="385">
+              <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="DummySnapshotAPI.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java">
+      <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="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" />
+            <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="WLBridgedProject.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.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="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" />
+            <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>
@@ -146,24 +156,6 @@
   <component name="IdeDocumentHistory">
     <option name="changedFiles">
       <list>
-        <option value="$PROJECT_DIR$/writelatex-git-bridge.iml" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/WLUploadPackFactory.java" />
-        <option value="$PROJECT_DIR$/writelatex-git-bridge.xml" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/application/InvalidProgramArgumentsException.java" />
-        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/application/WLGitBridgeApplicationTests.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/InvalidRootDirectoryPathException.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/exception/InvalidRootDirectoryPathException.java" />
-        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/git/WLRepositoryResolverTests.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/WLRepositoryResolver.java" />
-        <option value="$PROJECT_DIR$/README.md" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/WLReceivePackFactory.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/CheckNonFastForwardHook.java" />
-        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/git/CheckNonFastForwardHookTests.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/application/NullLogger.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/application/jetty/NullLogger.java" />
-        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/application/jetty/NullLoggerTests.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/application/WLGitBridgeApplication.java" />
-        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/RepositorySource.java" />
         <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/application/exception/InvalidProgramArgumentsExceptionTests.java" />
         <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/git/exception/InvalidRootDirectoryPathException.java" />
         <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/git/handler/WLRepositoryResolver.java" />
@@ -197,6 +189,24 @@
         <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" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPI.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetDocRequest.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetForVersionRequest.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetForVersionbRequest.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotAPIRequestTests.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetDocRequestTests.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetForVersionRequestTests.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/SnapshotGetSavedVersRequestTests.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONSource.java" />
+        <option value="$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLDataModelTests.java" />
+        <option value="$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLProjectTests.java" />
       </list>
     </option>
   </component>
@@ -231,6 +241,8 @@
       <sortByType />
     </navigator>
     <panes>
+      <pane id="PackagesPane" />
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -293,6 +305,58 @@
               <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="model" />
+              <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>
           <PATH>
             <PATH_ELEMENT>
               <option name="myItemId" value="writelatex-git-bridge" />
@@ -547,6 +611,32 @@
               <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="src" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="wlgitbridge" />
+              <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="model" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
           <PATH>
             <PATH_ELEMENT>
               <option name="myItemId" value="writelatex-git-bridge" />
@@ -573,6 +663,36 @@
               <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="src" />
+              <option name="myItemType" value="com.android.tools.idea.gradle.projectView.AndroidPsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="wlgitbridge" />
+              <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" />
@@ -803,8 +923,6 @@
           </PATH>
         </subPane>
       </pane>
-      <pane id="Scope" />
-      <pane id="PackagesPane" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -824,7 +942,7 @@
     <property name="GenerateAntBuildDialog.inclineRuntiemClasspath" value="false" />
     <property name="GenerateAntBuildDialog.generateIdeaHomeProperty" value="false" />
     <property name="GenerateAntBuildDialog.outputFileNameProperty" value="writelatex-git-bridge" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/libs/async-http-client-1.8.14-javadoc.jar!/" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/libs/slf4j-nop-1.7.7-javadoc.jar!/" />
     <property name="recentsLimit" value="5" />
     <property name="dynamic.classpath" value="false" />
     <property name="OverrideImplement.combined" value="true" />
@@ -842,15 +960,31 @@
       <recent name="uk.ac.ic.wlgitbridge.application" />
       <recent name="uk.ac.ic.wlgitbridge.git" />
     </key>
-    <key name="MoveFile.RECENT_KEYS">
-      <recent name="$PROJECT_DIR$/libs" />
-    </key>
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
       <recent name="uk.ac.ic.wlgitbridge" />
       <recent name="uk.ac.ic" />
     </key>
+    <key name="MoveFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/libs" />
+    </key>
   </component>
-  <component name="RunManager" selected="Application.writelatex-git-bridge">
+  <component name="RunManager" selected="Application.Request">
+    <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" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <option name="ENV_VARIABLES" />
+      <option name="PASS_PARENT_ENVS" value="true" />
+      <module name="writelatex-git-bridge" />
+      <envs />
+      <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" />
@@ -901,19 +1035,6 @@
       </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" />
@@ -941,6 +1062,19 @@
       <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" />
@@ -1033,10 +1167,16 @@
       <ConfigurationWrapper RunnerId="Run" />
       <method />
     </configuration>
-    <list size="2">
+    <list size="3">
       <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" />
     </list>
+    <recent_temporary>
+      <list size="1">
+        <item index="0" class="java.lang.String" itemvalue="Application.Request" />
+      </list>
+    </recent_temporary>
     <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
       <Host>localhost</Host>
       <Port>5050</Port>
@@ -1069,19 +1209,19 @@
       <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="true" weight="0.26785713" 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="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="false" weight="0.3169643" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <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="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="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" />
+      <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" />
     </layout>
   </component>
   <component name="Vcs.Log.UiProperties">
@@ -1130,93 +1270,6 @@
     </buildFile>
   </component>
   <component name="editorHistoryManager">
-    <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="225" max-vertical-offset="315">
-          <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/application/WLGitBridgeApplication.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="345" max-vertical-offset="480">
-          <caret line="23" column="5" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/writelatex-git-bridge.iml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="345">
-          <caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/Main.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="1890">
-          <caret line="76" column="11" selection-start-line="76" selection-start-column="11" selection-end-line="76" selection-end-column="11" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$PROJECT_DIR$/libs/javax.servlet-api-3.1.0.jar!/javax/servlet/http/HttpServlet.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="660" max-vertical-offset="750">
-          <caret line="44" column="0" selection-start-line="44" selection-start-column="0" selection-end-line="44" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/writelatex-git-bridge.iml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="285">
-          <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/Main.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="345">
-          <caret line="13" column="8" selection-start-line="13" selection-start-column="8" selection-end-line="13" selection-end-column="8" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$PROJECT_DIR$/libs/javax.servlet-api-3.1.0.jar!/javax/servlet/http/HttpServlet.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="660" max-vertical-offset="750">
-          <caret line="44" column="0" selection-start-line="44" selection-start-column="0" selection-end-line="44" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/git/WLGitServletConfigTests.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" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/git/WLGitServletTests.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" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/git/handler/WLReceivePackFactoryTests.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="40" selection-start-line="7" selection-start-column="40" selection-end-line="13" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/git/handler/WLUploadPackTests.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" />
-        </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">
@@ -1249,19 +1302,18 @@
       <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="38" selection-start-line="10" selection-start-column="38" selection-end-line="10" selection-end-column="38" />
-          <folding />
         </state>
       </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">
@@ -1274,7 +1326,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="11" column="0" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1282,7 +1333,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="30" max-vertical-offset="1365">
           <caret line="83" column="0" selection-start-line="83" selection-start-column="0" selection-end-line="83" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1304,7 +1354,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="195">
           <caret line="5" column="13" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1312,7 +1361,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="15" max-vertical-offset="315">
           <caret line="12" column="74" selection-start-line="12" selection-start-column="74" selection-end-line="12" selection-end-column="74" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1320,11 +1368,10 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="300">
           <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
-          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/test/uk/ac/ic/wlgitbridge/test/writelatex/SnapshotTests.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" />
@@ -1336,7 +1383,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="570">
           <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>
@@ -1344,7 +1390,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1352,7 +1397,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="315">
           <caret line="9" column="7" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="7" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1360,7 +1404,6 @@
       <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="34" selection-start-line="7" selection-start-column="34" selection-end-line="7" selection-end-column="34" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1368,7 +1411,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="345">
           <caret line="14" column="45" selection-start-line="14" selection-start-column="45" selection-end-line="14" selection-end-column="45" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1376,7 +1418,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="720">
           <caret line="11" column="15" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1384,7 +1425,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="225" max-vertical-offset="1290">
           <caret line="24" column="96" selection-start-line="24" selection-start-column="96" selection-end-line="24" selection-end-column="96" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1392,7 +1432,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="120" max-vertical-offset="750">
           <caret line="24" column="49" selection-start-line="24" selection-start-column="49" selection-end-line="24" selection-end-column="49" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1400,7 +1439,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="375">
           <caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1408,7 +1446,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1200">
           <caret line="38" column="31" selection-start-line="38" selection-start-column="31" selection-end-line="38" selection-end-column="31" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1432,15 +1469,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="57" max-vertical-offset="465">
           <caret line="18" column="23" selection-start-line="18" selection-start-column="23" selection-end-line="18" selection-end-column="23" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPI.java">
-      <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>
@@ -1456,7 +1484,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="675">
           <caret line="20" column="67" selection-start-line="20" selection-start-column="67" selection-end-line="20" selection-end-column="67" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -1468,26 +1495,42 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/JSONSource.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="270">
-          <caret line="7" column="27" selection-start-line="7" selection-start-column="27" selection-end-line="7" selection-end-column="27" />
+        <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/Snapshot.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="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="60" max-vertical-offset="495">
+          <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/WLProject.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotDBAPI.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="60" max-vertical-offset="495">
-          <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="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>
+    <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="9" max-vertical-offset="450">
+          <caret line="17" column="5" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="5" />
           <folding />
         </state>
       </provider>
@@ -1500,26 +1543,114 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotDBAPI.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPI.java">
+      <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="10" column="27" selection-start-line="10" selection-start-column="27" selection-end-line="10" selection-end-column="27" />
+          <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$/build.xml">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotAPIRequest.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="-10.038462" 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" />
+        <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" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/SnapshotGetSavedVersRequest.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" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/WLDataModel.java">
+    <entry file="file://$PROJECT_DIR$/src/uk/ac/ic/wlgitbridge/writelatex/api/request/Request.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.55263156" vertical-offset="9" max-vertical-offset="450">
-          <caret line="16" column="33" selection-start-line="16" selection-start-column="33" selection-end-line="16" selection-end-column="33" />
+        <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" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <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>
+    </entry>
+    <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" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <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" />
+          <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$/test/uk/ac/ic/wlgitbridge/test/writelatex/api/RequestTests.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="200" max-vertical-offset="705">
+          <caret line="30" column="60" selection-start-line="30" selection-start-column="60" selection-end-line="30" selection-end-column="60" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <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="270">
+          <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+          <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="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$/test/uk/ac/ic/wlgitbridge/test/writelatex/model/WLProjectTests.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.5064935" vertical-offset="0" max-vertical-offset="385">
+          <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
           <folding />
         </state>
       </provider>
@@ -1603,7 +1734,7 @@
       </state>
       <state key="ProjectLibrariesConfigurable.UI">
         <settings>
-          <last-edited>async-http-client-1.8.14</last-edited>
+          <last-edited>slf4j-nop-1.7.7</last-edited>
           <splitter-proportions>
             <option name="proportions">
               <list>

BIN
services/git-bridge/libs/slf4j-api-1.7.7-javadoc.jar


BIN
services/git-bridge/libs/slf4j-api-1.7.7.jar


BIN
services/git-bridge/libs/slf4j-nop-1.7.7-javadoc.jar


BIN
services/git-bridge/libs/slf4j-nop-1.7.7.jar


+ 1 - 5
services/git-bridge/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java

@@ -1,12 +1,8 @@
 package uk.ac.ic.wlgitbridge.bridge;
 
-import org.eclipse.jgit.api.AddCommand;
-import org.eclipse.jgit.api.CommitCommand;
-import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.api.errors.GitAPIException;
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.lib.Repository;
-import uk.ac.ic.wlgitbridge.writelatex.Snapshot;
+import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot;
 import uk.ac.ic.wlgitbridge.writelatex.api.SnapshotDBAPI;
 
 import java.io.File;

+ 0 - 1
services/git-bridge/src/uk/ac/ic/wlgitbridge/git/WLGitServlet.java

@@ -7,7 +7,6 @@ import uk.ac.ic.wlgitbridge.git.handler.WLReceivePackFactory;
 import uk.ac.ic.wlgitbridge.git.handler.WLRepositoryResolver;
 import uk.ac.ic.wlgitbridge.git.handler.WLUploadPackFactory;
 import uk.ac.ic.wlgitbridge.writelatex.SnapshotRepositoryBuilder;
-import uk.ac.ic.wlgitbridge.writelatex.api.SnapshotAPI;
 import uk.ac.ic.wlgitbridge.writelatex.api.SnapshotDBAPI;
 
 import javax.servlet.ServletException;

+ 0 - 1
services/git-bridge/src/uk/ac/ic/wlgitbridge/git/handler/WLReceivePackFactory.java

@@ -6,7 +6,6 @@ import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
 import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
 import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
 import uk.ac.ic.wlgitbridge.git.handler.hook.CheckNonFastForwardHook;
-import uk.ac.ic.wlgitbridge.writelatex.api.SnapshotAPI;
 import uk.ac.ic.wlgitbridge.writelatex.api.SnapshotDBAPI;
 
 import javax.servlet.http.HttpServletRequest;

+ 1 - 1
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java

@@ -1,6 +1,6 @@
 package uk.ac.ic.wlgitbridge.writelatex.api;
 
-import uk.ac.ic.wlgitbridge.writelatex.Snapshot;
+import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot;
 
 import java.util.List;
 

+ 1 - 1
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotDBAPI.java

@@ -1,7 +1,7 @@
 package uk.ac.ic.wlgitbridge.writelatex.api;
 
 import org.eclipse.jgit.lib.Repository;
-import uk.ac.ic.wlgitbridge.writelatex.Snapshot;
+import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot;
 
 import java.util.HashMap;
 import java.util.LinkedList;

+ 1 - 1
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotAPI.java

@@ -1,6 +1,6 @@
 package uk.ac.ic.wlgitbridge.writelatex.api;
 
-import uk.ac.ic.wlgitbridge.writelatex.Snapshot;
+import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot;
 
 import java.util.List;
 

+ 1 - 1
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/SnapshotDBAPI.java

@@ -1,7 +1,7 @@
 package uk.ac.ic.wlgitbridge.writelatex.api;
 
 import org.eclipse.jgit.lib.Repository;
-import uk.ac.ic.wlgitbridge.writelatex.Snapshot;
+import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot;
 
 import java.util.List;
 

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

@@ -0,0 +1,41 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request;
+
+import com.ning.http.client.*;
+
+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();
+    }
+
+}

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

@@ -0,0 +1,29 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request;
+
+import com.ning.http.client.Realm;
+import uk.ac.ic.wlgitbridge.writelatex.api.request.Request;
+
+/**
+ * Created by Winston on 06/11/14.
+ */
+public abstract class SnapshotAPIRequest extends Request {
+
+    private static final String USERNAME = "staging";
+    private static final String PASSWORD = "6kUfbv0R";
+
+    private static final String BASE_URL = "https://radiant-wind-3058.herokuapp.com/api/v0/docs";
+
+    public SnapshotAPIRequest(String projectName, String apiCall) {
+        super(BASE_URL + "/" + projectName + apiCall);
+    }
+
+    protected Realm buildRequestRealm() {
+        return new Realm.RealmBuilder()
+                .setPrincipal(USERNAME)
+                .setPassword(PASSWORD)
+                .setUsePreemptiveAuth(true)
+                .setScheme(Realm.AuthScheme.BASIC)
+                .build();
+    }
+
+}

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

@@ -0,0 +1,16 @@
+package uk.ac.ic.wlgitbridge.writelatex.api.request;
+
+import uk.ac.ic.wlgitbridge.writelatex.api.SnapshotAPI;
+
+/**
+ * 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);
+    }
+
+}

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

@@ -0,0 +1,14 @@
+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);
+    }
+
+}

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

@@ -0,0 +1,14 @@
+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);
+    }
+
+}

+ 2 - 2
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/JSONSource.java → services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/JSONModel.java

@@ -1,11 +1,11 @@
-package uk.ac.ic.wlgitbridge.writelatex;
+package uk.ac.ic.wlgitbridge.writelatex.model;
 
 import com.google.gson.JsonElement;
 
 /**
  * Created by Winston on 06/11/14.
  */
-public interface JSONSource {
+public interface JSONModel {
 
     public void updateFromJSON(JsonElement json);
 

+ 2 - 2
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/Snapshot.java → services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java

@@ -1,11 +1,11 @@
-package uk.ac.ic.wlgitbridge.writelatex;
+package uk.ac.ic.wlgitbridge.writelatex.model;
 
 import com.google.gson.JsonElement;
 
 /**
  * Created by Winston on 03/11/14.
  */
-public class Snapshot implements JSONSource {
+public class Snapshot implements JSONModel {
 
     private int versionID;
 

+ 2 - 4
services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/WLDataModel.java → services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java

@@ -1,15 +1,13 @@
-package uk.ac.ic.wlgitbridge.writelatex;
+package uk.ac.ic.wlgitbridge.writelatex.model;
 
 import com.google.gson.JsonElement;
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.Realm;
 
 import java.util.Map;
 
 /**
  * Created by Winston on 06/11/14.
  */
-public class WLDataModel implements JSONSource {
+public class WLDataModel implements JSONModel {
 
     private final Map<String, WLProject> projects;
 

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

@@ -1,4 +1,4 @@
-package uk.ac.ic.wlgitbridge.writelatex;
+package uk.ac.ic.wlgitbridge.writelatex.model;
 
 import com.google.gson.JsonElement;
 
@@ -8,7 +8,7 @@ import java.util.Map;
 /**
  * Created by Winston on 06/11/14.
  */
-public class WLProject implements JSONSource {
+public class WLProject implements JSONModel {
 
     public static final int VERSION_ID_INVALID = -1;
     private final Map<Integer, Snapshot> snapshots;

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

@@ -0,0 +1,41 @@
+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();
+        }
+    }
+
+}

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

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

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

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

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

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

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

@@ -0,0 +1,15 @@
+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() {
+
+    }
+
+}

+ 1 - 1
services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/SnapshotTests.java → services/git-bridge/test/uk/ac/ic/wlgitbridge/test/writelatex/model/SnapshotTests.java

@@ -1,4 +1,4 @@
-package uk.ac.ic.wlgitbridge.test.writelatex;
+package uk.ac.ic.wlgitbridge.test.writelatex.model;
 
 import org.junit.Test;
 

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

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

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

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

+ 2 - 0
services/git-bridge/writelatex-git-bridge.iml

@@ -17,6 +17,8 @@
     <orderEntry type="library" name="junit-4.11" level="project" />
     <orderEntry type="library" name="gson-2.3" level="project" />
     <orderEntry type="library" name="async-http-client-1.8.14" level="project" />
+    <orderEntry type="library" name="slf4j-api-1.7.7" level="project" />
+    <orderEntry type="library" name="slf4j-nop-1.7.7" level="project" />
   </component>
 </module>