공통

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)