Skip to content

Commit 21b5422

Browse files
committed
[Chore] #192 - dto 변경사항 반영(메모, 이미지 너비 높이)
1 parent bfe05da commit 21b5422

11 files changed

Lines changed: 72 additions & 72 deletions

File tree

Neki-iOS/Features/Archive/Sources/Data/Sources/DTO/PhotoListDTO.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ public enum PhotoListDTO {
3030
isfavorite: $0.favorite,
3131
contentType: $0.contentType,
3232
createdAt: $0.createdAt,
33-
memo: "" // TODO: 서버 반영되면 수정
33+
memo: $0.memo,
34+
width: $0.width,
35+
height: $0.height
3436
)
3537
}
3638
}
@@ -42,13 +44,15 @@ public enum PhotoListDTO {
4244
let folderID: Int?
4345
let favorite: Bool
4446
let contentType, createdAt: String
47+
let memo: String?
48+
let width, height: Int?
4549

4650
enum CodingKeys: String, CodingKey {
4751
case photoID = "photoId"
4852
case imageURL = "imageUrl"
4953
case folderID = "folderId"
5054
case favorite = "favorite"
51-
case contentType, createdAt
55+
case contentType, createdAt, memo, width, height
5256
}
5357
}
5458

Neki-iOS/Features/Archive/Sources/Data/Sources/DefaultArchiveRepository.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,9 @@ extension DefaultArchiveRepository {
223223
isfavorite: request,
224224
contentType: oldItem.contentType,
225225
createdAt: oldItem.createdAt,
226-
memo: oldItem.memo
226+
memo: oldItem.memo,
227+
width: oldItem.width,
228+
height: oldItem.height
227229
)
228230
list[index] = newItem
229231
photoCache[key] = list
@@ -278,7 +280,9 @@ extension DefaultArchiveRepository {
278280
isfavorite: oldItem.isfavorite,
279281
contentType: oldItem.contentType,
280282
createdAt: oldItem.createdAt,
281-
memo: memo
283+
memo: memo,
284+
width: oldItem.width,
285+
height: oldItem.height
282286
)
283287
list[index] = newItem
284288
photoCache[key] = list
@@ -294,7 +298,9 @@ extension DefaultArchiveRepository {
294298
isfavorite: oldItem.isfavorite,
295299
contentType: oldItem.contentType,
296300
createdAt: oldItem.createdAt,
297-
memo: memo
301+
memo: memo,
302+
width: oldItem.width,
303+
height: oldItem.height
298304
)
299305
favoritePhotoCache[index] = newItem
300306
}

Neki-iOS/Features/Archive/Sources/Domain/Sources/Entities/PhotoEntity.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ struct PhotoEntity {
1515
let contentType: String
1616
let createdAt: String
1717
let memo: String?
18+
let width: Int?
19+
let height: Int?
1820
}

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Components/ArchiveImageCard.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ struct ArchiveImageCard: View {
2828
endPoint: UnitPoint(x: 0.54, y: 0.05)
2929
)
3030

31+
var imageAspectRatio: CGFloat? {
32+
if let width = item.width, let height = item.height, height > 0 {
33+
return CGFloat(width) / CGFloat(height)
34+
}
35+
return nil
36+
}
37+
3138
//MARK: - Init
3239

