api_curl.class.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. use Luracast\Restler\RestException;
  3. require_once DOL_DOCUMENT_ROOT . '/custom/bbus/class/basicservices.class.php';
  4. //require_once DOL_DOCUMENT_ROOT . '/custom/bbus/class/api_bbus_log.class.php';
  5. trait CurlApi
  6. {
  7. private function curlInit($route, $postFields = '', $request = 'POST')
  8. {
  9. $curl = curl_init();
  10. curl_setopt_array($curl, array(
  11. CURLOPT_URL => 'http://dolibarr-bbusdev-imap-cron-soap/api/index.php/' . $route,
  12. CURLOPT_RETURNTRANSFER => true,
  13. CURLOPT_VERBOSE => true,
  14. CURLOPT_SSL_VERIFYPEER => false,
  15. CURLOPT_REFERER => true,
  16. CURLOPT_ENCODING => '',
  17. CURLOPT_MAXREDIRS => 10,
  18. CURLOPT_TIMEOUT => 0,
  19. CURLOPT_FOLLOWLOCATION => true,
  20. CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  21. CURLOPT_CUSTOMREQUEST => $request,
  22. CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
  23. CURLOPT_POSTFIELDS => $postFields,
  24. CURLOPT_HTTPHEADER => array(
  25. 'DOLAPIKEY: XLUBwCnkVOoX',
  26. 'Content-Type: application/json'
  27. ),
  28. ));
  29. return $curl;
  30. }
  31. private function curlRunner($route, $postFields, $request = 'POST', $decode = false)
  32. {
  33. $curl = $this->curlInit($route, $postFields, $request);
  34. $response = curl_exec($curl);
  35. print_r($response);
  36. curl_close($curl);
  37. return $decode ? json_decode($response) : $response;
  38. }
  39. public function addCurlProducts($sortfield, $sortorder, $limit, $page, $mode, $category, $sqlfilters, $ids_only, $variant_filter, $pagination_data, $includestockdata)
  40. {
  41. $curlProductsArray = [];
  42. $searchString = "ef.basic_service =";
  43. $array = explode('AND', $sqlfilters);
  44. foreach ($array as $key => $value) {
  45. if (strpos($value, $searchString) !== false) {
  46. $tmpArray = explode(" = ", $array[$key]);
  47. $basic_service = $tmpArray[1];
  48. }
  49. }
  50. if ($basic_service == "'3'") {
  51. $params = compact('sortfield', 'sortorder', 'limit', 'page', 'mode', 'category', 'sqlfilters', 'ids_only', 'variant_filter', 'pagination_data', 'includestockdata');
  52. $postFields = json_encode($params);
  53. $curlProductsArray = $this->curlRunner('bbus/products', $postFields, 'GET', true);
  54. }
  55. return $curlProductsArray;
  56. }
  57. public function curlCreateBBticket($product_id, $datec, $facture_id)
  58. {
  59. $postFields = '{"product_id":"' . $product_id . '","datec":"' . $datec . '","facture_id":"' . $facture_id . '"}';
  60. $curl = $this->curlInit('bookingapi/createbbticket', $postFields, 'POST');
  61. $response = curl_exec($curl);
  62. curl_close($curl);
  63. return true;
  64. }
  65. public function curlCreateBBticketForMultipriniting($product_id, $datec, $ref)
  66. {
  67. $postFields = '{"product_id":"' . $product_id . '","datec":"' . $datec . '","ref":"' . $ref . '"}';
  68. $curl = $this->curlInit('bookingapi/createbbticketmultiprinting', $postFields, 'POST');
  69. $response = curl_exec($curl);
  70. //print_r($response);exit;
  71. curl_close($curl);
  72. return $response;
  73. }
  74. private function getServerHost($type_id)
  75. {
  76. $basicServices = new BasicServices($this->db);
  77. $resultBS = $basicServices->fetch($type_id);
  78. return $basicServices->server_host;
  79. }
  80. }