Skip to content

Commit

Permalink
#5 DetailView Domain layer
Browse files Browse the repository at this point in the history
  • Loading branch information
zzisun committed Apr 21, 2021
1 parent 2190670 commit 60145d8
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 4 deletions.
9 changes: 9 additions & 0 deletions ios/sidedishApp/sidedishApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,8 @@
children = (
9386C1A4262E54D5008645D9 /* SidedishUseCase.swift */,
9386C1B0262E553C008645D9 /* SidedishUseCasePort.swift */,
764CE0B2263008C500DED09C /* DetailUseCase.swift */,
764CE0B7263008E200DED09C /* DetailUseCasePort.swift */,
);
path = UseCase;
sourceTree = "<group>";
Expand Down Expand Up @@ -406,17 +408,24 @@
buildActionMask = 2147483647;
files = (
9386C1C5262F311C008645D9 /* BadgeLabel.swift in Sources */,
764CE0C72630167E00DED09C /* DetailItem.swift in Sources */,
764CE0AE2630079C00DED09C /* DetailNetworkManager.swift in Sources */,
764CE0C22630110500DED09C /* DetailViewController.swift in Sources */,
9386C104262D7400008645D9 /* SidedishViewController.swift in Sources */,
9386C1B6262EA2E8008645D9 /* RemoteImageView.swift in Sources */,
9386C162262D8BA9008645D9 /* SidedishViewModel.swift in Sources */,
9386C1A5262E54D5008645D9 /* SidedishUseCase.swift in Sources */,
9386C184262DC53B008645D9 /* Side.swift in Sources */,
764CE0BD26300A3000DED09C /* DetailViewModel.swift in Sources */,
764CE0B8263008E200DED09C /* DetailUseCasePort.swift in Sources */,
764CE0A9263003A200DED09C /* Detail.swift in Sources */,
9386C19B262E52C6008645D9 /* NetworkManager.swift in Sources */,
9386C17F262DC52C008645D9 /* Soup.swift in Sources */,
9386C1D2262FC561008645D9 /* SidedishViewModelType.swift in Sources */,
9386C133262D7B0B008645D9 /* Item.swift in Sources */,
9386C100262D7400008645D9 /* AppDelegate.swift in Sources */,
9386C1A0262E5334008645D9 /* SidedishNetworkManager.swift in Sources */,
764CE0B3263008C500DED09C /* DetailUseCase.swift in Sources */,
9386C156262D86C3008645D9 /* LayoutManager.swift in Sources */,
9386C16E262D8C02008645D9 /* Main.swift in Sources */,
9386C189262E4DB2008645D9 /* SectionHeader.swift in Sources */,
Expand Down
21 changes: 21 additions & 0 deletions ios/sidedishApp/sidedishApp/Domain/Entity/Detail.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,24 @@
//

import Foundation

struct Detail: Codable {
private let item: DetailItem

init(){
let id = 0
let detailImages = [""]
let descriptionImages = [""]
let name = ""
let description = ""
let normalPrice = 0
let salePrice = 0
// let eventBadgeList = ["]
let pointRate = 1
let isPurchasable = false
let deliveryInfo = ""
let deliveryFee = ""
self.item = DetailItem(id: id, detailImages: detailImages, descriptionImages: descriptionImages, name: name, description: description, normalPrice: normalPrice, salePrice: salePrice, pointRate: pointRate, isPurchasable: isPurchasable, deliveryInfo: deliveryInfo, deliveryFee: deliveryFee)

}
}
61 changes: 61 additions & 0 deletions ios/sidedishApp/sidedishApp/Domain/Entity/DetailItem.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,64 @@
//

import Foundation

struct DetailItem: Codable {
private let id: Int
private let detailImages: [String]
private let descriptionImages: [String]
private let name: String
private let description: String
private let normalPrice: Int
private let salePrice: Int
// private let eventBadgeList: [EventBadge]
private let pointRate: Int
private let isPurchasable: Bool
private let deliveryInfo: String
private let deliveryFee: String

enum CodingKeys: String, CodingKey {
case id
case detailImages
case descriptionImages
case name
case description
case normalPrice
case salePrice
// case eventBadgeList
case pointRate
case isPurchasable
case deliveryInfo = "delivery_info"
case deliveryFee = "delivery_fee"
}

init(id: Int, detailImages: [String], descriptionImages: [String], name: String, description: String, normalPrice: Int, salePrice: Int, pointRate: Int, isPurchasable: Bool, deliveryInfo: String, deliveryFee: String) {
self.id = id
self.detailImages = detailImages
self.descriptionImages = descriptionImages
self.name = name
self.description = description
self.normalPrice = normalPrice
self.salePrice = salePrice
// self.eventBadgeList = eventBadgeList
self.pointRate = pointRate
self.isPurchasable = isPurchasable
self.deliveryInfo = deliveryInfo
self.deliveryFee = deliveryFee
}

// convenience init() {
// let id = 0
// let detailImages = [""]
// let descriptionImages = [""]
// let name = ""
// let description = ""
// let normalPrice = 0
// let salePrice = 0
//// let eventBadgeList = ["]
// let pointRate = 1
// let isPurchasable = false
// let deliveryInfo = ""
// let deliveryFee = ""
// self.init(id: id, detailImages: detailImages, descriptionImages: descriptionImages, name: name, description: description, normalPrice: normalPrice, salePrice: salePrice, pointRate: pointRate, isPurchasable: isPurchasable, deliveryInfo: deliveryInfo, deliveryFee: deliveryFee)
// }
}
24 changes: 22 additions & 2 deletions ios/sidedishApp/sidedishApp/Domain/UseCase/DetailUseCase.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
//
// DetailUseCase.swift
// sidedishApp
// DetailApp
//
// Created by 김지선 on 2021/04/21.
// Created by zombietux on 2021/04/20.
//

import Foundation
import Combine

class DetailUseCase: DetailUseCasePort {
private var detailNetworkManager: DetailNetworkManagerProtocol

init(detailNetworkManager: DetailNetworkManagerProtocol) {
self.detailNetworkManager = detailNetworkManager
}

convenience init() {
let detailNetworkManager = DetailNetworkManager()
self.init(detailNetworkManager: detailNetworkManager)
}

func getItem(path category: String, path id: Int) -> AnyPublisher<Detail, Error> {
return detailNetworkManager.getItem(path: category, path: id)
}
}


Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
//
// DetailUseCasePort.swift
// SidedishUseCasePort.swift
// sidedishApp
//
// Created by 김지선 on 2021/04/21.
// Created by zombietux on 2021/04/20.
//

import Foundation
import Combine

protocol DetailUseCasePort {
func getItem(path category: String, path id: Int) -> AnyPublisher<Detail, Error>
}

0 comments on commit 60145d8

Please sign in to comment.