3340
init(
@@ -55,7 +62,7 @@ struct ArchiveImageCard: View {
5562
Logger.presentation.error("실패한 이미지 id: \(item.id)")
5663
}
5764
.cancelOnDisappear(true)
58-
.aspectRatio(contentMode: .fit)
65+
.aspectRatio(imageAspectRatio, contentMode: .fit)
5966
.overlay(content: {
6067
Color.black.opacity(0.04)
6168
})

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Feature/ArchiveAlbumDetailFeature.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,9 @@ struct ArchiveAlbumDetailFeature {
222222
isFavorite: entity.isfavorite,
223223
date: entity.createdAt.toISO8601Date(),
224224
folderId: currentAlbumId,
225-
memo: entity.memo ?? ""
225+
memo: entity.memo ?? "",
226+
width: entity.width,
227+
height: entity.height
226228
)
227229
}
228230

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Feature/ArchiveAllPhotosFeature.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,9 @@ struct ArchiveAllPhotosFeature {
206206
isFavorite: entity.isfavorite,
207207
date: entity.createdAt.toISO8601Date(),
208208
folderId: entity.folderID,
209-
memo: entity.memo ?? ""
209+
memo: entity.memo ?? "",
210+
width: entity.width,
211+
height: entity.height
210212
)
211213
}
212214

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Feature/ArchiveFavoriteAlbumFeature.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,9 @@ struct ArchiveFavoriteAlbumFeature {
175175
isFavorite: true,
176176
date: entity.createdAt.toISO8601Date(),
177177
folderId: currentAlbumId,
178-
memo: entity.memo ?? ""
178+
memo: entity.memo ?? "",
179+
width: entity.width,
180+
height: entity.height
179181
)
180182
}
181183

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Feature/ArchiveFeature.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,18 @@ struct ArchiveFeature {
189189

190190
case let .photoListResponse(.success(entities)):
191191
state.isFetchingPhotos = false
192-
let items = entities.map { ArchiveImageItem(id: $0.photoID, imageURLString: $0.imageURL, isFavorite: $0.isfavorite, date: $0.createdAt.toISO8601Date()) }
192+
let items = entities.map { entity in
193+
ArchiveImageItem(
194+
id: entity.photoID,
195+
imageURLString: entity.imageURL,
196+
isFavorite: entity.isfavorite,
197+
date: entity.createdAt.toISO8601Date(),
198+
folderId: entity.folderID,
199+
memo: entity.memo ?? "",
200+
width: entity.width,
201+
height: entity.height
202+
)
203+
}
193204
state.photos = IdentifiedArray(uniqueElements: items)
194205
return .none
195206

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Item/ArchiveImageItem.swift

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,39 @@ struct ArchiveImageItem: Equatable, Identifiable {
1414
let date: Date
1515
var folderId: Int?
1616
var memo: String
17+
var width: Int?
18+
var height: Int?
1719

18-
init(id: Int, imageURL: URL?, isFavorite: Bool = false, date: Date = Date(), folderId: Int? = nil, memo: String = "") {
20+
init(
21+
id: Int,
22+
imageURL: URL?,
23+
isFavorite: Bool = false,
24+
date: Date = Date(),
25+
folderId: Int? = nil,
26+
memo: String = "",
27+
width: Int? = nil,
28+
height: Int? = nil
29+
) {
1930
self.id = id
2031
self.imageURL = imageURL
2132
self.isFavorite = isFavorite
2233
self.date = date
2334
self.folderId = folderId
2435
self.memo = memo
36+
self.width = width
37+
self.height = height
2538
}
26-
27-
init(id: Int, imageURLString: String, isFavorite: Bool = false, date: Date = Date(), folderId: Int? = nil, memo: String = "") {
28-
self.init(id: id, imageURL: URL(string: imageURLString), isFavorite: isFavorite, date: date, folderId: folderId, memo: memo)
39+
40+
init(
41+
id: Int,
42+
imageURLString: String,
43+
isFavorite: Bool = false,
44+
date: Date = Date(),
45+
folderId: Int? = nil,
46+
memo: String = "",
47+
width: Int? = nil,
48+
height: Int? = nil
49+
) {
50+
self.init(id: id, imageURL: URL(string: imageURLString), isFavorite: isFavorite, date: date, folderId: folderId, memo: memo, width: width, height: height)
2951
}
3052
}

Neki-iOS/Features/Archive/Sources/Presentation/Sources/View/ArchiveAlbumDetailView.swift

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -220,28 +220,3 @@ private extension ArchiveAlbumDetailView {
220220
)
221221
}
222222
}
223-
224-
#Preview {
225-
ArchiveAlbumDetailView(
226-
store: Store(
227-
initialState: ArchiveAlbumDetailFeature.State(
228-
photos: [
229-
ArchiveImageItem(id: 1, imageURLString: "https://picsum.photos/200/300", isFavorite: true, date: Date(), folderId: 1),
230-
ArchiveImageItem(id: 2, imageURLString: "https://picsum.photos/200/400", isFavorite: false, date: Date(), folderId: 1),
231-
ArchiveImageItem(id: 3, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1),
232-
ArchiveImageItem(id: 4, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1),
233-
ArchiveImageItem(id: 5, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1),
234-
ArchiveImageItem(id: 6, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1),
235-
ArchiveImageItem(id: 7, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1),
236-
ArchiveImageItem(id: 8, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1),
237-
ArchiveImageItem(id: 9, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1),
238-
ArchiveImageItem(id: 10, imageURLString: "https://picsum.photos/200/250", isFavorite: false, date: Date(), folderId: 1)
239-
],
240-
album: AlbumItem(id: 1, title: "제주도 여행", count: 3, coverImageURL: nil, isFavorite: false)
241-
),
242-
reducer: {
243-
ArchiveAlbumDetailFeature()
244-
}
245-
)
246-
)
247-
}

0 commit comments

Comments
 (0)