SiraniApiServices.swift 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. //
  2. // SiraniApiServices.swift
  3. // Sirani
  4. //
  5. // Created by Anhar Solehudin on 27/03/19.
  6. // Copyright © 2019 Anhar Solehudin. All rights reserved.
  7. //
  8. import Foundation
  9. import Alamofire
  10. class SiraniApiServices {
  11. // DOWNLOAD
  12. func downloadFile(urlWeb: String, filename: String) -> DownloadRequest {
  13. let destination: DownloadRequest.Destination = { _, _ in
  14. let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
  15. let fileURL = documentsURL.appendingPathComponent(filename)
  16. return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
  17. }
  18. return AF.download(urlWeb, to: destination).validate()
  19. }
  20. // AUTH
  21. func postAuthLogin(username: String, password: String) -> DataRequest {
  22. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  23. let body: Parameters = ["username" : username, "password" : password]
  24. return AF.request(METHOD_LOGIN_NEW, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  25. }
  26. // Images Slider -> Home
  27. func postSlideShowImages(cursor: String, prev: String, search: String) -> DataRequest {
  28. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  29. let body: Parameters = ["cursor" : cursor, "prev" : prev, "search" : search]
  30. return AF.request(METHOD_GET_SLIDE_IMAGE_NEW, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  31. }
  32. // News -> Home, NewsVC
  33. func postToGetNews(cursor: Int, prev: Int, jenis: String, columns: String, keyword: String) -> DataRequest {
  34. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  35. let body: Parameters = [
  36. "limit" : String(cursor),
  37. "page" : String(prev),
  38. "jenis" : jenis,
  39. "columns" : columns,
  40. "keyword" : keyword
  41. ]
  42. return AF.request(METHOD_GET_NEWS_NEW, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  43. }
  44. // Notification Total -> Home
  45. func postToGetNotificationsTotal(user_id: Int, cust_id: Int, role_id: String) -> DataRequest {
  46. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  47. let body: Parameters = [
  48. "user_id" : String(user_id),
  49. "cust_id" : String(cust_id),
  50. "role_id" : role_id
  51. ]
  52. return AF.request(METHOD_GET_TOTAL_NOTIFIKASI, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  53. }
  54. // Total Unread Notification -> Home
  55. func postToGetTotalUnreadNotif(user_id: Int, cust_id: Int, role_id: String) -> DataRequest {
  56. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  57. let body: Parameters = [
  58. "user_id" : String(user_id),
  59. "cust_id" : String(cust_id),
  60. "role_id" : role_id
  61. ]
  62. return AF.request(METHOD_GET_TOTAL_UNREAD_NOTIF, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  63. }
  64. // Notification List
  65. func postToGetPushNotificationList(cursor: Int, prev: Int, user_id: Int, cust_id: Int, role_id: String) -> DataRequest {
  66. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  67. let body: Parameters = [
  68. "cursor" : String(cursor),
  69. "prev" : String(prev),
  70. "user_id" : String(user_id),
  71. "cust_id" : String(cust_id),
  72. "role_id" : role_id
  73. ]
  74. return AF.request(METHOD_GET_PUSH_NOTIF_LIST, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  75. }
  76. // Notification Detail
  77. func postToGetPushNotificationDetail(notifId: Int) -> DataRequest {
  78. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  79. let body: Parameters = [
  80. "id" : String(notifId)
  81. ]
  82. return AF.request(METHOD_GET_PUSH_NOTIF_DETAIL, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  83. }
  84. // Notification Read
  85. func postToGetPushNotificationRead(notifId: Int) -> DataRequest {
  86. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  87. let body: Parameters = [
  88. "log_activity_id" : String(notifId)
  89. ]
  90. return AF.request(METHOD_GET_PUSH_NOTIF_READ, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  91. }
  92. // Notification : Save FCM Token
  93. func postFcmToken(user_id: Int, role_id: String, fcmToken: String) -> DataRequest {
  94. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  95. let body: Parameters = [
  96. "role_id" : role_id,
  97. "user_id" : String(user_id),
  98. "token" : fcmToken
  99. ]
  100. return AF.request(METHOD_POST_FCM_TOKEN, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  101. }
  102. // News Detail -> NewsDetailVC
  103. func postToGetNewsDetail(newsId: Int) -> DataRequest {
  104. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  105. let body: Parameters = [
  106. "id" : String(newsId)
  107. ]
  108. return AF.request(METHOD_GET_NEWS_DETAIL_NEW, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  109. }
  110. // QR Code Result
  111. func postToGetResultQrCode(code: String) -> DataRequest {
  112. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  113. let body: Parameters = [
  114. "lic_id" : code
  115. ]
  116. return AF.request(METHOD_GET_RESULT_QR_CODE_NEW, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  117. }
  118. // List Sertifikat -> DaftarSertifikatVC
  119. func postToGetListSertifikat(jenis: String, columns: String, cursor: Int, prev: Int, search: String) -> DataRequest {
  120. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  121. let body: Parameters = [
  122. "jenis" : jenis,
  123. "columns" : columns,
  124. "cursor" : String(cursor),
  125. "prev" : String(prev),
  126. "search" : search
  127. ]
  128. return AF.request(METHOD_GET_LIST_SERTIFIKAT, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  129. }
  130. // Tarif Sertifikat -> TarifSertifikatVC
  131. func postToGetTarifSertifikat(jenis: String, columns: String, cursor: Int, prev: Int, search: String) -> DataRequest {
  132. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  133. let body: Parameters = [
  134. "jenis" : jenis,
  135. "columns" : columns,
  136. "cursor" : String(cursor),
  137. "prev" : String(prev),
  138. "search" : search
  139. ]
  140. print(METHOD_GET_TARIF_SERTIFIKAT_NEW)
  141. print(body)
  142. return AF.request(METHOD_GET_TARIF_SERTIFIKAT_NEW, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  143. }
  144. // Balai Uji -> BalaiUjiVC
  145. func postToGetBalaiUji(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, role_id: String, user_id: Int) -> DataRequest {
  146. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  147. let body: Parameters = [
  148. "cursor" : String(cursor),
  149. "prev" : String(prev),
  150. "jenis" : jenis,
  151. "columns" : columns,
  152. "search" : search,
  153. "cust_id" : String(cust_id),
  154. "role_id" : role_id,
  155. "user_id" : String(user_id)
  156. ]
  157. return AF.request(METHOD_GET_BALAI_UJI, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  158. }
  159. // ODS : Aplikasi Entry
  160. func postToGetOdsAplikasiEntry(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int) -> DataRequest {
  161. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  162. let body: Parameters = [
  163. "cursor" : String(cursor),
  164. "prev" : String(prev),
  165. "jenis" : jenis,
  166. "columns" : columns,
  167. "search" : search,
  168. "cust_id" : String(cust_id)
  169. ]
  170. return AF.request(METHOD_GET_ODS_APLIKASI_ENTRY, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  171. }
  172. // ODS : SP2 Baru
  173. func postToGetOdsSp2Baru(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  174. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  175. let body: Parameters = [
  176. "cursor" : String(cursor),
  177. "prev" : String(prev),
  178. "jenis" : jenis,
  179. "columns" : columns,
  180. "search" : search,
  181. "cust_id" : String(cust_id),
  182. "user_id" : String(user_id),
  183. "role_id" : role_id
  184. ]
  185. return AF.request(METHOD_GET_ODS_SP2_BARU, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  186. }
  187. // ODS : SP2 Otorasi
  188. func postToGetOdsSp2Otorasi(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  189. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  190. let body: Parameters = [
  191. "cursor" : String(cursor),
  192. "prev" : String(prev),
  193. "jenis" : jenis,
  194. "columns" : columns,
  195. "search" : search,
  196. "cust_id" : String(cust_id),
  197. "user_id" : String(user_id),
  198. "role_id" : role_id
  199. ]
  200. return AF.request(METHOD_GET_ODS_SP2_OTORASI, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  201. }
  202. // ODS : SP2 Print
  203. func postToGetOdsSp2Print(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  204. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  205. let body: Parameters = [
  206. "cursor" : String(cursor),
  207. "prev" : String(prev),
  208. "jenis" : jenis,
  209. "columns" : columns,
  210. "search" : search,
  211. "cust_id" : String(cust_id),
  212. "user_id" : String(user_id),
  213. "role_id" : role_id
  214. ]
  215. return AF.request(METHOD_GET_ODS_SP2_PRINT, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  216. }
  217. // ODS : Daftar RHU
  218. func postToGetOdsDaftarRhu(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  219. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  220. let body: Parameters = [
  221. "cursor" : String(cursor),
  222. "prev" : String(prev),
  223. "jenis" : jenis,
  224. "columns" : columns,
  225. "search" : search,
  226. "cust_id" : String(cust_id),
  227. "user_id" : String(user_id),
  228. "role_id" : role_id
  229. ]
  230. return AF.request(METHOD_GET_ODS_DAFTAR_RHU, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  231. }
  232. // ODS : SP2 Before
  233. func postToGetOdsSp2Before(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  234. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  235. let body: Parameters = [
  236. "cursor" : String(cursor),
  237. "prev" : String(prev),
  238. "jenis" : jenis,
  239. "columns" : columns,
  240. "search" : search,
  241. "cust_id" : String(cust_id),
  242. "user_id" : String(user_id),
  243. "role_id" : role_id
  244. ]
  245. return AF.request(METHOD_GET_ODS_SP2_BEFORE, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  246. }
  247. // ODS : SP2 After
  248. func postToGetOdsSp2After(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  249. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  250. let body: Parameters = [
  251. "cursor" : String(cursor),
  252. "prev" : String(prev),
  253. "jenis" : jenis,
  254. "columns" : columns,
  255. "search" : search,
  256. "cust_id" : String(cust_id),
  257. "user_id" : String(user_id),
  258. "role_id" : role_id
  259. ]
  260. return AF.request(METHOD_GET_ODS_SP2_AFTER, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  261. }
  262. // FOTO LABEL : Sertifikat Belum Upload
  263. func postToGetSurtifikatBelumUpload(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int) -> DataRequest {
  264. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  265. let body: Parameters = [
  266. "cursor" : String(cursor),
  267. "prev" : String(prev),
  268. "jenis" : jenis,
  269. "columns" : columns,
  270. "search" : search,
  271. "cust_id" : String(cust_id)
  272. ]
  273. return AF.request(METHOD_GET_SERTIFIKAT_BELUM_UPLOAD, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  274. }
  275. // FOTO LABEL : Sertifikat Belum Upload Detail
  276. func postToGetSurtifikatBelumUploadDetail(apl_id: Int) -> DataRequest {
  277. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  278. let body: Parameters = [
  279. "apl_id" : String(apl_id)
  280. ]
  281. return AF.request(METHOD_GET_SERTIFIKAT_BELUM_UPLOAD_DETAIL, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  282. }
  283. // FOTO LABEL : Sertifikat Sudah Upload
  284. func postToGetSurtifikatSudahUpload(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int) -> DataRequest {
  285. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  286. let body: Parameters = [
  287. "cursor" : String(cursor),
  288. "prev" : String(prev),
  289. "jenis" : jenis,
  290. "columns" : columns,
  291. "search" : search,
  292. "cust_id" : String(cust_id)
  293. ]
  294. return AF.request(METHOD_GET_SERTIFIKAT_SUDAH_UPLOAD, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  295. }
  296. // FOTO LABEL : Sertifikasi Upload
  297. func uploadSertifikasi(plgId: String, aplId: String, qrCodeFileURL: URL, keteranganFileURL: URL, peringatanFileURL: URL, qrCodeExt: String, keteranganExt: String, peringatanExt: String) -> UploadRequest {
  298. var qrCodeMimeType = "*/*"
  299. var keteranganMimeType = "*/*"
  300. var peringatanMimeType = "*/*"
  301. if qrCodeExt == "pdf" {
  302. qrCodeMimeType = "application/pdf"
  303. } else if qrCodeExt == "jpg" {
  304. qrCodeMimeType = "image/jpg"
  305. } else if qrCodeExt == "jpeg" {
  306. qrCodeMimeType = "image/jpeg"
  307. } else if qrCodeExt == "png" {
  308. qrCodeMimeType = "image/png"
  309. }
  310. if keteranganExt == "pdf" {
  311. keteranganMimeType = "application/pdf"
  312. } else if keteranganExt == "jpg" {
  313. keteranganMimeType = "image/jpg"
  314. } else if keteranganExt == "jpeg" {
  315. keteranganMimeType = "image/jpeg"
  316. } else if keteranganExt == "png" {
  317. keteranganMimeType = "image/png"
  318. }
  319. if peringatanExt == "pdf" {
  320. peringatanMimeType = "application/pdf"
  321. } else if peringatanExt == "jpg" {
  322. peringatanMimeType = "image/jpg"
  323. } else if peringatanExt == "jpeg" {
  324. peringatanMimeType = "image/jpeg"
  325. } else if peringatanExt == "png" {
  326. peringatanMimeType = "image/png"
  327. }
  328. let plgIdData: Data = plgId.data(using: .utf8)!
  329. let aplIdData: Data = aplId.data(using: .utf8)!
  330. let qrCodeData: Data = try! Data(contentsOf: qrCodeFileURL)
  331. let qrCodeFilename = "\(aplId)-file-qrcode.\(qrCodeExt)"
  332. let keteranganData: Data = try! Data(contentsOf: keteranganFileURL)
  333. let keteranganFilename = "\(aplId)-file-label.\(keteranganExt)"
  334. let peringatanData: Data = try! Data(contentsOf: peringatanFileURL)
  335. let peringatanFilename = "\(aplId)-file-peringatan.\(peringatanExt)"
  336. let upload = AF.upload(
  337. multipartFormData: { multipartFormData in
  338. multipartFormData.append(plgIdData, withName: "plg_id")
  339. multipartFormData.append(aplIdData, withName: "apl_id")
  340. multipartFormData.append(qrCodeData, withName: "foto_qrcode", fileName: qrCodeFilename, mimeType: qrCodeMimeType)
  341. multipartFormData.append(keteranganData, withName: "foto_label", fileName: keteranganFilename, mimeType: keteranganMimeType)
  342. multipartFormData.append(peringatanData, withName: "foto_peringatan", fileName: peringatanFilename, mimeType: peringatanMimeType)
  343. },
  344. to: METHOD_UPLOAD_SERTIFIKASI)
  345. return upload
  346. }
  347. // APLIKASI : Aplikasi Ditolak
  348. func postToGetAplikasiDitolak(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  349. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  350. let body: Parameters = [
  351. "cursor" : String(cursor),
  352. "prev" : String(prev),
  353. "jenis" : jenis,
  354. "columns" : columns,
  355. "search" : search,
  356. "cust_id" : String(cust_id),
  357. "user_id" : String(user_id),
  358. "role_id" : role_id
  359. ]
  360. return AF.request(METHOD_GET_APLIKASI_DITOLAK, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  361. }
  362. // APLIKASI : Aplikasi Status
  363. func postToGetAplikasiStatus(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  364. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  365. let body: Parameters = [
  366. "cursor" : String(cursor),
  367. "prev" : String(prev),
  368. "jenis" : jenis,
  369. "columns" : columns,
  370. "search" : search,
  371. "cust_id" : String(cust_id),
  372. "user_id" : String(user_id),
  373. "role_id" : role_id
  374. ]
  375. return AF.request(METHOD_GET_APLIKASI_STATUS, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  376. }
  377. // SP2 SERTIFIKAT
  378. // SP2 TAMBAHAN
  379. // DAFTAR RHU
  380. // SERTIFIKAT : Sertifikat Sementara
  381. func postToGetSertifikatSementara(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  382. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  383. let body: Parameters = [
  384. "cursor" : String(cursor),
  385. "prev" : String(prev),
  386. "jenis" : jenis,
  387. "columns" : columns,
  388. "search" : search,
  389. "cust_id" : String(cust_id),
  390. "user_id" : String(user_id),
  391. "role_id" : role_id
  392. ]
  393. return AF.request(METHOD_GET_SERTIFIKAT_SEMENTARA, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  394. }
  395. // SERTIFIKAT : Sertifikat Berlaku
  396. func postToGetSertifikatBerlaku(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  397. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  398. let body: Parameters = [
  399. "cursor" : String(cursor),
  400. "prev" : String(prev),
  401. "jenis" : jenis,
  402. "columns" : columns,
  403. "search" : search,
  404. "cust_id" : String(cust_id),
  405. "user_id" : String(user_id),
  406. "role_id" : role_id
  407. ]
  408. return AF.request(METHOD_GET_SERTIFIKAT_BERLAKU, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  409. }
  410. // SERTIFIKAT : Sertifikat Tidak Berlaku
  411. func postToGetSertifikatTidakBerlaku(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  412. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  413. let body: Parameters = [
  414. "cursor" : String(cursor),
  415. "prev" : String(prev),
  416. "jenis" : jenis,
  417. "columns" : columns,
  418. "search" : search,
  419. "cust_id" : String(cust_id),
  420. "user_id" : String(user_id),
  421. "role_id" : role_id
  422. ]
  423. return AF.request(METHOD_GET_SERTIFIKAT_TIDAK_BERLAKU, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  424. }
  425. // SERTIFIKAT : Sertifikat Daftar Pencabutan
  426. func postToGetSertifikatDaftarPencabutan(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  427. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  428. let body: Parameters = [
  429. "cursor" : String(cursor),
  430. "prev" : String(prev),
  431. "jenis" : jenis,
  432. "columns" : columns,
  433. "search" : search,
  434. "cust_id" : String(cust_id),
  435. "user_id" : String(user_id),
  436. "role_id" : role_id
  437. ]
  438. return AF.request(METHOD_GET_SERTIFIKAT_DAFTAR_PENCABUTAN, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  439. }
  440. // SP2 Sertifikat
  441. func postToGetSp2Sertifikat(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  442. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  443. let body: Parameters = [
  444. "cursor" : String(cursor),
  445. "prev" : String(prev),
  446. "jenis" : jenis,
  447. "columns" : columns,
  448. "search" : search,
  449. "cust_id" : String(cust_id),
  450. "user_id" : String(user_id),
  451. "role_id" : role_id
  452. ]
  453. return AF.request(METHOD_GET_SP2_SERTIFIKAT, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  454. }
  455. // SP2 Tambahan
  456. func postToGetSp2Tambahan(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  457. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  458. let body: Parameters = [
  459. "cursor" : String(cursor),
  460. "prev" : String(prev),
  461. "jenis" : jenis,
  462. "columns" : columns,
  463. "search" : search,
  464. "cust_id" : String(cust_id),
  465. "user_id" : String(user_id),
  466. "role_id" : role_id
  467. ]
  468. return AF.request(METHOD_GET_SP2_TAMBAHAN, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  469. }
  470. // Daftar RHU
  471. func postToGetDaftarRhu(cursor: Int, prev: Int, jenis: String, columns: String, search: String, cust_id: Int, user_id: Int, role_id: String) -> DataRequest {
  472. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  473. let body: Parameters = [
  474. "cursor" : String(cursor),
  475. "prev" : String(prev),
  476. "jenis" : jenis,
  477. "columns" : columns,
  478. "search" : search,
  479. "cust_id" : String(cust_id),
  480. "user_id" : String(user_id),
  481. "role_id" : role_id
  482. ]
  483. return AF.request(METHOD_GET_DAFTAR_RHU, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  484. }
  485. // Pertanyaan Survey -> SurveyVC
  486. func postToGetPertanyaanSurvey(cursor: Int, prev: Int, search: String) -> DataRequest {
  487. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  488. let body: Parameters = [
  489. "cursor" : String(cursor),
  490. "prev" : String(prev),
  491. "search" : search
  492. ]
  493. return AF.request(METHOD_GET_PERTANYAAN_SURVEY, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  494. }
  495. // List Jawaban Survey -> SurveyVC
  496. func postToGetListJawabanSurvey(cursor: Int, prev: Int, search: String) -> DataRequest {
  497. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  498. let body: Parameters = [
  499. "cursor" : String(cursor),
  500. "prev" : String(prev),
  501. "search" : search
  502. ]
  503. return AF.request(METHOD_GET_JAWABAN_SURVEY_LIST, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  504. }
  505. // Post Jawaban Survey -> SurveyVC
  506. func postJawabanSurvey(user_id: Int, cust_id: Int, survey_id: Int, jawaban: Int) -> DataRequest {
  507. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  508. let body: Parameters = [
  509. "user_id" : String(user_id),
  510. "cust_id" : String(cust_id),
  511. "survey_id" : String(survey_id),
  512. "jawaban" : String(jawaban)
  513. ]
  514. return AF.request(METHOD_POST_JAWABAN_SURVEY, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  515. }
  516. // Hasil Survey -> HasilSurveyVC
  517. func postToGetHasilSurvey(jenis: String, columns: String, cursor: Int, prev: Int, search: String) -> DataRequest {
  518. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  519. let body: Parameters = [
  520. "jenis" : jenis,
  521. "columns" : columns,
  522. "cursor" : String(cursor),
  523. "prev" : String(prev),
  524. "search" : search
  525. ]
  526. return AF.request(METHOD_GET_HASIL_SURVEY, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  527. }
  528. func postToGetFaqCategory() -> DataRequest {
  529. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  530. return AF.request(METHOD_GET_FAQ_CATEGORY_NEW, method: .get, encoding: URLEncoding.default, headers: headers)
  531. }
  532. func postToGetFaqContent(faq_cat_id: Int) -> DataRequest {
  533. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  534. let url = "\(METHOD_GET_FAQ_CONTENT_NEW)/\(faq_cat_id)"
  535. return AF.request(url, method: .get, encoding: URLEncoding.default, headers: headers)
  536. }
  537. // ------------------------------------------- NEW FUNCTION -------------------------------------------
  538. private func sanitizeNumericRoleId(_ role_id: String) -> String {
  539. if role_id == "C" || role_id.isEmpty || Int(role_id) == nil {
  540. return "0"
  541. }
  542. return role_id
  543. }
  544. func postToGetSertifikatPublic(user_id: Int, cust_id: Int, role_id: String, status: String, limit: Int, page: Int, search: String) -> DataRequest {
  545. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  546. let body: Parameters = [
  547. "user_id" : String(user_id),
  548. "cust_id" : String(cust_id),
  549. "role_id" : sanitizeNumericRoleId(role_id),
  550. "status" : status,
  551. "limit" : String(limit),
  552. "page" : String(page),
  553. "search" : search
  554. ]
  555. print("url : \(METHOD_GET_SERTIFIKAT_PUBLIC)")
  556. print("params : \(body)")
  557. return AF.request(METHOD_GET_SERTIFIKAT_PUBLIC, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  558. }
  559. func postToGetSertifikatPrivate(user_id: Int, cust_id: Int, role_id: String, status: String, limit: Int, page: Int, search: String) -> DataRequest {
  560. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  561. let body: Parameters = [
  562. "user_id" : String(user_id),
  563. "cust_id" : String(cust_id),
  564. "role_id" : sanitizeNumericRoleId(role_id),
  565. "status" : status,
  566. "limit" : String(limit),
  567. "page" : String(page),
  568. "search" : search
  569. ]
  570. print("url : \(METHOD_GET_SERTIFIKAT_PRIVATE)")
  571. print("params : \(body)")
  572. return AF.request(METHOD_GET_SERTIFIKAT_PRIVATE, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  573. }
  574. func postToGetAplikasi(user_id: Int, cust_id: Int, role_id: String, status: String, limit: Int, page: Int, search: String) -> DataRequest {
  575. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  576. let body: Parameters = [
  577. "user_id" : String(user_id),
  578. "cust_id" : String(cust_id),
  579. "role_id" : sanitizeNumericRoleId(role_id),
  580. "status" : status,
  581. "limit" : String(limit),
  582. "page" : String(page),
  583. "search" : search
  584. ]
  585. print("url : \(METHOD_GET_APLIKASI)")
  586. print("params : \(body)")
  587. return AF.request(METHOD_GET_APLIKASI, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  588. }
  589. func postToGetBalaiUjiNew(user_id: Int, cust_id: Int, role_id: String, status: String, limit: Int, page: Int, search: String, jenis: String) -> DataRequest {
  590. let headers: HTTPHeaders = ["Accept" : "Application/json; charset=utf-8"]
  591. let body: Parameters = [
  592. "user_id" : String(user_id),
  593. "cust_id" : String(cust_id),
  594. "role_id" : sanitizeNumericRoleId(role_id),
  595. "status" : status,
  596. "limit" : String(limit),
  597. "page" : String(page),
  598. "keyword" : search,
  599. "jenis" : jenis
  600. ]
  601. print("url : \(METHOD_GET_BALAI_UJI_NEW)")
  602. print("params : \(body)")
  603. return AF.request(METHOD_GET_BALAI_UJI_NEW, method: .post, parameters: body, encoding: URLEncoding.default, headers: headers)
  604. }
  605. }