Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2019-07-06 01:16:22 +0300
committerdesperateCoder <echotodevnull@gmail.com>2019-07-06 01:16:22 +0300
commiteab67ada163fcf9703311b6578f2960df478c777 (patch)
tree12a2bd83776bc843b9668507b21b1b7885ec488d /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db
parent906bae9f0821af5ab341ebb5c4e63ab1938779bc (diff)
almost done i hope, but still buggy (delete label and back -> card deleted on server?!)
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java24
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithLabelDao.java14
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java19
3 files changed, 56 insertions, 1 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
index 57140f938..2dd90ff35 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
@@ -446,4 +446,28 @@ public class DataBaseAdapter {
public Board getBoardByLocalCardIdDirectly(long localCardId) {
return db.getBoardDao().getBoardByLocalCardIdDirectly(localCardId);
}
+
+ public JoinCardWithLabel getJoinCardWithLabel(Long localLabelId, Long localCardId) {
+ return db.getJoinCardWithLabelDao().getJoin(localLabelId, localCardId);
+ }
+
+ public JoinCardWithUser getJoinCardWithUser(Long localUserId, Long localCardId) {
+ return db.getJoinCardWithUserDao().getJoin(localUserId, localCardId);
+ }
+
+ public List<JoinCardWithLabel> getAllDeletedLabelJoinsByStackWithRemoteIDs() {
+ return db.getJoinCardWithLabelDao().getAllDeletedJoinsByStackWithRemoteIDs();
+ }
+
+ public List<JoinCardWithUser> getAllDeletedUserJoinsWithRemoteIDs() {
+ return db.getJoinCardWithUserDao().getDeletedJoinsWithRemoteIDs();
+ }
+
+ public void deleteJoinedLabelForCardPhysicallyByRemoteIDs(Long accountId, Long remoteCardId, Long remoteLabelId) {
+ db.getJoinCardWithLabelDao().deleteJoinedLabelForCardPhysicallyByRemoteIDs(accountId, remoteCardId, remoteLabelId);
+ }
+
+ public void deleteJoinedUserForCardPhysicallyByRemoteIDs(Long accountId, Long remoteCardId, String userUid) {
+ db.getJoinCardWithUserDao().deleteJoinedUserForCardPhysicallyByRemoteIDs(accountId, remoteCardId, userUid);
+ }
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithLabelDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithLabelDao.java
index d7b8a9324..3a2600f7b 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithLabelDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithLabelDao.java
@@ -20,4 +20,18 @@ public interface JoinCardWithLabelDao extends GenericDao<JoinCardWithLabel> {
@Query("select labelId from joincardwithlabel WHERE cardId = :localCardId and labelId IN (:localLabelIds) and status <> 3") // not LOCAL_DELETED
List<Long> filterDeleted(long localCardId, List<Long> localLabelIds);
+
+ @Query("select * from joincardwithlabel WHERE cardId = :localCardId and labelId = :localLabelId")
+ JoinCardWithLabel getJoin(Long localLabelId, Long localCardId);
+
+ @Query("select l.id as labelId, c.id as cardId, j.status from joincardwithlabel j " +
+ "inner join card c on j.cardId = c.localId " +
+ "inner join label l on j.labelId = l.localId " +
+ "WHERE j.status <> 1") // not UP_TO_DATE
+ List<JoinCardWithLabel> getAllDeletedJoinsByStackWithRemoteIDs();
+
+ @Query("delete from joincardwithlabel " +
+ "where cardId = (select c.localId from card c where c.accountId = :accountId and c.id = :remoteCardId) " +
+ "and labelId = (select l.localId from label l where l.accountId = :accountId and l.id = :remoteLabelId)")
+ void deleteJoinedLabelForCardPhysicallyByRemoteIDs(Long accountId, Long remoteCardId, Long remoteLabelId);
} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java
index 06e740901..8cdf0c564 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java
@@ -2,11 +2,14 @@ package it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao;
import androidx.room.Dao;
import androidx.room.Query;
+
+import java.util.List;
+
import it.niedermann.nextcloud.deck.model.JoinCardWithUser;
@Dao
public interface JoinCardWithUserDao extends GenericDao<JoinCardWithUser> {
- @Query("DELETE FROM joincardwithuser WHERE cardId = :localId and status=1") // 1 = up_to_date
+ @Query("DELETE FROM joincardwithuser WHERE cardId = :localId and status=1") // 1 = UP_TO_DATE
void deleteByCardId(long localId);
@Query("Update joincardwithuser set status = :status WHERE cardId = :localCardId and userId = :localUserId")
@@ -14,4 +17,18 @@ public interface JoinCardWithUserDao extends GenericDao<JoinCardWithUser> {
@Query("DELETE FROM joincardwithuser WHERE cardId = :localCardId and userId = :localUserId")
void deleteByCardIdAndUserIdPhysically(long localCardId, long localUserId);
+
+ @Query("select * FROM joincardwithuser WHERE cardId = :localCardId and userId = :localUserId")
+ JoinCardWithUser getJoin(Long localUserId, Long localCardId);
+
+ @Query("select u.localId as userId, c.id as cardId, j.status from joincardwithuser j " +
+ "inner join card c on j.cardId = c.localId " +
+ "inner join user u on j.userId = u.localId " +
+ "WHERE j.status <> 1") // not UP_TO_DATE
+ List<JoinCardWithUser> getDeletedJoinsWithRemoteIDs();
+
+ @Query("delete from joincardwithuser " +
+ "where cardId = (select c.localId from card c where c.accountId = :accountId and c.id = :remoteCardId) " +
+ "and userId = (select u.localId from user u where u.accountId = :accountId and u.uid = :userUid)")
+ void deleteJoinedUserForCardPhysicallyByRemoteIDs(Long accountId, Long remoteCardId, String userUid);
} \ No newline at end of file