url = env('SD_INGEST_URL') . '/recreate-document'; } /** * * @param $id * @param $data * @throws \GuzzleHttp\Exception\GuzzleException * @throws \Exception */ public function execute($id, $data) { $response = $this->sendRequest($id, $data); if ( ! array_key_exists('status', $response)) { throw new \Exception('Something went wrong.'); } if ($response['status'] === 'fail') { $message = array_key_exists('message', $response) ? $response['message'] : 'Something went wrong.'; throw new \Exception($message); } } /** * Send request to Ingest to recreate document. * * @param $id * @param $data * @return mixed * @throws \GuzzleHttp\Exception\GuzzleException * @throws \Exception */ public function sendRequest($id, $data) { $client = new Client(); try { $response = $client->request('post', $this->url, [ 'headers' => [ 'Accept' => 'application/json', ], 'form_params' => [ 'id' => $id, 'data' => json_encode($data), ], ]); return json_decode($response->getBody()->getContents(), true); } catch (ClientException $clientException) { $error = json_decode($clientException->getResponse()->getBody()->getContents(), true); throw new \Exception($error['message']); } } }