Laravel и исключения Dropbox - PullRequest
       41

Laravel и исключения Dropbox

0 голосов
/ 29 января 2020

Я использую API Dropbox с laravel. У этого API есть исключение, которым я бы хотел управлять, потому что они появляются и останавливают сайт. Например, это Dropbox API с кодом Laravel:

public function getTemporaryLink($path)
{
    $this->setupRequest([
        'path' => $this->normalizePath($path),
    ]);

    $this->apiEndpoint = 'files/get_temporary_link';

    $response = $this->doDropboxApiRequest();

    return $response['link'];
}

protected function doDropboxApiRequest()
{
    $request = empty($this->request) ? [] : ['json' => $this->request];

    try {
        $response = $this->client->post("{$this->apiUrl}{$this->apiEndpoint}", $request);
    } catch (HttpClientException $exception) {

        throw $this->determineException($exception);
    }

    return json_decode($response->getBody(), true);
}

protected function determineException(HttpClientException $exception)
{
    if (!empty($exception->getResponse()) && in_array($exception->getResponse()->getStatusCode(), [400, 409])) {
        return new BadRequest($exception->getResponse());
    }

    return $exception;
}

Я использую функцию getTeilitaryLink следующим образом:

public static function dropbox($filename)
{
    $dropbox = Storage::disk('dropbox')->getDriver()->getAdapter()->getClient();  

    $image = $dropbox->getTemporaryLink($filename);

    return $image;
}

НО это ситуация, если я положу создать временную ссылку на файл, и этот файл не существует в раскрывающемся списке, он отображает эту ошибку:

path / not_found / .. и останавливает сайт.

Что бы я хотел делать?

Если возможно, я бы хотел поместить условное выражение в defineException или в другое место, в котором это позволяет мне не отображать ошибку, которую я имею в виду, если ошибка является path / not_found / .. она не появляется , Является ли это возможным? Спасибо

...