Skip to content

Commit

Permalink
Merge pull request #398 from hyun99999/feature/#384
Browse files Browse the repository at this point in the history
fix: 명함 조회 API 수정 (#384)
  • Loading branch information
hyun99999 authored Apr 11, 2023
2 parents 6771589 + dd41d6e commit fbd1c17
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 67 deletions.
54 changes: 27 additions & 27 deletions NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,29 +47,29 @@ public class CardAPI {
}
}

func cardListFetch(userID: String, isList: Bool, offset: Int?, completion: @escaping (NetworkResult<Any>) -> Void) {
cardProvider.request(.cardListFetch(userID: userID, isList: isList, offset: offset)) { (result) in
if isList == true {
func cardListFetch(pageNumber: Int? = nil, pageSize: Int? = nil, completion: @escaping (NetworkResult<Any>) -> Void) {
if let pageNumber, let pageSize {
cardProvider.request(.cardListPageFetch(pageNumber: pageNumber, pageSize: pageSize)) { result in
switch result {
case .success(let response):
let statusCode = response.statusCode
let data = response.data

let networkResult = self.judgeCardListFetchStatus(by: statusCode, data)
let networkResult = self.judgeMainListFetchStatus(by: statusCode, data)
completion(networkResult)

case .failure(let err):
print(err)
}
} else {
}
} else {
cardProvider.request(.cardListFetch) { result in
switch result {
case .success(let response):
let statusCode = response.statusCode
let data = response.data

let networkResult = self.judgeMainListFetchStatus(by: statusCode, data)
completion(networkResult)

case .failure(let err):
print(err)
}
Expand Down Expand Up @@ -183,7 +183,7 @@ public class CardAPI {
private func judgeMainListFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult<Any> {

let decoder = JSONDecoder()
guard let decodedData = try? decoder.decode(GenericResponse<CardListLookUp>.self, from: data)
guard let decodedData = try? decoder.decode(GenericResponse<[Card]>.self, from: data)
else {
return .pathErr
}
Expand All @@ -200,25 +200,25 @@ public class CardAPI {
}
}

private func judgeCardListFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult<Any> {
let decoder = JSONDecoder()
guard let decodedData = try? decoder.decode(GenericResponse<CardListRequest>.self, from: data)
else {
return .pathErr
}
switch statusCode {
case 200:
return .success(decodedData.data ?? "None-Data")
case 400..<500:
return .requestErr(decodedData.error?.message ?? "error message")
case 500:
return .serverErr
default:
return .networkFail
}
}
// private func judgeCardListFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult<Any> {
//
// let decoder = JSONDecoder()
// guard let decodedData = try? decoder.decode(GenericResponse<CardListRequest>.self, from: data)
// else {
// return .pathErr
// }
//
// switch statusCode {
// case 200:
// return .success(decodedData.data ?? "None-Data")
// case 400..<500:
// return .requestErr(decodedData.error?.message ?? "error message")
// case 500:
// return .serverErr
// default:
// return .networkFail
// }
// }

private func judgeCardCreationStatus(by statusCode: Int, _ data: Data) -> NetworkResult<Any> {

Expand Down
20 changes: 11 additions & 9 deletions NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ import Moya
enum CardService {
case cardDetailFetch(cardID: String)
case cardCreation(request: CardCreationRequest)
case cardListFetch(userID: String, isList: Bool, offset: Int?)
case cardListPageFetch(pageNumber: Int, pageSize: Int)
case cardListFetch
case cardListEdit(request: CardListEditRequest)
case cardDelete(cardID: String)
case imageUpload(image: UIImage)
Expand All @@ -30,8 +31,10 @@ extension CardService: TargetType {
return "/card/\(cardID)"
case .cardCreation:
return "/card"
case .cardListPageFetch:
return "/card/page"
case .cardListFetch:
return "/cards"
return "/card"
case .cardListEdit:
return "/cards"
case .cardDelete(let cardID):
Expand All @@ -45,7 +48,7 @@ extension CardService: TargetType {

var method: Moya.Method {
switch self {
case .cardDetailFetch, .cardListFetch, .tasteFetch:
case .cardDetailFetch, .cardListPageFetch, .cardListFetch, .tasteFetch:
return .get
case .cardCreation, .imageUpload:
return .post
Expand All @@ -62,7 +65,7 @@ extension CardService: TargetType {

var task: Task {
switch self {
case .cardDetailFetch, .cardDelete, .tasteFetch:
case .cardDetailFetch, .cardDelete, .tasteFetch, .cardListFetch:
return .requestPlain
case .cardCreation(let request):
var parameters: [String: Any] = ["brith": request.frontCard.birth,
Expand Down Expand Up @@ -101,10 +104,9 @@ extension CardService: TargetType {
}

return .requestParameters(parameters: parameters, encoding: JSONEncoding.default)
case .cardListFetch(let userID, let isList, let offset):
return .requestParameters(parameters: ["userId": userID,
"list": isList,
"offset": offset ?? ""],
case .cardListPageFetch(let pageNumber, let pageSize):
return .requestParameters(parameters: ["pageNo": pageNumber,
"pageSize": pageSize],
encoding: URLEncoding.queryString)
case .cardListEdit(let requestModel):
return .requestJSONEncodable(requestModel)
Expand All @@ -119,7 +121,7 @@ extension CardService: TargetType {

var headers: [String: String]? {
switch self {
case .cardDetailFetch, .cardListFetch, .cardDelete, .tasteFetch:
case .cardDetailFetch, .cardListPageFetch, .cardListFetch, .cardDelete, .tasteFetch:
return Const.Header.bearerHeader()
case .cardListEdit, .cardCreation:
return Const.Header.basicHeader()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class CardListViewController: UIViewController {
cardListTableView.delegate = self
cardListTableView.dataSource = self

cardListFetchWithAPI(userID: UserDefaults.standard.string(forKey: Const.UserDefaultsKey.userID) ?? "", isList: true)
cardListFetchWithAPI()
}

override func viewWillAppear(_ animated: Bool) {
Expand Down Expand Up @@ -165,8 +165,8 @@ extension CardListViewController: UITableViewDataSource {

// MARK: - Network
extension CardListViewController {
func cardListFetchWithAPI(userID: String, isList: Bool) {
CardAPI.shared.cardListFetch(userID: userID, isList: isList, offset: nil) { response in
func cardListFetchWithAPI() {
CardAPI.shared.cardListFetch() { response in
switch response {
case .success(let data):
if let card = data as? CardListRequest {
Expand Down Expand Up @@ -207,7 +207,7 @@ extension CardListViewController {
switch response {
case .success(let data):
print(data)
self.cardListFetchWithAPI(userID: UserDefaults.standard.string(forKey: Const.UserDefaultsKey.userID) ?? "", isList: true)
self.cardListFetchWithAPI()
self.cardListTableView.reloadData()
case .requestErr(let message):
print("deleteGroupWithAPI - requestErr", message)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ class FrontViewController: UIViewController {

// MARK: - Properteis

private var offset = 0
private var isInfiniteScroll = true
private var cardDataList: [Card]? = []
private var userID: String?
private var pageNumber: Int = 1
private let pageSize: Int = 8

var isAfterCreation = false

Expand Down Expand Up @@ -48,7 +48,6 @@ class FrontViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

setUserID()
setDelegate()
setNotification()
}
Expand All @@ -61,15 +60,15 @@ class FrontViewController: UIViewController {

self.setActivityIndicator()

self.offset = 0
self.pageNumber = 1
self.cardDataList?.removeAll()
}

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.cardListFetchWithAPI(userID: self.userID, isList: false, offset: self.offset) {
_ = self.cardSwiper.scrollToCard(at: 0, animated: false)
self.activityIndicator.stopAnimating()
self.loadingBgView.removeFromSuperview()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in
self?.cardListPageFetchWithAPI(pageNumber: self?.pageNumber ?? -1, pageSize: self?.pageSize ?? -1) {
_ = self?.cardSwiper.scrollToCard(at: 0, animated: false)
self?.activityIndicator.stopAnimating()
self?.loadingBgView.removeFromSuperview()
}
}
}
Expand Down Expand Up @@ -107,10 +106,6 @@ extension FrontViewController {
NotificationCenter.default.addObserver(self, selector: #selector(setCreationReloadMainCardSwiper), name: .creationReloadMainCardSwiper, object: nil)
}

private func setUserID() {
userID = UserDefaults.standard.string(forKey: Const.UserDefaultsKey.userID)
}

private func setActivityIndicator() {
view.addSubview(loadingBgView)
loadingBgView.addSubview(activityIndicator)
Expand Down Expand Up @@ -147,9 +142,9 @@ extension FrontViewController {
isAfterCreation = true

cardDataList?.removeAll()
offset = 0
pageNumber = 1

cardListFetchWithAPI(userID: userID, isList: false, offset: offset) {
cardListPageFetchWithAPI(pageNumber: pageNumber, pageSize: pageSize) {
_ = self.cardSwiper.scrollToCard(at: 1, animated: false)
self.isAfterCreation = false
}
Expand All @@ -166,9 +161,9 @@ extension FrontViewController: VerticalCardSwiperDelegate {
if verticalCardSwiperView.contentOffset.y > verticalCardSwiperView.contentSize.height - verticalCardSwiperView.bounds.height {
if isInfiniteScroll {
isInfiniteScroll = false
offset += 1
guard let userID = userID else { return }
cardListFetchWithAPI(userID: userID, isList: false, offset: offset) {
pageNumber += 1

cardListPageFetchWithAPI(pageNumber: pageNumber, pageSize: pageSize) {
self.isInfiniteScroll = true
}
}
Expand Down Expand Up @@ -204,24 +199,23 @@ extension FrontViewController: VerticalCardSwiperDatasource {

// MARK: - Network
extension FrontViewController {
func cardListFetchWithAPI(userID: String?, isList: Bool, offset: Int, completion: @escaping () -> Void = { }) {
guard let userID = userID else { return }
CardAPI.shared.cardListFetch(userID: userID, isList: isList, offset: offset) { response in
func cardListPageFetchWithAPI(pageNumber: Int, pageSize: Int, completion: @escaping () -> Void = { }) {
CardAPI.shared.cardListFetch(pageNumber: pageNumber, pageSize: pageSize) { response in
switch response {
case .success(let data):
if let cardListLookUp = data as? CardListLookUp {
self.cardDataList?.append(contentsOf: cardListLookUp.cards)
if let cardData = data as? [Card] {
self.cardDataList?.append(contentsOf: cardData)
self.cardSwiper.reloadData()
}
completion()
case .requestErr(let message):
print("cardListFetchWithAPI - requestErr: \(message)")
print("cardListPageFetchWithAPI - requestErr: \(message)")
case .pathErr:
print("cardListFetchWithAPI - pathErr")
print("cardListPageFetchWithAPI - pathErr")
case .serverErr:
print("cardListFetchWithAPI - serverErr")
print("cardListPageFetchWithAPI - serverErr")
case .networkFail:
print("cardListFetchWithAPI - networkFail")
print("cardListPageFetchWithAPI - networkFail")
}
}
}
Expand Down

0 comments on commit fbd1c17

Please sign in to comment.