공통
import Moya
import RxMoya
import RxSwift
import RxCocoa
let disposeBag = DisposeBag()
private let {ServiceName}Provider = MoyaProvider<{ServiceName}Service>()
.get
private func functionName() {
{ServiceName}Provider.rx.request(.{NetworkServiceFunction})
.asObservable()
.subscribe(onNext: { response in
if response.statusCode == 200 {
do {
let decoder = JSONDecoder()
let data = try decoder.decode(ResponseType<{NetworkModel}>.self,
from: response.data)
guard let result = data.data else {return}
// TODO
// ...
} catch {
print(error)
}
}
}, onError: { error in
print(error)
}, onCompleted: {
// to use like completion
}).disposed(by: disposeBag)
}
private func networkForCommunication() {
userProvider.rx.request(.home(unit: "-1"))
.asObservable()
.subscribe(onNext: { response in
if response.statusCode == 200 {
do {
let decoder = JSONDecoder()
let data = try decoder.decode(ResponseType<Communication>.self,
from: response.data)
guard let result = data.data else {return}
self.completeLength = result.completeLength
self.incompleteLength = result.incompleteLength
var listdata: [DetailData] = []
for index in 0..<result.incompleteList.count {
listdata.append(DetailData(id: result.incompleteList[index].id, issueTitle: result.incompleteList[index].issueTitle, issueContents: result.incompleteList[index].issueContents, progress: result.incompleteList[index].progress, category: result.incompleteList[index].category))
}
self.incomDetailCellData=listdata
var listdata2: [DetailData] = []
for index in 0..<result.completeList.count {
listdata2.append(DetailData(id: result.completeList[index].id, issueTitle: result.completeList[index].issueTitle, issueContents: result.completeList[index].issueContents, progress: result.completeList[index].progress, category: result.completeList[index].category))
}
self.comDetailCellData = listdata2
self.reloadInputViews()
self.dataSetup()
} catch {
print(error)
}
}
}, onError: { error in
print(error)
}, onCompleted: {
self.communicationTableView.reloadData()
}).disposed(by: disposeBag)
}
.post
@objc func nextButtonDidTapped() {
promiseProvider.rx.request(.homePromise(id: imageIndex ?? 0,
is_promise: requestData.isPromiseNeeded,
category: requestData.cartegory,
issue_title: requestData.title,
issue_contents: requestData.discription,
requested_term: requestData.editionalRequest))
.asObservable()
.subscribe { (next) in
let json = JSON(next.data)
if next.statusCode == 200 {
do {
let decoder = JSONDecoder()
let data = try decoder.decode(ResponseType<IssueId>.self, from: next.data)
let viewController = AppointmentViewController()
viewController.registerID = self.imageIndex
self.navigationController?.pushViewController(viewController, animated: true)
}
catch {
print(error)
}
}
} onError: { (error) in
print(error.localizedDescription)
}.disposed(by: disposeBag)