@@ -23,7 +23,7 @@ struct PhotoImportFeature {
2323 var isFetchingAlbums : Bool = false
2424 var isLoading : Bool = false
2525
26- var targetAlbumId : Int
26+ var targetAlbumId : Int
2727
2828 var uploadCount : Int { selectedIDs. count }
2929 var isUploadEnabled : Bool { uploadCount > 0 }
@@ -121,7 +121,7 @@ struct PhotoImportFeature {
121121
122122 return . run { [ id = state. selectedAlbum? . id] send in
123123 if id == - 1 {
124- await send ( . fetchPhotosResponse( Result { try await archiveClient. fetchFavoritePhotoList ( 20 , sortOrder) } ) )
124+ await send ( . fetchPhotosResponse( Result { try await archiveClient. fetchFavoritePhotoList ( size : 20 , sortOrder : sortOrder) } ) )
125125 } else {
126126 await send ( . fetchPhotosResponse( Result { try await archiveClient. fetchPhotoList ( folderId: targetFolderId, size: 20 , sortOrder: sortOrder) } ) )
127127 }
@@ -171,14 +171,17 @@ struct PhotoImportFeature {
171171 case . tapUpload:
172172 guard state. isUploadEnabled else { return . none }
173173 state. isLoading = true
174- let ids = Array ( state. selectedIDs)
175- let targetId = state. targetAlbumId
174+
175+ let photoIDs = Array ( state. selectedIDs)
176+ let targetFolderIDs = [ state. targetAlbumId]
176177
177178 return . run { send in
178- // TODO: 실제 API 연동 (archiveClient.duplicatePhoto(sourceFolderId: nil, photoIDs: ids, targetFolderIDs: [targetId]))
179- try ? await Task . sleep ( for: . seconds( 1 ) ) // 임시 딜레이
180-
181- await send ( . taskCompleted( message: " 사진을 앨범에 가져왔어요 " ) )
179+ do {
180+ try await archiveClient. duplicatePhoto ( photoIDs: photoIDs, targetFolderIDs: targetFolderIDs)
181+ await send ( . taskCompleted( message: " 사진을 앨범에 가져왔어요 " ) )
182+ } catch {
183+ await send ( . taskFailed( message: " 사진을 가져오지 못했어요 " ) )
184+ }
182185 }
183186
184187 case let . taskCompleted( message) :
0 commit comments