Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ expect object AppDatabaseConstructor : RoomDatabaseConstructor<WriteopiaApplicat
TokenEntity::class,
WorkspaceEntity::class
],
version = 25,
version = 26,
exportSchema = false
)
@TypeConverters(IdListConverter::class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ LIMIT 1;
selectWithContent:
SELECT *
FROM document_entity
LEFT JOIN story_step_entity ON document_entity.id=story_step_entity.document_id
INNER JOIN story_step_entity ON document_entity.id=story_step_entity.document_id
WHERE deleted = FALSE
ORDER BY position;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ interface DocumentEntityDao {
// The order here doesn't matter, because only one document should be returned
@Query(
"SELECT * FROM $DOCUMENT_ENTITY " +
"LEFT JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE $DOCUMENT_ENTITY.id = :documentId " +
"JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE $DOCUMENT_ENTITY.id = :documentId AND is_deleted = FALSE " +
"ORDER BY $DOCUMENT_ENTITY.created_at, $STORY_UNIT_ENTITY.position"
)
suspend fun loadDocumentWithContentById(
Expand All @@ -68,8 +68,8 @@ interface DocumentEntityDao {
// The order here doesn't matter, because only one document should be returned
@Query(
"SELECT * FROM $DOCUMENT_ENTITY " +
"LEFT JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE $DOCUMENT_ENTITY.id IN (:documentIds) " +
"JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE $DOCUMENT_ENTITY.id IN (:documentIds) AND is_deleted = FALSE " +
"ORDER BY " +
"CASE WHEN :orderBy = \'$TITLE\' THEN $DOCUMENT_ENTITY.title END COLLATE NOCASE ASC, " +
"CASE WHEN :orderBy = \'$CREATED_AT\' THEN $DOCUMENT_ENTITY.created_at END DESC, " +
Expand All @@ -83,7 +83,7 @@ interface DocumentEntityDao {

@Query(
"SELECT * FROM $DOCUMENT_ENTITY " +
"LEFT JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE workspace_id = :userId " +
"ORDER BY " +
// "CASE WHEN :orderBy = \'$TITLE\' THEN $DOCUMENT_ENTITY.title END COLLATE NOCASE ASC, " +
Expand All @@ -97,22 +97,22 @@ interface DocumentEntityDao {

@Query(
"SELECT * FROM $DOCUMENT_ENTITY " +
"LEFT JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE workspace_id = :userId " +
"JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE workspace_id = :userId AND is_deleted = FALSE " +
"ORDER BY " +
// "CASE WHEN :orderBy = \'$TITLE\' THEN $DOCUMENT_ENTITY.title END COLLATE NOCASE ASC, " +
// "CASE WHEN :orderBy = \'$CREATED_AT\' THEN $DOCUMENT_ENTITY.created_at END DESC, " +
// "CASE WHEN :orderBy = \'$LAST_UPDATED_AT\' THEN $DOCUMENT_ENTITY.last_updated_at END DESC, " +
"$STORY_UNIT_ENTITY.position"
)
fun listenForDocumentsWithContentForUser(
fun listenForDocumentsWithContentForWorkspace(
userId: String
): Flow<Map<DocumentEntity, List<StoryStepEntity>>>

@Query(
"SELECT * FROM $DOCUMENT_ENTITY " +
"LEFT JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE $DOCUMENT_ENTITY.parent_id = :parentId " +
"JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE $DOCUMENT_ENTITY.parent_id = :parentId AND is_deleted = FALSE " +
"ORDER BY " +
// "CASE WHEN :orderBy = \'$TITLE\' THEN $DOCUMENT_ENTITY.title END COLLATE NOCASE ASC, " +
// "CASE WHEN :orderBy = \'$CREATED_AT\' THEN $DOCUMENT_ENTITY.created_at END DESC, " +
Expand All @@ -135,7 +135,7 @@ interface DocumentEntityDao {
@Query(
"SELECT * " +
"FROM $DOCUMENT_ENTITY " +
"LEFT JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"JOIN $STORY_UNIT_ENTITY ON $DOCUMENT_ENTITY.id = $STORY_UNIT_ENTITY.document_id " +
"WHERE $DOCUMENT_ENTITY.workspace_id = :workspaceId " +
"ORDER BY " +
"$STORY_UNIT_ENTITY.position"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import io.writeopia.sdk.models.CREATED_AT
import io.writeopia.sdk.models.DOCUMENT_ENTITY
import io.writeopia.sdk.models.FAVORITE
import io.writeopia.sdk.models.ICON
import io.writeopia.sdk.models.IS_DELETED
import io.writeopia.sdk.models.IS_LOCKED
import io.writeopia.sdk.models.LAST_SYNCED_AT
import io.writeopia.sdk.models.LAST_UPDATED_AT
Expand All @@ -27,6 +28,7 @@ data class DocumentEntity(
@ColumnInfo(PARENT_ID) val parentId: String,
@ColumnInfo(ICON) val icon: String? = null,
@ColumnInfo(IS_LOCKED) val isLocked: Boolean,
@ColumnInfo(IS_DELETED) val isDeleted: Boolean,
) {
companion object {
fun createById(id: String, workspaceId: String, parentId: String): DocumentEntity {
Expand All @@ -40,7 +42,8 @@ data class DocumentEntity(
workspaceId,
favorite = false,
parentId = parentId,
isLocked = false
isLocked = false,
isDeleted = false
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,6 @@ fun Document.toEntity() = DocumentEntity(
workspaceId = workspaceId,
favorite = favorite,
parentId = parentId,
isLocked = isLocked
isLocked = isLocked,
isDeleted = deleted
)
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ const val FAVORITE: String = "favorite"
const val PARENT_ID: String = "parent_id"
const val ICON: String = "icon"
const val IS_LOCKED: String = "is_locked"
const val IS_DELETED: String = "is_deleted"