-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEAT] #56 - 명함 그룹 뷰 서버통신 #60
Changes from 9 commits
fc91371
f3c0dcb
103c7f5
11ab309
e7a8ebe
b0a6aac
1f62610
1fa120b
0d8a4c2
c8844b0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
// | ||
// CardAddInGroupRequest.swift | ||
// NADA-iOS-forRelease | ||
// | ||
// Created by Yi Joon Choi on 2021/11/12. | ||
// | ||
|
||
import Foundation | ||
|
||
struct CardAddInGroupRequest: Codable { | ||
var cardId: String? | ||
var userId: String? | ||
var groupId: Int? | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
// | ||
// CardListRequest.swift | ||
// NADA-iOS-forRelease | ||
// | ||
// Created by Yi Joon Choi on 2021/11/12. | ||
// | ||
|
||
import Foundation | ||
|
||
struct CardListRequest: Codable { | ||
var userId: String | ||
var groupId: Int | ||
var offset: Int | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// | ||
// GroupAddRequest.swift | ||
// NADA-iOS-forRelease | ||
// | ||
// Created by Yi Joon Choi on 2021/11/06. | ||
// | ||
|
||
import Foundation | ||
|
||
struct GroupAddRequest: Codable { | ||
var userId: String? | ||
var groupName: String? | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// | ||
// GroupEditRequest.swift | ||
// NADA-iOS-forRelease | ||
// | ||
// Created by Yi Joon Choi on 2021/11/06. | ||
// | ||
|
||
import Foundation | ||
|
||
struct GroupEditRequest: Codable { | ||
var groupId: Int? | ||
var groupName: String? | ||
} | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// | ||
// GroupListResponse.swift | ||
// NADA-iOS-forRelease | ||
// | ||
// Created by Yi Joon Choi on 2021/11/06. | ||
// | ||
|
||
import Foundation | ||
|
||
struct Groups: Codable { | ||
var groups: [Group]? | ||
} | ||
|
||
struct Group: Codable { | ||
var groupId: Int? | ||
var groupName: String? | ||
} | ||
Comment on lines
+14
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이거보니까 저도 response 데이터 모델에는 옵셔널 설정을 해줘야겠군요..! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 넴 맞습니다 !!!! |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,7 @@ import Foundation | |
import Moya | ||
|
||
public class GroupAPI { | ||
|
||
static let shared = GroupAPI() | ||
var groupProvider = MoyaProvider<GroupService>(plugins: [MoyaLoggerPlugin()]) | ||
|
||
|
@@ -20,10 +21,10 @@ public class GroupAPI { | |
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgePutChangeGroupStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
|
@@ -36,16 +37,132 @@ public class GroupAPI { | |
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgePutChangeGroupStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
} | ||
} | ||
|
||
func getGroupListFetch(userID: String, completion: @escaping (NetworkResult<Any>) -> Void) { | ||
groupProvider.request(.groupListFetch(userID: userID)) { (result) in | ||
switch result { | ||
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgeStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
} | ||
} | ||
|
||
func deleteGroup(groupID: Int, completion: @escaping (NetworkResult<Any>) -> Void) { | ||
groupProvider.request(.groupDelete(groupID: groupID)) { (result) in | ||
switch result { | ||
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgeStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
} | ||
} | ||
|
||
func postGroupAdd(groupRequest: GroupAddRequest, completion: @escaping (NetworkResult<Any>) -> Void) { | ||
groupProvider.request(.groupAdd(groupRequest: groupRequest)) { (result) in | ||
switch result { | ||
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgeStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
} | ||
} | ||
|
||
func putGroupEdit(groupRequest: GroupEditRequest, completion: @escaping (NetworkResult<Any>) -> Void) { | ||
groupProvider.request(.groupEdit(groupRequest: groupRequest)) { (result) in | ||
switch result { | ||
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgeStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
} | ||
} | ||
|
||
func postCardAddInGroup(cardRequest: CardAddInGroupRequest, completion: @escaping (NetworkResult<Any>) -> Void) { | ||
groupProvider.request(.cardAddInGroup(cardRequest: cardRequest)) { (result) in | ||
switch result { | ||
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgeStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
} | ||
} | ||
|
||
func getCardListFetch(cardListRequest: CardListRequest, completion: @escaping (NetworkResult<Any>) -> Void) { | ||
groupProvider.request(.cardListFetch(cardListRequest: cardListRequest)) { (result) in | ||
switch result { | ||
case .success(let response): | ||
let statusCode = response.statusCode | ||
let data = response.data | ||
|
||
let networkResult = self.judgeStatus(by: statusCode, data) | ||
completion(networkResult) | ||
|
||
case .failure(let err): | ||
print(err) | ||
} | ||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 어라라 서버 통신 되는거 확인했었는데 ... 제가 한번 다시 확인해보겠슴다! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이상허다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 굳굳 멋집니다!! |
||
|
||
private func judgeStatus(by statusCode: Int, _ data: Data) -> NetworkResult<Any> { | ||
|
||
let decoder = JSONDecoder() | ||
guard let decodedData = try? decoder.decode(GenericResponse<Groups>.self, from: data) | ||
else { | ||
return .pathErr | ||
} | ||
|
||
switch statusCode { | ||
case 200: | ||
return .success(decodedData.data) | ||
case 400..<500: | ||
return .requestErr(decodedData.msg) | ||
case 500: | ||
return .serverErr | ||
default: | ||
return .networkFail | ||
} | ||
} | ||
|
||
private func judgePutChangeGroupStatus(by statusCode: Int, _ data: Data) -> NetworkResult<Any> { | ||
|
||
let decoder = JSONDecoder() | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
request 용을 사용하는 부분이라서 혹시 굳이 옵셔널일 이유가 있을까요..?! 흠흠 이걸보니 어디서부터 어디까지를 request 할 때 모델을 만들건지도 얘기해봐야겠네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗 이게 저는 그 퀵타입 안쓰고 항상 데이터 타입 보고 직접 모델 만드는데 ? 붙이는게 익숙해져서 요것도 그냥 만들때 붙인거 같네요... 사실 리퀘스트 할때는 옵셔널이 딱히 필요없긴해요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 그러면 요거는 지워주세욥