package com.stacksync.syncservice.handler; import java.sql.Connection; import java.util.List; import java.util.UUID; import com.stacksync.commons.models.CommitInfo; import com.stacksync.commons.models.Device; import com.stacksync.commons.models.Item; import com.stacksync.commons.models.ItemMetadata; import com.stacksync.commons.models.User; import com.stacksync.commons.models.Workspace; import com.stacksync.commons.exceptions.DeviceNotUpdatedException; import com.stacksync.commons.exceptions.DeviceNotValidException; import com.stacksync.commons.exceptions.NoWorkspacesFoundException; import com.stacksync.commons.exceptions.ShareProposalNotCreatedException; import com.stacksync.commons.exceptions.UserNotFoundException; import com.stacksync.commons.exceptions.WorkspaceNotUpdatedException; import com.stacksync.commons.notifications.CommitNotification; import com.stacksync.syncservice.exceptions.dao.DAOException; public interface SyncHandler { public CommitNotification doCommit(User user, Workspace workspace, Device device, List<ItemMetadata> items) throws DAOException; public List<ItemMetadata> doGetChanges(User user, Workspace workspace); public UUID doUpdateDevice(Device device) throws UserNotFoundException, DeviceNotValidException, DeviceNotUpdatedException; public List<Workspace> doGetWorkspaces(User user) throws NoWorkspacesFoundException; public Workspace doShareFolder(User user, List<String> emails, Item item, boolean isEncrypted) throws ShareProposalNotCreatedException, UserNotFoundException; public void doUpdateWorkspace(User user, Workspace workspace) throws UserNotFoundException, WorkspaceNotUpdatedException; public User doGetUser(String email) throws UserNotFoundException; public Connection getConnection(); }