diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java index 1dbaf930f6..5005b85ce0 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/bridge/WLBridgedProject.java @@ -42,14 +42,10 @@ public class WLBridgedProject { try { List snapshotsToAdd = snapshotDBAPI.getSnapshotsToAddToProject(name); for (Snapshot snapshot : snapshotsToAdd) { - snapshot.getData().writeAll(repositoryDirectory.getAbsolutePath()); + snapshot.writeToDisk(repositoryDirectory.getAbsolutePath()); Git git = new Git(repository); - AddCommand add = git.add(); - add.addFilepattern("."); - add.call(); - CommitCommand commit = git.commit(); - commit.setMessage("Commit"); - commit.call(); + git.add().addFilepattern(".").call(); + git.commit().setAuthor(snapshot.getUserName(), snapshot.getUserEmail()).setMessage(snapshot.getComment()).call(); } } catch (Throwable throwable) { throwable.printStackTrace(); diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java deleted file mode 100644 index af56e7f52c..0000000000 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/DummySnapshotAPI.java +++ /dev/null @@ -1,22 +0,0 @@ -package uk.ac.ic.wlgitbridge.writelatex.api; - -import uk.ac.ic.wlgitbridge.writelatex.model.Snapshot; - -import java.util.List; - -/** - * Created by Winston on 03/11/14. - */ -public class DummySnapshotAPI implements SnapshotAPI { - - @Override - public List getSnapshots() { - return null; - } - - @Override - public void putSnapshots(List snapshots) { - - } - -} diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java index 7d51fb1713..706fabcb0c 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/SnapshotData.java @@ -36,14 +36,12 @@ public class SnapshotData implements JSONSource { for (JsonElement json : jsonArray) { srcs.add(new WLFile(json)); } - System.out.println(srcs); } private void populateAtts(JsonArray jsonArray) { for (JsonElement json : jsonArray) { atts.add(new WLAttachment(json)); } - System.out.println(atts); } public void writeAll(String repoDir) throws InterruptedException, ExecutionException, IOException { @@ -55,4 +53,11 @@ public class SnapshotData implements JSONSource { } } + public List getSrcs() { + return srcs; + } + + public List getAtts() { + return atts; + } } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/WLFile.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/WLFile.java index 29b712d746..038a19cfcc 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/WLFile.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getforversion/WLFile.java @@ -44,7 +44,6 @@ public class WLFile implements JSONSource { } public void writeToDisk(String repoDir) throws IOException, ExecutionException, InterruptedException { - System.out.println("write to " + repoDir); File file = new File(repoDir, path); file.getParentFile().mkdirs(); file.createNewFile(); @@ -53,26 +52,4 @@ public class WLFile implements JSONSource { out.close(); } -// @Override -// public String toString() { -// try { -// File file = new File("/Users/Roxy/git-test-files/" + path); -// file.getParentFile().mkdirs(); -// file.createNewFile(); -// OutputStream out = new FileOutputStream(file); -// out.write(getContents()); -// out.close(); -// return "{ path: " + path + ", contents: " + getContents().toString() + " }"; -// } catch (ExecutionException e) { -// e.printStackTrace(); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } catch (FileNotFoundException e) { -// e.printStackTrace(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// return "Exception"; -// } - } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotInfo.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotInfo.java index cc8bff7cfe..8102ea17be 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotInfo.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/SnapshotInfo.java @@ -13,6 +13,11 @@ public class SnapshotInfo { private WLUser user; private String createdAt; + public SnapshotInfo(int versionID) { + comment = "Update on WriteLatex.com."; + user = new WLUser(); + } + public int getVersionId() { return versionId; } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/WLUser.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/WLUser.java index 81efe486d9..77f30e796e 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/WLUser.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/api/request/getsavedvers/WLUser.java @@ -11,6 +11,11 @@ public class WLUser { private String name; private String email; + public WLUser() { + name = "Anonymous"; + email = "anonymous@writelatex.com"; + } + public String getName() { return name; } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java index f7c027512b..ca870ed3cc 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/Snapshot.java @@ -2,38 +2,61 @@ package uk.ac.ic.wlgitbridge.writelatex.model; import com.google.gson.JsonElement; import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotData; +import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.WLFile; +import uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers.SnapshotInfo; import uk.ac.ic.wlgitbridge.writelatex.api.request.getsavedvers.WLUser; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.ExecutionException; + /** * Created by Winston on 03/11/14. */ -public class Snapshot implements JSONModel { +public class Snapshot { - private int versionID; - private String comment; - private WLUser user; - private SnapshotData data; + private final int versionID; + private final String comment; + private final String userName; + private final String userEmail; - public Snapshot(int versionID, SnapshotData data) { - this.comment = comment; + private final List srcs; + private final List atts; - this.data = data; + public Snapshot(SnapshotInfo info, SnapshotData data) { + versionID = info.getVersionId(); + comment = info.getComment(); + WLUser user = info.getUser(); + userName = user.getName(); + userEmail = user.getEmail(); + + srcs = data.getSrcs(); + atts = data.getAtts(); } - @Override - public void updateFromJSON(JsonElement json) { - + public void writeToDisk(String basePath) throws InterruptedException, ExecutionException, IOException { + for (WLFile file : srcs) { + file.writeToDisk(basePath); + } + for (WLFile file : atts) { + file.writeToDisk(basePath); + } } - public void writeToDisk() { - - } - - public SnapshotData getData() { - return data; + public int getVersionID() { + return versionID; } public String getComment() { return comment; } + + public String getUserName() { + return userName; + } + + public String getUserEmail() { + return userEmail; + } + } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java index c59f700707..6f4e791997 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLDataModel.java @@ -24,13 +24,10 @@ public class WLDataModel implements SnapshotDBAPI { projects = new HashMap(); } - public void updateProjectWithName(String name) throws Throwable { + private void updateProjectWithName(String name) throws Throwable { if (!projects.containsKey(name)) { projects.put(name, new WLProject(name)); } - System.out.println(projects); - System.out.println(projects.get(name)); - System.out.println(name); projects.get(name).update(); } diff --git a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java index 3114a74d36..3dc5c6d432 100644 --- a/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java +++ b/services/git-bridge/src/uk/ac/ic/wlgitbridge/writelatex/model/WLProject.java @@ -17,27 +17,17 @@ import java.util.concurrent.ExecutionException; /** * Created by Winston on 06/11/14. */ -public class WLProject implements JSONModel { +public class WLProject { private final String name; - public static final int VERSION_ID_INVALID = -1; private final Map snapshots; private final SortedSet versions; - private int latestVersionID; private List snapshotsToAdd; - private SortedSet idsToUpdate; - private HashMap msg; public WLProject(String name) { this.name = name; snapshots = new HashMap(); versions = new TreeSet(); - latestVersionID = VERSION_ID_INVALID; - } - - @Override - public void updateFromJSON(JsonElement json) { - } public void update() throws Throwable { @@ -51,22 +41,22 @@ public class WLProject implements JSONModel { getDoc.request(); getSavedVers.request(); - List fetchedIDs = new LinkedList(); - fetchedIDs.add(getDoc.getResult().getVersionID()); + Set fetchedIDs = new HashSet(); + Map fetchedSnapshotInfos = new HashMap(); + + int latestVersionID = getDoc.getResult().getVersionID(); + fetchedSnapshotInfos.put(latestVersionID, new SnapshotInfo(latestVersionID)); + fetchedIDs.add(latestVersionID); for (SnapshotInfo snapshotInfo : getSavedVers.getResult().getSavedVers()) { - msg = new HashMap(); - msg.put(snapshotInfo.getVersionId(), snapshotInfo); - fetchedIDs.add(snapshotInfo.getVersionId()); + int versionId = snapshotInfo.getVersionId(); + fetchedSnapshotInfos.put(versionId, snapshotInfo); + fetchedIDs.add(versionId); } boolean result = false; -// ids.add(getLatestVersionID(getDoc.getResult())); - -// ids.addAll(getLatestVersionIDs(getSavedVers.getResult())); - - idsToUpdate = new TreeSet(); + List idsToUpdate = new LinkedList(); boolean hasNew = false; for (Integer id : fetchedIDs) { @@ -77,12 +67,16 @@ public class WLProject implements JSONModel { } } - updateIDs(idsToUpdate); + versions.addAll(fetchedIDs); + versions.add(latestVersionID); + + updateIDs(idsToUpdate, fetchedSnapshotInfos); return result; } - private void updateIDs(SortedSet idsToUpdate) throws Throwable { + private void updateIDs(List idsToUpdate, Map fetchedSnapshotInfos) throws Throwable { + System.out.println(idsToUpdate); List requests = new LinkedList(); for (int id : idsToUpdate) { SnapshotGetForVersionRequest request = new SnapshotGetForVersionRequest(name, id); @@ -92,7 +86,7 @@ public class WLProject implements JSONModel { for (SnapshotGetForVersionRequest request : requests) { SnapshotGetForVersionResult result = request.getResult(); SnapshotData data = result.getSnapshotData(); - Snapshot snapshot = new Snapshot(request.getVersionID(), data); + Snapshot snapshot = new Snapshot(fetchedSnapshotInfos.get(request.getVersionID()), data); snapshots.put(request.getVersionID(), snapshot); } snapshotsToAdd = new LinkedList();