PengisianSurveyPresenter.swift 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. //
  2. // PengisianSurveyPresenter.swift
  3. // Sirani
  4. //
  5. // Created by Anhar Solehudin on 14/04/19.
  6. // Copyright © 2019 Anhar Solehudin. All rights reserved.
  7. //
  8. import Foundation
  9. import SwiftyJSON
  10. class PengisianSurveyPresenter {
  11. private let siraniApiServices: SiraniApiServices
  12. weak private var view: PengisianSurveyViewDelegate?
  13. init(siraniApiServices: SiraniApiServices) {
  14. self.siraniApiServices = siraniApiServices
  15. }
  16. func attachView(view: PengisianSurveyViewDelegate?) {
  17. self.view = view
  18. }
  19. func detachView() {
  20. self.view = nil
  21. }
  22. func loadPertanyaan() {
  23. self.view?.showLoading()
  24. siraniApiServices.postToGetPertanyaanSurvey(cursor: 0, prev: 0, search: "").responseJSON { response in
  25. if response.error == nil {
  26. guard let data = response.data else { return }
  27. if let json = try? JSON(data: data) {
  28. let pertanyaan = json["pertanyaan_pg"].stringValue
  29. self.view?.hideLoading()
  30. self.view?.setPertanyaan(pertanyaan: pertanyaan)
  31. }
  32. }
  33. }
  34. }
  35. func loadListJawaban() {
  36. self.view?.showLoading()
  37. var dataList = [SurveyList]()
  38. siraniApiServices.postToGetListJawabanSurvey(cursor: 0, prev: 0, search: "").responseJSON { response in
  39. if response.error == nil {
  40. guard let data = response.data else { return }
  41. if let json = try? JSON(data: data) {
  42. if let data = json["data"].array {
  43. if data.count > 0 {
  44. for item in data {
  45. let data = SurveyList(
  46. id_jawaban: item["id_jawaban"].intValue,
  47. survey_id: item["survey_id"].intValue,
  48. nama_survey: item["nama_survey"].stringValue,
  49. nama_jawaban: item["nama_jawaban"].stringValue
  50. )
  51. dataList.append(data)
  52. }
  53. self.view?.hideLoading()
  54. self.view?.setJawabanList(jawabanList: dataList)
  55. }
  56. }
  57. }
  58. }
  59. }
  60. }
  61. func saveAnswer(survey_id: Int, jawaban: Int) {
  62. self.view?.showLoading()
  63. // TODO : Get Id from User Sessions
  64. var custId = 0
  65. var userId = 0
  66. let savedCustId = UserState.instance.getCustId()
  67. if savedCustId > 0 {
  68. custId = savedCustId
  69. }
  70. let savedUserId = UserState.instance.getUserId()
  71. if savedUserId > 0 {
  72. userId = savedUserId
  73. }
  74. siraniApiServices.postJawabanSurvey(user_id: userId, cust_id: custId, survey_id: survey_id, jawaban: jawaban).responseJSON { response in
  75. if response.error == nil {
  76. guard let data = response.data else { return }
  77. if let json = try? JSON(data: data) {
  78. let msgbox = json["msgbox"].stringValue
  79. self.view?.hideLoading()
  80. self.view?.onSaveSuccess(msg: msgbox)
  81. }
  82. } else {
  83. self.view?.hideLoading()
  84. self.view?.onSaveFailed()
  85. }
  86. }
  87. }
  88. }