}
$data = $this->get($pds . '/xrpc/' . $url, [HttpClientOptions::HEADERS => $headers]);
- $this->pConfig->set($uid, 'bluesky', 'status', is_null($data) ? self::STATUS_API_FAIL : self::STATUS_SUCCESS);
+ if (empty($data) || (!empty($data->code) && ($data->code < 200 || $data->code >= 400))) {
+ $this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_API_FAIL);
+ if (!empty($data->message)) {
+ $this->pConfig->set($uid, 'bluesky', 'status-message', $data->message);
+ } elseif (!empty($data->code)) {
+ $this->pConfig->set($uid, 'bluesky', 'status-message', 'Error Code: ' . $data->code);
+ }
+ } elseif (!empty($data)) {
+ $this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_SUCCESS);
+ $this->pConfig->set($uid, 'bluesky', 'status-message', '');
+ }
return $data;
}
return null;
}
$data->code = $curlResult->getReturnCode();
+ } elseif (($curlResult->getReturnCode() < 200) || ($curlResult->getReturnCode() >= 400)) {
+ $this->logger->notice('Unexpected return code', ['url' => $url, 'code' => $curlResult->getReturnCode(), 'error' => $data ?: $curlResult->getBodyString()]);
+ $data->code = $curlResult->getReturnCode();
}
Item::incrementInbound(Protocol::BLUESKY);
} catch (\Exception $e) {
$this->logger->notice('Exception on post', ['exception' => $e]);
$this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_API_FAIL);
+ $this->pConfig->set($uid, 'bluesky', 'status-message', $e->getMessage());
return null;
}
$this->logger->notice('API Error', ['url' => $url, 'code' => $curlResult->getReturnCode(), 'error' => $data ?: $curlResult->getBodyString()]);
if (!$data) {
$this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_API_FAIL);
+ if (!empty($data->message)) {
+ $this->pConfig->set($uid, 'bluesky', 'status-message', $data->message);
+ } elseif (!empty($data->code)) {
+ $this->pConfig->set($uid, 'bluesky', 'status-message', 'Error Code: ' . $data->code);
+ }
return null;
}
$data->code = $curlResult->getReturnCode();
if (!empty($data->code) && ($data->code >= 200) && ($data->code < 400)) {
$this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_SUCCESS);
+ $this->pConfig->set($uid, 'bluesky', 'status-message', '');
} else {
$this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_API_FAIL);
+ if (!empty($data->message)) {
+ $this->pConfig->set($uid, 'bluesky', 'status-message', $data->message);
+ } elseif (!empty($data->code)) {
+ $this->pConfig->set($uid, 'bluesky', 'status-message', 'Error Code: ' . $data->code);
+ }
}
return $data;
}
$data = $this->post($uid, '/xrpc/com.atproto.server.refreshSession', '', ['Authorization' => ['Bearer ' . $token]]);
if (empty($data) || empty($data->accessJwt)) {
$this->logger->debug('Refresh failed', ['return' => $data]);
- $password = $this->pConfig->get($uid, 'bluesky', 'password');
- if (!empty($password)) {
- return $this->createUserToken($uid, $password);
- }
$this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_TOKEN_FAIL);
return '';
}
$this->pConfig->set($uid, 'bluesky', 'refresh_token', $data->refreshJwt);
$this->pConfig->set($uid, 'bluesky', 'token_created', time());
$this->pConfig->set($uid, 'bluesky', 'status', self::STATUS_TOKEN_OK);
+ $this->pConfig->set($uid, 'bluesky', 'status-message', '');
return $data->accessJwt;
}
}