Skip to content

Commit 049fa59

Browse files
committed
refactor: Todo 여러개 가져올 수 있는 유즈케이스를 쿼리를 통해 fetch하도록 병합
1 parent 61ebda5 commit 049fa59

15 files changed

Lines changed: 40 additions & 144 deletions

DevLog/App/Assembler/DomainAssembler.swift

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,24 +51,12 @@ private extension DomainAssembler {
5151
}
5252

5353
func registerTodoUseCases(_ container: DIContainer) {
54-
container.register(FetchPinnedTodosUseCase.self) {
55-
FetchPinnedTodosUseCaseImpl(container.resolve(TodoRepository.self))
56-
}
57-
5854
container.register(FetchTodoByIDUseCase.self) {
5955
FetchTodoByIDUseCaseImpl(container.resolve(TodoRepository.self))
6056
}
6157

62-
container.register(FetchTodosByKindUseCase.self) {
63-
FetchTodosByKindUseCaseImpl(container.resolve(TodoRepository.self))
64-
}
65-
66-
container.register(FetchTodosByDateRangeUseCase.self) {
67-
FetchTodosByDateRangeUseCaseImpl(container.resolve(TodoRepository.self))
68-
}
69-
70-
container.register(FetchTodosByKeywordUseCase.self) {
71-
FetchTodosByKeywordUseCaseImpl(container.resolve(TodoRepository.self))
58+
container.register(FetchTodosUseCase.self) {
59+
FetchTodosUseCaseImpl(container.resolve(TodoRepository.self))
7260
}
7361

7462
container.register(UpsertTodoUseCase.self) {

DevLog/Domain/UseCase/Todo/Fetch/FetchPinnedTodosUseCase.swift

Lines changed: 0 additions & 10 deletions
This file was deleted.

DevLog/Domain/UseCase/Todo/Fetch/FetchPinnedTodosUseCaseImpl.swift

Lines changed: 0 additions & 20 deletions
This file was deleted.

DevLog/Domain/UseCase/Todo/Fetch/FetchTodosByKeywordUseCase.swift

Lines changed: 0 additions & 10 deletions
This file was deleted.

DevLog/Domain/UseCase/Todo/Fetch/FetchTodosByKeywordUseCaseImpl.swift

Lines changed: 0 additions & 20 deletions
This file was deleted.

DevLog/Domain/UseCase/UserData/Fetch/Todo/FetchTodosByKindUseCase.swift renamed to DevLog/Domain/UseCase/Todo/Fetch/FetchTodosUseCase.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
//
2-
// FetchTodosByKindUseCase.swift
2+
// FetchTodosUseCase.swift
33
// DevLog
44
//
5-
// Created by 최윤진 on 2/1/26.
5+
// Created by opfic on 3/3/26.
66
//
77

8-
protocol FetchTodosByKindUseCase {
8+
protocol FetchTodosUseCase {
99
func execute(_ query: TodoQuery, cursor: TodoCursor?) async throws -> TodoPage
1010
}

DevLog/Domain/UseCase/UserData/Fetch/Todo/FetchTodosByKindUseCaseImpl.swift renamed to DevLog/Domain/UseCase/Todo/Fetch/FetchTodosUseCaseImpl.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
//
2-
// FetchTodosByKindUseCaseImpl.swift
2+
// FetchTodosUseCaseImpl.swift
33
// DevLog
44
//
5-
// Created by 최윤진 on 2/1/26.
5+
// Created by opfic on 3/3/26.
66
//
77

8-
final class FetchTodosByKindUseCaseImpl: FetchTodosByKindUseCase {
8+
final class FetchTodosUseCaseImpl: FetchTodosUseCase {
99
private let repository: TodoRepository
1010

1111
init(_ repository: TodoRepository) {
1212
self.repository = repository
1313
}
1414

1515
func execute(_ query: TodoQuery, cursor: TodoCursor?) async throws -> TodoPage {
16-
return try await repository.fetchTodos(query, cursor: cursor)
16+
try await repository.fetchTodos(query, cursor: cursor)
1717
}
1818
}

DevLog/Domain/UseCase/UserData/Fetch/Todo/FetchTodosByDateRangeUseCase.swift

Lines changed: 0 additions & 12 deletions
This file was deleted.

DevLog/Domain/UseCase/UserData/Fetch/Todo/FetchTodosByDateRangeUseCaseImpl.swift

Lines changed: 0 additions & 27 deletions
This file was deleted.

DevLog/Presentation/ViewModel/HomeViewModel.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,21 +85,21 @@ final class HomeViewModel: Store {
8585
private let upsertTodoUseCase: UpsertTodoUseCase
8686
private let addWebPageUseCase: AddWebPageUseCase
8787
private let deleteWebPageUseCase: DeleteWebPageUseCase
88-
private let fetchPinnedTodosUseCase: FetchPinnedTodosUseCase
88+
private let fetchTodosUseCase: FetchTodosUseCase
8989
private let fetchWebPagesUseCase: FetchWebPagesUseCase
9090
private var pendingTask: (WebPageItem, Int)?
9191

9292
init(
9393
addWebPageUseCase: AddWebPageUseCase,
9494
deleteWebPageUseCase: DeleteWebPageUseCase,
9595
upsertTodoUseCase: UpsertTodoUseCase,
96-
fetchPinnedTodosUseCase: FetchPinnedTodosUseCase,
96+
fetchTodosUseCase: FetchTodosUseCase,
9797
fetchWebPagesUseCase: FetchWebPagesUseCase
9898
) {
9999
self.addWebPageUseCase = addWebPageUseCase
100100
self.deleteWebPageUseCase = deleteWebPageUseCase
101101
self.upsertTodoUseCase = upsertTodoUseCase
102-
self.fetchPinnedTodosUseCase = fetchPinnedTodosUseCase
102+
self.fetchTodosUseCase = fetchTodosUseCase
103103
self.fetchWebPagesUseCase = fetchWebPagesUseCase
104104
}
105105

@@ -168,7 +168,8 @@ final class HomeViewModel: Store {
168168
do {
169169
defer { send(.setPinnedLoading(false)) }
170170
send(.setPinnedLoading(true))
171-
let todos = try await fetchPinnedTodosUseCase.execute()
171+
let page = try await fetchTodosUseCase.execute(TodoQuery(isPinned: true), cursor: nil)
172+
let todos = page.items
172173
send(.fetchPinnedTodos(todos.map { PinnedTodoItem(from: $0) }))
173174
} catch {
174175
send(.setAlert(isPresented: true, type: .error))

0 commit comments

Comments
 (0)