Compare commits

...

1 Commits
main ... 1.1

Author SHA1 Message Date
9fd33f7f18 Update FreshdeskShim/src/Controller/FDShim_Controller.php
added Data Validation, and moved the Freshdesk payload creation into the Shim.
2024-08-29 21:58:31 +00:00

View File

@ -9,7 +9,12 @@ use Symfony\Component\HttpFoundation\Request;
class FDShim_Controller extends ControllerBase {
public function fd_route(Request $request) {
if ($request->isMethod('POST')) {
$postData = $request->request->all();
//$postData = $request->request->all();
// Data Validation
if (!isset($request['name']) || !isset($request['phone']) || !isset($request['email'])) {
return new JsonResponse(['error' => 'Bad Request'], 400);
}
// Initial variables
$apiUrl = 'https://jvmanufacturing-help.freshdesk.com/api/v2/tickets';
@ -19,11 +24,34 @@ class FDShim_Controller extends ControllerBase {
'Content-Type: multipart/form-data',
'Authorization: ' . $apiKey
];
$descriptionString =
'<div>Name: ' . $request['name'] . '</div>' .
'<div>Date: ' . $request['date'] . '</div>' .
'<div>Phone: ' . $request['phone_num'] . '</div>' .
'<div>Hinge Type: ' . $request['hinge_type'] . '</div>' .
'<div>Ceiling Greater than 14ft: ' . $request['ceiling_height'] . '</div>' .
'<div>Loading Dock: ' . $request['loading_dock'] . '</div>' .
'<div>Basement Under Baler: ' . $request['baler_over_basement'] . '</div>' .
'<div>Voltage: ' . $request['voltage'] . '</div>';
// Converting the POST request data into the correct format for Fresdesk ticket creation
$postData = [
'name' => $request['name'],
'email' => $request['email'],
'phone' => $request['phone'],
'subject' => '[Webform Submission] ' . $request['name'] . ' Baler Request',
'description' => $descriptionString,
'attachments[]' => $request['attachments[]'],
'status' => '2',
'priority' => '1',
'group' => '154000339633'
];
// cURL Options
curl_setopt($fd, CURLOPT_RETURNTRANSFER, true);
curl_setopt($fd, CURLOPT_POST, true);
curl_setopt($fd, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($fd, CURLOPT_POSTFIELDS, $postData);
curl_setopt($fd, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($fd);