Skip to content
Open
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
1 change: 1 addition & 0 deletions data/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ android {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
compileSdkMinor = 0
}

kotlin {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.aiusecase
package com.itlab.domain.usecase.aiusecase

import com.itlab.domain.ai.NoteAiService
import com.itlab.domain.model.ContentItem
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.aiusecase
package com.itlab.domain.usecase.aiusecase

import com.itlab.domain.ai.NoteAiService
import com.itlab.domain.model.ContentItem
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.folderusecase

import com.itlab.domain.model.NoteFolder
import com.itlab.domain.repository.NoteFolderRepository
import kotlinx.datetime.Clock
import java.util.UUID

class CreateFolderUseCase(
private val repo: NoteFolderRepository,
) {
suspend operator fun invoke(folder: NoteFolder): String {
// discuss
val folder = folder.copy(createdAt = Clock.System.now())
val now = Clock.System.now()
val folder =
folder.copy(
id = UUID.randomUUID().toString(),
createdAt = now,
updatedAt = now,
)
return repo.createFolder(folder)
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.folderusecase

import com.itlab.domain.repository.NoteFolderRepository

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.folderusecase

import com.itlab.domain.model.NoteFolder
import com.itlab.domain.repository.NoteFolderRepository
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.folderusecase

import com.itlab.domain.model.NoteFolder
import com.itlab.domain.repository.NoteFolderRepository
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.folderusecase

import com.itlab.domain.model.NoteFolder
import com.itlab.domain.repository.NoteFolderRepository
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.itlab.domain.aiusecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.repository.NotesRepository
import kotlinx.datetime.Clock

class ApplySummaryUseCase(
private val repo: NotesRepository,
Expand All @@ -17,7 +18,7 @@ class ApplySummaryUseCase(
note.copy(
summary = newSummary,
updatedAt =
kotlinx.datetime.Clock.System
Clock.System
.now(),
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.itlab.domain.aiusecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.repository.NotesRepository
import kotlinx.datetime.Clock

class ApplyTagsUseCase(
private val repo: NotesRepository,
Expand All @@ -17,7 +18,7 @@ class ApplyTagsUseCase(
note.copy(
tags = newTags,
updatedAt =
kotlinx.datetime.Clock.System
Clock.System
.now(),
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.model.Note
import com.itlab.domain.repository.NotesRepository
import kotlinx.datetime.Clock
import java.util.UUID

class CreateNoteUseCase(
private val repo: NotesRepository,
) {
suspend operator fun invoke(note: Note): String {
val note = note.copy(createdAt = Clock.System.now())
val now = Clock.System.now()

val note =
note.copy(
id = UUID.randomUUID().toString(),
createdAt = now,
updatedAt = now,
)
return repo.createNote(note)
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.repository.NotesRepository

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.model.Note
import com.itlab.domain.repository.NotesRepository
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.repository.NotesRepository
import kotlinx.datetime.Clock
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.model.Note
import com.itlab.domain.repository.NotesRepository
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.model.Note
import com.itlab.domain.repository.NotesRepository
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.itlab.domain.usecase
package com.itlab.domain.usecase.noteusecase

import com.itlab.domain.model.Note
import com.itlab.domain.repository.NotesRepository
Expand Down
8 changes: 4 additions & 4 deletions domain/src/test/java/com/itlab/domain/AIUseCasesTest.kt
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.itlab.domain

import com.itlab.domain.ai.NoteAiService
import com.itlab.domain.aiusecase.ApplySummaryUseCase
import com.itlab.domain.aiusecase.ApplyTagsUseCase
import com.itlab.domain.aiusecase.SuggestSummaryUseCase
import com.itlab.domain.aiusecase.SuggestTagsUseCase
import com.itlab.domain.model.ContentItem
import com.itlab.domain.model.DataSource
import com.itlab.domain.model.Note
import com.itlab.domain.repository.NotesRepository
import com.itlab.domain.usecase.aiusecase.SuggestSummaryUseCase
import com.itlab.domain.usecase.aiusecase.SuggestTagsUseCase
import com.itlab.domain.usecase.noteusecase.ApplySummaryUseCase
import com.itlab.domain.usecase.noteusecase.ApplyTagsUseCase
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.map
Expand Down
38 changes: 21 additions & 17 deletions domain/src/test/java/com/itlab/domain/FolderUseCasesTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package com.itlab.domain

import com.itlab.domain.model.NoteFolder
import com.itlab.domain.repository.NoteFolderRepository
import com.itlab.domain.usecase.CreateFolderUseCase
import com.itlab.domain.usecase.DeleteFolderUseCase
import com.itlab.domain.usecase.GetFolderUseCase
import com.itlab.domain.usecase.ObserveFoldersUseCase
import com.itlab.domain.usecase.UpdateFolderUseCase
import com.itlab.domain.usecase.folderusecase.CreateFolderUseCase
import com.itlab.domain.usecase.folderusecase.DeleteFolderUseCase
import com.itlab.domain.usecase.folderusecase.GetFolderUseCase
import com.itlab.domain.usecase.folderusecase.ObserveFoldersUseCase
import com.itlab.domain.usecase.folderusecase.UpdateFolderUseCase
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking
Expand Down Expand Up @@ -58,11 +58,11 @@ class FolderUseCasesTest {
val create = CreateFolderUseCase(repo)
val get = GetFolderUseCase(repo)

val folder = NoteFolder(id = "1", name = "Test")
val folder = NoteFolder(name = "Test")

create(folder)
val id = create(folder)

val result = get("1")
val result = get(id)

assertEquals("Test", result?.name)
}
Expand All @@ -76,13 +76,16 @@ class FolderUseCasesTest {
val update = UpdateFolderUseCase(repo)
val get = GetFolderUseCase(repo)

val folder = NoteFolder(id = "1", name = "Old")
create(folder)
val folder = NoteFolder(name = "Old")

val updated = folder.copy(name = "New")
val id = create(folder)

val created = get(id)!!

val updated = created.copy(name = "New")
update(updated)

val result = get("1")
val result = get(id)

assertEquals("New", result?.name)
}
Expand All @@ -96,12 +99,13 @@ class FolderUseCasesTest {
val delete = DeleteFolderUseCase(repo)
val get = GetFolderUseCase(repo)

val folder = NoteFolder(id = "1", name = "Test")
create(folder)
val folder = NoteFolder(name = "Test")

val id = create(folder)

delete("1")
delete(id)

val result = get("1")
val result = get(id)

assertNull(result)
}
Expand All @@ -113,7 +117,7 @@ class FolderUseCasesTest {
val create = CreateFolderUseCase(repo)
val observe = ObserveFoldersUseCase(repo)

create(NoteFolder(id = "1", name = "A"))
create(NoteFolder(name = "A"))

val list = observe().first()

Expand Down
38 changes: 20 additions & 18 deletions domain/src/test/java/com/itlab/domain/NoteUseCasesTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import com.itlab.domain.model.Note
import com.itlab.domain.model.NoteFolder
import com.itlab.domain.repository.NoteFolderRepository
import com.itlab.domain.repository.NotesRepository
import com.itlab.domain.usecase.CreateNoteUseCase
import com.itlab.domain.usecase.DeleteNoteUseCase
import com.itlab.domain.usecase.GetNoteUseCase
import com.itlab.domain.usecase.MoveNoteToFolderUseCase
import com.itlab.domain.usecase.ObserveNotesUseCase
import com.itlab.domain.usecase.UpdateNoteUseCase
import com.itlab.domain.usecase.noteusecase.CreateNoteUseCase
import com.itlab.domain.usecase.noteusecase.DeleteNoteUseCase
import com.itlab.domain.usecase.noteusecase.GetNoteUseCase
import com.itlab.domain.usecase.noteusecase.MoveNoteToFolderUseCase
import com.itlab.domain.usecase.noteusecase.ObserveNotesUseCase
import com.itlab.domain.usecase.noteusecase.UpdateNoteUseCase
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking
Expand Down Expand Up @@ -77,19 +77,21 @@ class NoteUseCasesTest {
val delete = DeleteNoteUseCase(repo)
val get = GetNoteUseCase(repo)

val note = Note(id = "n1", title = "A")
val note = Note(title = "A")

create(note)
val id = create(note)

val updated = note.copy(title = "B")
val created = get(id)!!

val updated = created.copy(title = "B")
update(updated)

val result = get("n1")
val result = get(id)
assertEquals("B", result?.title)

delete("n1")
delete(id)

val result2 = get("n1")
val result2 = get(id)
assertNull(result2)
}

Expand All @@ -105,12 +107,13 @@ class NoteUseCasesTest {
val folder = NoteFolder(id = "f1", name = "Folder")
folderRepo.createFolder(folder)

val note = Note(id = "n1", title = "Note")
createNote(note)
val note = Note(title = "Note")

val noteId = createNote(note)

move("f1", "n1")
move("f1", noteId)

val updated = notesRepo.getNoteById("n1")
val updated = notesRepo.getNoteById(noteId)

assertEquals("f1", updated?.folderId)
}
Expand All @@ -122,8 +125,7 @@ class NoteUseCasesTest {
val observe = ObserveNotesUseCase(repo)
val create = CreateNoteUseCase(repo)

create(Note(id = "n1", title = "Test"))

create(Note(title = "Test"))
val list = observe().first()

assertEquals(1, list.size)
Expand Down
Loading