clients.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. header("Access-Control-Allow-Origin: *");
  3. header("Content-Type: application/json; charset=UTF-8");
  4. header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
  5. header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
  6. if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
  7. exit(0);
  8. }
  9. require_once '../config/database.php';
  10. require_once '../models/Client.php';
  11. $database = new Database();
  12. $db = $database->getConnection();
  13. $client = new Client($db);
  14. $request_method = $_SERVER['REQUEST_METHOD'];
  15. switch($request_method) {
  16. case 'GET':
  17. if(isset($_GET['id'])) {
  18. $client->id = $_GET['id'];
  19. $client->readOne();
  20. if($client->email != null) {
  21. $client_arr = array(
  22. "id" => $client->id,
  23. "company_name" => $client->company_name,
  24. "y_tunnus" => $client->y_tunnus,
  25. "first_name" => $client->first_name,
  26. "last_name" => $client->last_name,
  27. "email" => $client->email,
  28. "phone" => $client->phone,
  29. "address" => $client->address,
  30. "city" => $client->city,
  31. "state" => $client->state,
  32. "postal_code" => $client->postal_code,
  33. "country" => $client->country,
  34. "notes" => $client->notes,
  35. "created_at" => $client->created_at,
  36. "updated_at" => $client->updated_at
  37. );
  38. http_response_code(200);
  39. echo json_encode($client_arr);
  40. } else {
  41. http_response_code(404);
  42. echo json_encode(array("message" => "Client not found."));
  43. }
  44. } elseif(isset($_GET['search'])) {
  45. $search_term = $_GET['search'];
  46. $stmt = $client->search($search_term);
  47. $num = $stmt->rowCount();
  48. if($num > 0) {
  49. $clients_arr = array();
  50. $clients_arr["records"] = array();
  51. while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  52. extract($row);
  53. $client_item = array(
  54. "id" => $id,
  55. "company_name" => $company_name,
  56. "first_name" => $first_name,
  57. "last_name" => $last_name,
  58. "email" => $email,
  59. "phone" => $phone,
  60. "address" => $address,
  61. "city" => $city,
  62. "state" => $state,
  63. "postal_code" => $postal_code,
  64. "country" => $country,
  65. "notes" => $notes,
  66. "created_at" => $created_at,
  67. "updated_at" => $updated_at
  68. );
  69. array_push($clients_arr["records"], $client_item);
  70. }
  71. http_response_code(200);
  72. echo json_encode($clients_arr);
  73. } else {
  74. http_response_code(200);
  75. echo json_encode(array("records" => array()));
  76. }
  77. } else {
  78. $stmt = $client->read();
  79. $num = $stmt->rowCount();
  80. if($num > 0) {
  81. $clients_arr = array();
  82. $clients_arr["records"] = array();
  83. while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  84. extract($row);
  85. $client_item = array(
  86. "id" => $id,
  87. "company_name" => $company_name,
  88. "first_name" => $first_name,
  89. "last_name" => $last_name,
  90. "email" => $email,
  91. "phone" => $phone,
  92. "address" => $address,
  93. "city" => $city,
  94. "state" => $state,
  95. "postal_code" => $postal_code,
  96. "country" => $country,
  97. "notes" => $notes,
  98. "created_at" => $created_at,
  99. "updated_at" => $updated_at
  100. );
  101. array_push($clients_arr["records"], $client_item);
  102. }
  103. http_response_code(200);
  104. echo json_encode($clients_arr);
  105. } else {
  106. http_response_code(200);
  107. echo json_encode(array("records" => array()));
  108. }
  109. }
  110. break;
  111. case 'POST':
  112. $data = json_decode(file_get_contents("php://input"));
  113. if(!empty($data->first_name) && !empty($data->last_name) && !empty($data->email)) {
  114. $client->company_name = $data->company_name ?? '';
  115. $client->y_tunnus = $data->y_tunnus ?? '';
  116. $client->first_name = $data->first_name;
  117. $client->last_name = $data->last_name;
  118. $client->email = $data->email;
  119. $client->phone = $data->phone ?? '';
  120. $client->address = $data->address ?? '';
  121. $client->city = $data->city ?? '';
  122. $client->state = $data->state ?? '';
  123. $client->postal_code = $data->postal_code ?? '';
  124. $client->country = $data->country ?? '';
  125. $client->notes = $data->notes ?? '';
  126. if($client->create()) {
  127. http_response_code(201);
  128. echo json_encode(array("message" => "Client was created."));
  129. } else {
  130. http_response_code(503);
  131. echo json_encode(array("message" => "Unable to create client."));
  132. }
  133. } else {
  134. http_response_code(400);
  135. echo json_encode(array("message" => "Unable to create client. Data is incomplete."));
  136. }
  137. break;
  138. case 'PUT':
  139. $data = json_decode(file_get_contents("php://input"));
  140. if(!empty($data->id) && !empty($data->first_name) && !empty($data->last_name) && !empty($data->email)) {
  141. $client->id = $data->id;
  142. $client->company_name = $data->company_name ?? '';
  143. $client->y_tunnus = $data->y_tunnus ?? '';
  144. $client->first_name = $data->first_name;
  145. $client->last_name = $data->last_name;
  146. $client->email = $data->email;
  147. $client->phone = $data->phone ?? '';
  148. $client->address = $data->address ?? '';
  149. $client->city = $data->city ?? '';
  150. $client->state = $data->state ?? '';
  151. $client->postal_code = $data->postal_code ?? '';
  152. $client->country = $data->country ?? '';
  153. $client->notes = $data->notes ?? '';
  154. if($client->update()) {
  155. http_response_code(200);
  156. echo json_encode(array("message" => "Client was updated."));
  157. } else {
  158. http_response_code(503);
  159. echo json_encode(array("message" => "Unable to update client."));
  160. }
  161. } else {
  162. http_response_code(400);
  163. echo json_encode(array("message" => "Unable to update client. Data is incomplete."));
  164. }
  165. break;
  166. case 'DELETE':
  167. if(isset($_GET['id'])) {
  168. $client->id = $_GET['id'];
  169. if($client->delete()) {
  170. http_response_code(200);
  171. echo json_encode(array("message" => "Client was deleted."));
  172. } else {
  173. http_response_code(503);
  174. echo json_encode(array("message" => "Unable to delete client."));
  175. }
  176. } else {
  177. http_response_code(400);
  178. echo json_encode(array("message" => "Unable to delete client. ID is missing."));
  179. }
  180. break;
  181. default:
  182. http_response_code(405);
  183. echo json_encode(array("message" => "Method not allowed."));
  184. break;
  185. }
  186. ?>