diff --git a/NADA-iOS-forRelease/Resouces/Storyboards/CardDetail/CardDetail.storyboard b/NADA-iOS-forRelease/Resouces/Storyboards/CardDetail/CardDetail.storyboard
index 159cfeda..e35791ed 100644
--- a/NADA-iOS-forRelease/Resouces/Storyboards/CardDetail/CardDetail.storyboard
+++ b/NADA-iOS-forRelease/Resouces/Storyboards/CardDetail/CardDetail.storyboard
@@ -118,6 +118,7 @@
+
diff --git a/NADA-iOS-forRelease/Sources/Cells/CardCell/MainCardCell.swift b/NADA-iOS-forRelease/Sources/Cells/CardCell/MainCardCell.swift
index 99073261..c86b11a0 100644
--- a/NADA-iOS-forRelease/Sources/Cells/CardCell/MainCardCell.swift
+++ b/NADA-iOS-forRelease/Sources/Cells/CardCell/MainCardCell.swift
@@ -89,9 +89,9 @@ extension MainCardCell {
cardDataModel.isSoju,
cardDataModel.isBoomuk,
cardDataModel.isSauced,
- cardDataModel.oneTMI ?? "",
- cardDataModel.twoTMI ?? "",
- cardDataModel.thirdTMI ?? "",
+ cardDataModel.oneTmi ?? "",
+ cardDataModel.twoTmi ?? "",
+ cardDataModel.threeTmi ?? "",
isShareable: isShareable ?? false)
contentView.addSubview(backCard)
diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift
index 4d939376..5cddc132 100644
--- a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift
+++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift
@@ -19,6 +19,9 @@ class CardInGroupCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var instagramIDLabel: UILabel!
@IBOutlet weak var lineURLLabel: UILabel!
+ var groupId: Int?
+ var cardId: String?
+
override func awakeFromNib() {
super.awakeFromNib()
setUI()
diff --git a/NADA-iOS-forRelease/Sources/NetworkModel/Card/Card.swift b/NADA-iOS-forRelease/Sources/NetworkModel/Card/Card.swift
index 8b0b6713..65ef1c70 100644
--- a/NADA-iOS-forRelease/Sources/NetworkModel/Card/Card.swift
+++ b/NADA-iOS-forRelease/Sources/NetworkModel/Card/Card.swift
@@ -7,18 +7,26 @@
import Foundation
+// MARK: - DataClass
+struct CardClass: Codable {
+ let card: Card
+}
+
// MARK: - Card
struct Card: Codable {
- let cardID, background, title, name, birthDate, mbti: String
- let instagram, link, cardDescription: String?
+ let cardID, background, title, name: String
+ let birthDate, mbti, instagram, link: String
+ let cardDescription: String
let isMincho, isSoju, isBoomuk, isSauced: Bool
- let oneTMI, twoTMI, thirdTMI: String?
+ let oneTmi, twoTmi, threeTmi: String
enum CodingKeys: String, CodingKey {
case cardID = "cardId"
- case background, title, name, birthDate, mbti, instagram, link, isMincho, isSoju, isBoomuk, isSauced, oneTMI, twoTMI, thirdTMI
+ case background, title, name, birthDate, mbti, instagram, link
case cardDescription = "description"
+ case isMincho, isSoju, isBoomuk, isSauced, oneTmi, twoTmi, threeTmi
}
+}
// FIXME: - 메인에서 카드 정보 정적으로 생성하기 위한 주석
// init(from decoder: Decoder) throws {
// let values = try decoder.container(keyedBy: CodingKeys.self)
@@ -39,4 +47,4 @@ struct Card: Codable {
// twoTMI = (try? values.decode(String.self, forKey: .twoTMI))
// thirdTMI = (try? values.decode(String.self, forKey: .thirdTMI))
// }
-}
+//}
diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift
index 0f3c75bf..b0af41a1 100644
--- a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift
+++ b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardAPI.swift
@@ -98,7 +98,7 @@ public class CardAPI {
private func judgeCardDetailFetchStatus(by statusCode: Int, _ data: Data) -> NetworkResult {
let decoder = JSONDecoder()
- guard let decodedData = try? decoder.decode(GenericResponse.self, from: data)
+ guard let decodedData = try? decoder.decode(GenericResponse.self, from: data)
else {
return .pathErr
}
diff --git a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift
index 1b55bc4c..bbbdb8d0 100644
--- a/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift
+++ b/NADA-iOS-forRelease/Sources/NetworkService/Card/CardService.swift
@@ -110,7 +110,7 @@ extension CardService: TargetType {
var headers: [String: String]? {
switch self {
case .cardDetailFetch, .cardListFetch, .cardDelete:
- return .none
+ return Const.Header.bearerHeader
case .cardCreation:
return Const.Header.basicHeader
case .cardListEdit:
diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/CardDetail/CardDetailViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/CardDetail/CardDetailViewController.swift
index 7d0c30fa..55de5115 100644
--- a/NADA-iOS-forRelease/Sources/ViewControllers/CardDetail/CardDetailViewController.swift
+++ b/NADA-iOS-forRelease/Sources/ViewControllers/CardDetail/CardDetailViewController.swift
@@ -36,6 +36,7 @@ class CardDetailViewController: UIViewController {
@IBOutlet weak var optionButton: UIButton!
@IBOutlet weak var cardView: UIView!
@IBOutlet weak var backButton: UIButton!
+ @IBOutlet weak var idLabel: UILabel!
public var cardDataModel: Card?
private var isShareable: Bool = false
@@ -61,6 +62,7 @@ extension CardDetailViewController {
case .add:
backButton.setImage(UIImage(named: "iconClear"), for: .normal)
}
+ idLabel.text = cardDataModel?.cardID
}
private func setMenu() {
let changeGroup = UIAction(title: "그룹 변경",
@@ -126,9 +128,9 @@ extension CardDetailViewController {
cardDataModel?.isSoju ?? true,
cardDataModel?.isBoomuk ?? true,
cardDataModel?.isSauced ?? true,
- cardDataModel?.oneTMI ?? "",
- cardDataModel?.twoTMI ?? "",
- cardDataModel?.thirdTMI ?? "",
+ cardDataModel?.oneTmi ?? "",
+ cardDataModel?.twoTmi ?? "",
+ cardDataModel?.threeTmi ?? "",
isShareable: isShareable)
cardView.addSubview(backCard)
diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift
index f09cabca..afd348d4 100644
--- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift
+++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift
@@ -7,6 +7,7 @@
import Photos
import UIKit
+import Kingfisher
class GroupViewController: UIViewController {
@@ -59,24 +60,26 @@ class GroupViewController: UIViewController {
@IBOutlet weak var cardsCollectionView: UICollectionView!
// 그룹 이름들을 담을 변수 생성
- var groups = ["미분류", "SOPT", "그룹명엄청길어요이거", "인하대학교"]
+ var serverGroups: Groups?
+ var serverCards: CardsInGroupResponse?
+ var serverCardsWithBack: Card?
override func viewDidLoad() {
super.viewDidLoad()
registerCell()
setUI()
// 그룹 리스트 조회 서버 테스트
-// groupListFetchWithAPI(userID: "nada")
+ groupListFetchWithAPI(userID: "nada")
// 그룹 삭제 서버 테스트
// groupDeleteWithAPI(groupID: 1)
// 그룹 추가 서버 테스트
-// groupAddWithAPI(groupRequest: GroupAddRequest(userId: "nada", groupName: "나다나다"))
+// groupAddWithAPI(groupRequest: GroupAddRequest(userId: "nada", groupName: "대학교"))
// 그룹 수정 서버 테스트
// groupEditWithAPI(groupRequest: GroupEditRequest(groupId: 5, groupName: "수정나다"))
// 그룹 속 명함 추가 테스트
-// cardAddInGroupWithAPI(cardRequest: CardAddInGroupRequest(cardId: "cardA", userId: "nada", groupId: 1))
+// cardAddInGroupWithAPI(cardRequest: CardAddInGroupRequest(cardId: "cardC", userId: "nada", groupId: 18))
// 그룹 속 명함 조회 테스트
-// cardListInGroupWithAPI(cardListInGroupRequest: CardListInGroupRequest(userId: "nada2", groupId: 3, offset: 0))
+// cardListInGroupWithAPI(cardListInGroupRequest: CardListInGroupRequest(userId: "nada", groupId: 5, offset: 0))
// 명함 검색 테스트
// cardDetailFetchWithAPI(cardID: "cardA")
@@ -108,8 +111,9 @@ extension GroupViewController {
switch response {
case .success(let data):
if let group = data as? Groups {
-// print(group)
- // 그룹 리스트 조회 서버통신 성공했을때
+ self.serverGroups = group
+ self.groupCollectionView.reloadData()
+ self.cardListInGroupWithAPI(cardListInGroupRequest: CardListInGroupRequest(userId: "nada", groupId: group.groups[0].groupID, offset: 0))
}
case .requestErr(let message):
print("groupListFetchWithAPI - requestErr: \(message)")
@@ -126,11 +130,8 @@ extension GroupViewController {
func groupDeleteWithAPI(groupID: Int) {
GroupAPI.shared.groupDelete(groupID: groupID) { response in
switch response {
- case .success(let data):
- if let group = data as? Groups {
-// print(group)
- // 그룹 삭제 서버 통신 성공했을 떄
- }
+ case .success:
+ print("groupDeleteWithAPI - success")
case .requestErr(let message):
print("groupDeleteWithAPI - requestErr: \(message)")
case .pathErr:
@@ -146,11 +147,8 @@ extension GroupViewController {
func groupAddWithAPI(groupRequest: GroupAddRequest) {
GroupAPI.shared.groupAdd(groupRequest: groupRequest) { response in
switch response {
- case .success(let data):
- if let group = data as? Groups {
-// print(group)
- // 그룹 추가 서버 통신 성공했을 떄
- }
+ case .success:
+ print("groupAddWithAPI - success")
case .requestErr(let message):
print("groupAddWithAPI - requestErr: \(message)")
case .pathErr:
@@ -166,11 +164,8 @@ extension GroupViewController {
func groupEditWithAPI(groupRequest: GroupEditRequest) {
GroupAPI.shared.groupEdit(groupRequest: groupRequest) { response in
switch response {
- case .success(let data):
- if let group = data as? Groups {
-// print(group)
- // 그룹 추가 서버 통신 성공했을 떄
- }
+ case .success:
+ print("groupEditWithAPI - success")
case .requestErr(let message):
print("groupEditWithAPI - requestErr: \(message)")
case .pathErr:
@@ -188,9 +183,8 @@ extension GroupViewController {
switch response {
case .success(let data):
if let cards = data as? CardsInGroupResponse {
-// print(group)
- // 그룹 추가 서버 통신 성공했을 떄
- print(cards)
+ self.serverCards = cards
+ self.cardsCollectionView.reloadData()
}
case .requestErr(let message):
print("cardListInGroupWithAPI - requestErr: \(message)")
@@ -208,9 +202,26 @@ extension GroupViewController {
CardAPI.shared.cardDetailFetch(cardID: cardID) { response in
switch response {
case .success(let data):
- if let card = data as? Card {
-// print(card)
- // 통신 성공
+ if let card = data as? CardClass {
+ guard let nextVC = UIStoryboard.init(name: Const.Storyboard.Name.cardDetail, bundle: nil).instantiateViewController(withIdentifier: Const.ViewController.Identifier.cardDetailViewController) as? CardDetailViewController else { return }
+
+ nextVC.cardDataModel = Card(cardID: card.card.cardID,
+ background: card.card.background,
+ title: card.card.title,
+ name: card.card.name,
+ birthDate: card.card.birthDate,
+ mbti: card.card.mbti,
+ instagram: card.card.instagram,
+ link: card.card.link,
+ cardDescription: card.card.cardDescription,
+ isMincho: card.card.isMincho,
+ isSoju: card.card.isSoju,
+ isBoomuk: card.card.isBoomuk,
+ isSauced: card.card.isSauced,
+ oneTmi: card.card.oneTmi,
+ twoTmi: card.card.twoTmi,
+ threeTmi: card.card.threeTmi)
+ self.navigationController?.pushViewController(nextVC, animated: true)
}
case .requestErr(let message):
print("cardDetailFetchWithAPI - requestErr: \(message)")
@@ -223,6 +234,23 @@ extension GroupViewController {
}
}
}
+
+ func cardAddInGroupWithAPI(cardRequest: CardAddInGroupRequest) {
+ GroupAPI.shared.cardAddInGroup(cardRequest: cardRequest) { response in
+ switch response {
+ case .success:
+ print("postCardAddInGroupWithAPI - success")
+ case .requestErr(let message):
+ print("postCardAddInGroupWithAPI - requestErr", message)
+ case .pathErr:
+ print("postCardAddInGroupWithAPI - pathErr")
+ case .serverErr:
+ print("postCardAddInGroupWithAPI - serverErr")
+ case .networkFail:
+ print("postCardAddInGroupWithAPI - networkFail")
+ }
+ }
+ }
}
// MARK: - UICollectionViewDelegate
@@ -235,9 +263,9 @@ extension GroupViewController: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
switch collectionView {
case groupCollectionView:
- return groups.count
+ return serverGroups?.groups.count ?? 0
case cardsCollectionView:
- return 5
+ return serverCards?.cards.count ?? 0
default:
return 0
}
@@ -250,7 +278,8 @@ extension GroupViewController: UICollectionViewDataSource {
return UICollectionViewCell()
}
- groupCell.groupName.text = groups[indexPath.row]
+ groupCell.groupName.text = serverGroups?.groups[indexPath.row].groupName
+
if indexPath.row == 0 {
collectionView.selectItem(at: indexPath, animated: true, scrollPosition: .init())
}
@@ -260,6 +289,16 @@ extension GroupViewController: UICollectionViewDataSource {
return UICollectionViewCell()
}
+ cardCell.backgroundImageView.updateServerImage(serverCards?.cards[indexPath.row].background ?? "")
+ cardCell.cardId = serverCards?.cards[indexPath.row].cardID
+ cardCell.titleLabel.text = serverCards?.cards[indexPath.row].title
+ cardCell.descriptionLabel.text = serverCards?.cards[indexPath.row].cardDescription
+ cardCell.userNameLabel.text = serverCards?.cards[indexPath.row].name
+ cardCell.birthLabel.text = serverCards?.cards[indexPath.row].birthDate
+ cardCell.mbtiLabel.text = serverCards?.cards[indexPath.row].mbti
+ cardCell.instagramIDLabel.text = serverCards?.cards[indexPath.row].instagram
+ cardCell.lineURLLabel.text = serverCards?.cards[indexPath.row].link
+
return cardCell
default:
return UICollectionViewCell()
@@ -269,11 +308,9 @@ extension GroupViewController: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
switch collectionView {
case groupCollectionView:
- print(indexPath.row)
+ cardListInGroupWithAPI(cardListInGroupRequest: CardListInGroupRequest(userId: "nada", groupId: serverGroups?.groups[indexPath.row].groupID ?? 0, offset: 0))
case cardsCollectionView:
- guard let nextVC = UIStoryboard.init(name: Const.Storyboard.Name.cardDetail, bundle: nil).instantiateViewController(withIdentifier: Const.ViewController.Identifier.cardDetailViewController) as? CardDetailViewController else { return }
-
- navigationController?.pushViewController(nextVC, animated: true)
+ cardDetailFetchWithAPI(cardID: serverCards?.cards[indexPath.row].cardID ?? "")
default:
print(indexPath.row)
}
@@ -289,8 +326,8 @@ extension GroupViewController: UICollectionViewDelegateFlowLayout {
switch collectionView {
case groupCollectionView:
- if groups[indexPath.row].count > 4 {
- width = CGFloat(groups[indexPath.row].count) * 16
+ if serverGroups?.groups[indexPath.row].groupName.count ?? 0 > 4 {
+ width = CGFloat(serverGroups?.groups[indexPath.row].groupName.count ?? 0) * 16
} else {
width = 62
}
@@ -316,8 +353,6 @@ extension GroupViewController: UICollectionViewDelegateFlowLayout {
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
switch collectionView {
- case groupCollectionView:
- return 5
case cardsCollectionView:
return collectionView.frame.size.width * 15/327
default:
@@ -326,6 +361,8 @@ extension GroupViewController: UICollectionViewDelegateFlowLayout {
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
switch collectionView {
+ case groupCollectionView:
+ return 5
case cardsCollectionView:
return collectionView.frame.size.width * 15/327
default:
diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift
index 34d557a0..1346b8d7 100644
--- a/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift
+++ b/NADA-iOS-forRelease/Sources/ViewControllers/Main/FrontViewController.swift
@@ -26,9 +26,9 @@ class FrontViewController: UIViewController {
isSoju: true,
isBoomuk: true,
isSauced: true,
- oneTMI: "첫번째",
- twoTMI: "두번째",
- thirdTMI: "세번째세번째세번째"),
+ oneTmi: "첫번째",
+ twoTmi: "두번째",
+ threeTmi: "세번째세번째세번째"),
Card(cardID: "card",
background: "card",
title: "SOPT 명함",
@@ -42,9 +42,9 @@ class FrontViewController: UIViewController {
isSoju: true,
isBoomuk: true,
isSauced: true,
- oneTMI: "첫번째",
- twoTMI: "두번째",
- thirdTMI: "세번째세번째세번째")]
+ oneTmi: "첫번째",
+ twoTmi: "두번째",
+ threeTmi: "세번째세번째세번째")]
// var cardDataList: [Card]? = []
diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/TeamNADA/TeamNADAViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/TeamNADA/TeamNADAViewController.swift
index 8709f776..79bc6fa2 100644
--- a/NADA-iOS-forRelease/Sources/ViewControllers/TeamNADA/TeamNADAViewController.swift
+++ b/NADA-iOS-forRelease/Sources/ViewControllers/TeamNADA/TeamNADAViewController.swift
@@ -25,9 +25,9 @@ class TeamNADAViewController: UIViewController {
isSoju: false,
isBoomuk: false,
isSauced: true,
- oneTMI: "먹는거 잠자는거 좋아해요",
- twoTMI: "일벌리기도 좋아하는데 체력이..",
- thirdTMI: "내가 바로 나다 기획자😎"),
+ oneTmi: "먹는거 잠자는거 좋아해요",
+ twoTmi: "일벌리기도 좋아하는데 체력이..",
+ threeTmi: "내가 바로 나다 기획자😎"),
Card(cardID: "card",
background: "imgChae",
title: "NADA",
@@ -41,9 +41,9 @@ class TeamNADAViewController: UIViewController {
isSoju: true,
isBoomuk: false,
isSauced: false,
- oneTMI: "카톡 임티 62개 + 이모티콘 플러스 구독",
- twoTMI: "빵, 디저트 좋아해요 🥞🍞🍰🍦🍩🍪",
- thirdTMI: "ENFP와 ENFJ 그 사이!"),
+ oneTmi: "카톡 임티 62개 + 이모티콘 플러스 구독",
+ twoTmi: "빵, 디저트 좋아해요 🥞🍞🍰🍦🍩🍪",
+ threeTmi: "ENFP와 ENFJ 그 사이!"),
Card(cardID: "card",
background: "imgHyun",
title: "NADA",
@@ -57,9 +57,9 @@ class TeamNADAViewController: UIViewController {
isSoju: false,
isBoomuk: true,
isSauced: false,
- oneTMI: "악으로 깡으로 악깡규",
- twoTMI: "후드티 주세요 후드티",
- thirdTMI: "스트로베리 문 한스쿱"),
+ oneTmi: "악으로 깡으로 악깡규",
+ twoTmi: "후드티 주세요 후드티",
+ threeTmi: "스트로베리 문 한스쿱"),
Card(cardID: "card",
background: "imgYi",
title: "NADA",
@@ -73,9 +73,9 @@ class TeamNADAViewController: UIViewController {
isSoju: true,
isBoomuk: false,
isSauced: false,
- oneTMI: "노는게제일좋아 친구들 모..이면 낯가려요",
- twoTMI: "축구야구가좋아요 스포츠좋아",
- thirdTMI: "난 슬플때 컵을 쌓아..."),
+ oneTmi: "노는게제일좋아 친구들 모..이면 낯가려요",
+ twoTmi: "축구야구가좋아요 스포츠좋아",
+ threeTmi: "난 슬플때 컵을 쌓아..."),
Card(cardID: "card",
background: "imgMin",
title: "NADA",
@@ -89,9 +89,9 @@ class TeamNADAViewController: UIViewController {
isSoju: false,
isBoomuk: false,
isSauced: false,
- oneTMI: "나다 만들고 국방의 의무",
- twoTMI: "믿기지 않겠지만, 전 야구선수 출신",
- thirdTMI: "천안-서울 쉽지않네;;"),
+ oneTmi: "나다 만들고 국방의 의무",
+ twoTmi: "믿기지 않겠지만, 전 야구선수 출신",
+ threeTmi: "천안-서울 쉽지않네;;"),
Card(cardID: "card",
background: "imgYe",
title: "NADA",
@@ -105,9 +105,9 @@ class TeamNADAViewController: UIViewController {
isSoju: true,
isBoomuk: false,
isSauced: true,
- oneTMI: "예옹. 에옹. 야옹. 에원. 에엉. 맘가는 대로..",
- twoTMI: "제법 귀엽다.",
- thirdTMI: "")]
+ oneTmi: "예옹. 에옹. 야옹. 에원. 에엉. 맘가는 대로..",
+ twoTmi: "제법 귀엽다.",
+ threeTmi: "")]
// MARK: - @IBOutlet Properties
@IBOutlet weak var cardSwiper: VerticalCardSwiper!