Skip to content

Commit 874f7bb

Browse files
leandroBorgesFerreiraCI BotLeandro Ferreira
authored
Documents api (Writeopia#442)
* Documents api - ini * Adding documents query in the backend * Returning ids from a folder * Update DocumentsIntegrationTest.kt * Name changes * Starting integration with app * Fixing compilation * Moving classes and merging code * Running backend * making tests run in local database * fixing folder diff * sketch of sync for app * structure of the implementation # Conflicts: # application/core/documents/build.gradle.kts * Fixing DocumentSync implementation * Adding rom implementation * Ktlint * Adding synced info * Adding correct icon * Adding correctly icons * fixing logic * Update NoteItems.kt * Adding correctly lastSyncAt * Syncing, but favorite is being erased * add isFavorite to API * Creating a langchain comunication * deleting langchain * Sending documents * Sending documents * Search from ktor backend * Changing search feature * Dependency injection working * semantic search working * Fixing rebase # Conflicts: # application/features/note_menu/src/commonMain/kotlin/io/writeopia/notemenu/viewmodel/ChooseNoteKmpViewModel.kt * Fixing rebase 2 * deleting print * Update MainDesktop.kt * commenting out icon * Changing room version * fixing tests * fixing build for tests * ktlint --------- Co-authored-by: CI Bot <[email protected]> Co-authored-by: Leandro Ferreira <[email protected]>
1 parent 9eee3d3 commit 874f7bb

146 files changed

Lines changed: 2739 additions & 1038 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-and-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ jobs:
102102
distribution: adopt
103103
java-version: '21'
104104
- name: Build backend
105-
run: ./gradlew backend:documents:documents_spring:assemble backend:editor:api_editor:assemble backend:editor:api_editor:test backend:editor:api_editor_socket:assemble backend:editor:api_editor_socket:test --no-daemon
105+
run: ./gradlew :backend:gateway:test --no-daemon
106106
- name: upload results
107107
uses: actions/upload-artifact@v4
108108
if: failure()

application/common_flows/wide_screen_common/src/commonMain/kotlin/io/writeopia/notes/desktop/components/App.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import io.writeopia.notemenu.navigation.NAVIGATION_TYPE
5050
import io.writeopia.notemenu.navigation.navigateToNotes
5151
import io.writeopia.notemenu.ui.screen.menu.EditFileScreen
5252
import io.writeopia.notemenu.ui.screen.menu.RoundedVerticalDivider
53+
import io.writeopia.sdk.network.injector.WriteopiaConnectionInjector
5354
import io.writeopia.sql.WriteopiaDb
5455
import io.writeopia.sqldelight.di.SqlDelightDaoInjector
5556
import io.writeopia.sqldelight.di.WriteopiaDbInjector
@@ -75,6 +76,8 @@ fun DesktopApp(
7576
toggleMaxScreen: () -> Unit,
7677
startDestination: String = startDestination(),
7778
) {
79+
WriteopiaConnectionInjector.setBaseUrl("http://localhost:8080")
80+
7881
if (writeopiaDb != null) {
7982
WriteopiaDbInjector.initialize(writeopiaDb)
8083
}
@@ -89,7 +92,7 @@ fun DesktopApp(
8992
val notesMenuInjection = remember {
9093
NotesMenuKmpInjection.desktop(
9194
selectionState = selectionState,
92-
keyboardEventFlow = keyboardEventFlow
95+
keyboardEventFlow = keyboardEventFlow,
9396
)
9497
}
9598

application/composeApp/src/androidMain/kotlin/io/writeopia/navigation/NavigationActivity.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.lifecycle.viewmodel.compose.viewModel
1313
import androidx.navigation.NavHostController
1414
import androidx.navigation.compose.rememberNavController
1515
import io.writeopia.BuildConfig
16-
import io.writeopia.auth.core.token.AppBearerTokenHandler
1716
import io.writeopia.auth.di.AuthInjection
1817
import io.writeopia.auth.navigation.authNavigation
1918
import io.writeopia.common.utils.Destinations
@@ -31,7 +30,7 @@ import io.writeopia.persistence.room.WriteopiaApplicationDatabase
3130
import io.writeopia.persistence.room.injection.AppRoomDaosInjection
3231
import io.writeopia.persistence.room.injection.RoomRepositoryInjection
3332
import io.writeopia.persistence.room.injection.WriteopiaRoomInjector
34-
import io.writeopia.sdk.network.injector.ConnectionInjector
33+
import io.writeopia.sdk.network.injector.WriteopiaConnectionInjector
3534
import io.writeopia.ui.image.ImageLoadConfig
3635

3736
class NavigationActivity : ComponentActivity() {
@@ -75,14 +74,11 @@ fun NavigationGraph(
7574
val uiConfigInjection = UiConfigurationInjector.singleton()
7675

7776
val appDaosInjection = AppRoomDaosInjection.singleton()
78-
val connectionInjector = ConnectionInjector(
79-
bearerTokenHandler = AppBearerTokenHandler,
80-
baseUrl = BuildConfig.BASE_URL
81-
)
77+
WriteopiaConnectionInjector.setBaseUrl(BuildConfig.BASE_URL)
8278
val uiConfigViewModel = uiConfigInjection.provideUiConfigurationViewModel()
8379
val repositoryInjection = RoomRepositoryInjection.singleton()
84-
val authInjection = AuthInjection(connectionInjector, repositoryInjection)
85-
val editorInjector = EditorKmpInjector.mobile(repositoryInjection, connectionInjector)
80+
val authInjection = AuthInjection(repositoryInjection)
81+
val editorInjector = EditorKmpInjector.mobile(repositoryInjection)
8682
val notesMenuInjection = NotesMenuKmpInjection.mobile(repositoryInjection)
8783

8884
val searchInjector = remember {

application/core/common_ui/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ kotlin {
4242
implementation(compose.material3)
4343
implementation(compose.ui)
4444
implementation(compose.components.uiToolingPreview)
45+
46+
implementation(libs.kotlinx.datetime)
4547
}
4648
}
4749
}

application/core/common_ui/src/commonMain/kotlin/io/writeopia/commonui/dtos/DocumentUi.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ sealed interface MenuItemUi : Node, Traversable {
2424
val preview: List<StoryStep>,
2525
override var depth: Int = 0,
2626
override val highlighted: Boolean,
27-
override val icon: MenuItem.Icon? = null
27+
override val icon: MenuItem.Icon? = null,
28+
val isSynced: Boolean
2829
) : MenuItemUi {
2930

3031
override val id: String = documentId

application/core/common_ui/src/commonMain/kotlin/io/writeopia/commonui/extensions/DocumentExtensions.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ fun MenuItem.toUiCard(
4242
parentId = parentId,
4343
isFavorite = favorite,
4444
highlighted = highlighted,
45-
icon = icon
45+
icon = icon,
46+
isSynced = lastSyncedAt?.let { synced -> lastUpdatedAt <= synced } ?: false
4647
)
4748

4849
else -> throw IllegalArgumentException("MenuItemUi could not me created")

application/core/configuration/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ kotlin {
2727
sourceSets {
2828
val commonMain by getting {
2929
dependencies {
30+
implementation(project(":writeopia_models"))
31+
3032
implementation(project(":application:core:models"))
3133
implementation(project(":application:core:persistence_bridge"))
3234
implementation(project(":application:core:utils"))

application/core/configuration/src/commonMain/kotlin/io/writeopia/core/configuration/repository/ConfigurationRepository.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.writeopia.core.configuration.repository
22

33
import io.writeopia.core.configuration.models.NotesArrangement
44
import io.writeopia.models.interfaces.configuration.WorkspaceConfigRepository
5-
import io.writeopia.sdk.persistence.core.sorting.OrderBy
5+
import io.writeopia.sdk.models.sorting.OrderBy
66
import kotlinx.coroutines.flow.Flow
77

88
interface ConfigurationRepository : WorkspaceConfigRepository {

application/core/configuration/src/commonMain/kotlin/io/writeopia/core/configuration/repository/ConfigurationRoomRepository.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package io.writeopia.core.configuration.repository
33
import io.writeopia.common.utils.persistence.configuration.NotesConfigurationCommonEntity
44
import io.writeopia.common.utils.persistence.daos.NotesConfigurationCommonDao
55
import io.writeopia.core.configuration.models.NotesArrangement
6-
import io.writeopia.sdk.persistence.core.extensions.toEntityField
7-
import io.writeopia.sdk.persistence.core.sorting.OrderBy
6+
import io.writeopia.sdk.models.extensions.toEntityField
7+
import io.writeopia.sdk.models.sorting.OrderBy
88
import kotlinx.coroutines.flow.Flow
99
import kotlinx.coroutines.flow.map
1010

application/core/configuration/src/commonMain/kotlin/io/writeopia/core/configuration/repository/ConfigurationSqlDelightRepository.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.writeopia.app.sql.WorkspaceConfiguration
55
import io.writeopia.common.utils.extensions.toBoolean
66
import io.writeopia.common.utils.extensions.toLong
77
import io.writeopia.core.configuration.models.NotesArrangement
8-
import io.writeopia.sdk.persistence.core.sorting.OrderBy
8+
import io.writeopia.sdk.models.sorting.OrderBy
99
import io.writeopia.sqldelight.dao.ConfigurationSqlDelightDao
1010
import kotlinx.coroutines.flow.Flow
1111
import kotlinx.coroutines.flow.MutableStateFlow

0 commit comments

Comments
 (0)