LokasiBalaiUjiPresenter.swift 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //
  2. // LokasiBalaiUjiPresenter.swift
  3. // Sirani
  4. //
  5. // Created by Anhar Solehudin on 05/04/19.
  6. // Copyright © 2019 Anhar Solehudin. All rights reserved.
  7. //
  8. import Foundation
  9. import SwiftyJSON
  10. class LokasiBalaiUjiPresenter {
  11. private let siraniApiServices: SiraniApiServices
  12. weak private var view: LokasiBalaiUjiViewDelegate?
  13. init(siraniApiServices: SiraniApiServices) {
  14. self.siraniApiServices = siraniApiServices
  15. }
  16. func attachView(view: LokasiBalaiUjiViewDelegate?) {
  17. self.view = view
  18. }
  19. func detachView() {
  20. self.view = nil
  21. }
  22. func loadData() {
  23. // TODO : Get Id from User Sessions
  24. let cursor = 0
  25. let prev = 0
  26. let jenis = "ID"
  27. let columns = ""
  28. let search = ""
  29. let custId = 0
  30. let roleId = ""
  31. let userId = 0
  32. var dataList = [BalaiUji]()
  33. siraniApiServices.postToGetBalaiUji(cursor: cursor, prev: prev, jenis: jenis, columns: columns, search: search, cust_id: custId, role_id: roleId, user_id: userId).responseJSON { response in
  34. if response.error == nil {
  35. guard let data = response.data else { return }
  36. if let json = try? JSON(data: data) {
  37. if let data = json["data"].array {
  38. if data.count > 0 {
  39. for item in data {
  40. let balaiUji = BalaiUji(
  41. balai_id: item["balai_id"].intValue,
  42. ctia: item["ctia"].intValue,
  43. gcf: item["gcf"].intValue,
  44. kontak: item["kontak"].stringValue,
  45. latitude: item["latitude"].stringValue,
  46. longitude: item["longitude"].stringValue,
  47. nama: item["nama"].stringValue,
  48. negara: item["negara"].stringValue,
  49. no_lab: item["no_lab"].stringValue,
  50. ruang_lingkup: item["ruang_lingkup"].stringValue,
  51. tanggal_terbit: item["tanggal_terbit"].stringValue,
  52. tempat: item["tempat"].stringValue,
  53. website: item["website"].stringValue
  54. )
  55. dataList.append(balaiUji)
  56. }
  57. self.setDataList(dataList: dataList)
  58. }
  59. }
  60. }
  61. }
  62. }
  63. }
  64. // other functions
  65. private func setDataList(dataList: [BalaiUji]) {
  66. self.view?.setDataList(dataList: dataList)
  67. }
  68. }