formService = $formService; $this->fieldService = $fieldService; $this->notificationService = $notificationService; $this->confirmationService = $confirmationService; $this->entryService = $entryService; } /** * @param WP_REST_Request $data * * @return WP_REST_Response * * @throws InvalidArgumentException * @throws ForbiddenException * @throws QueryExecutionException */ public function handle(WP_REST_Request $data): WP_REST_Response { // Verify the nonce Sanitizer::verifyNonce($data->get_header('X-WP-Nonce')); // Check if the form ID is provided if (empty($data->get_param('id'))) { throw new InvalidArgumentException( BackendStrings::getExceptionStrings()['form_id_required'] ); } // Sanitize the input data $formId = Sanitizer::sanitizeId($data->get_param('id')); $this->entryService->getDeletionManager()->deleteEntriesByFormIds([$formId]); $this->confirmationService->deleteConfirmationsByFormIds([$formId]); $this->notificationService->deleteNotificationsByFormIds([$formId]); $this->fieldService->deleteFieldsByFormIds([$formId]); $this->formService->deleteForm($formId); return new WP_REST_Response([ 'message' => BackendStrings::getCommonStrings()['ok'], 'data' => [] ], 200); } }