diff --git a/app/src/main/java/space/hackenslacker/kanbn4droid/app/boards/BoardsRepository.kt b/app/src/main/java/space/hackenslacker/kanbn4droid/app/boards/BoardsRepository.kt index 37bf305..47652b3 100644 --- a/app/src/main/java/space/hackenslacker/kanbn4droid/app/boards/BoardsRepository.kt +++ b/app/src/main/java/space/hackenslacker/kanbn4droid/app/boards/BoardsRepository.kt @@ -93,11 +93,30 @@ class BoardsRepository( is BoardsApiResult.Success -> sessionResult.value is BoardsApiResult.Failure -> return sessionResult } - return apiClient.listBoards( + val boardsResult = apiClient.listBoards( baseUrl = session.baseUrl, apiKey = session.apiKey, workspaceId = session.workspaceId, ) + if (boardsResult is BoardsApiResult.Failure) { + return boardsResult + } + + val boards = (boardsResult as BoardsApiResult.Success).value + val templatesResult = apiClient.listBoardTemplates( + baseUrl = session.baseUrl, + apiKey = session.apiKey, + workspaceId = session.workspaceId, + ) + + return when (templatesResult) { + is BoardsApiResult.Success -> { + val templateIds = templatesResult.value.map { it.id }.toSet() + BoardsApiResult.Success(boards.filterNot { it.id in templateIds }) + } + + is BoardsApiResult.Failure -> BoardsApiResult.Success(boards) + } } suspend fun listTemplates(): BoardsApiResult> {