Differential D11769 Diff 28400 src/applications/notification/client/PhabricatorNotificationClient.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/notification/client/PhabricatorNotificationClient.php
| <?php | <?php | ||||
| final class PhabricatorNotificationClient { | final class PhabricatorNotificationClient { | ||||
| const EXPECT_VERSION = 6; | const EXPECT_VERSION = 7; | ||||
| public static function getServerStatus() { | public static function getServerStatus() { | ||||
| $uri = PhabricatorEnv::getEnvConfig('notification.server-uri'); | $uri = PhabricatorEnv::getEnvConfig('notification.server-uri'); | ||||
| $uri = id(new PhutilURI($uri)) | $uri = id(new PhutilURI($uri)) | ||||
| ->setPath('/status/'); | ->setPath('/status/') | ||||
| ->setQueryParam('instance', self::getInstance()); | |||||
| list($body) = id(new HTTPSFuture($uri)) | list($body) = id(new HTTPSFuture($uri)) | ||||
| ->setTimeout(3) | ->setTimeout(3) | ||||
| ->resolvex(); | ->resolvex(); | ||||
| $status = phutil_json_decode($body); | $status = phutil_json_decode($body); | ||||
| if (!is_array($status)) { | if (!is_array($status)) { | ||||
| throw new Exception( | throw new Exception( | ||||
| Show All 16 Lines | try { | ||||
| // Just ignore any issues here. | // Just ignore any issues here. | ||||
| phlog($ex); | phlog($ex); | ||||
| } | } | ||||
| } | } | ||||
| private static function postMessage(array $data) { | private static function postMessage(array $data) { | ||||
| $server_uri = PhabricatorEnv::getEnvConfig('notification.server-uri'); | $server_uri = PhabricatorEnv::getEnvConfig('notification.server-uri'); | ||||
| $server_uri = id(new PhutilURI($server_uri)) | $server_uri = id(new PhutilURI($server_uri)) | ||||
| ->setPath('/'); | ->setPath('/') | ||||
| ->setQueryParam('instance', self::getInstance()); | |||||
| id(new HTTPSFuture($server_uri, json_encode($data))) | id(new HTTPSFuture($server_uri, json_encode($data))) | ||||
| ->setMethod('POST') | ->setMethod('POST') | ||||
| ->setTimeout(1) | ->setTimeout(1) | ||||
| ->resolvex(); | ->resolvex(); | ||||
| } | } | ||||
| private static function getInstance() { | |||||
| $client_uri = PhabricatorEnv::getEnvConfig('notification.client-uri'); | |||||
| return id(new PhutilURI($client_uri))->getPath(); | |||||
| } | |||||
| } | } | ||||