Changeset View
Changeset View
Standalone View
Standalone View
src/applications/auth/provider/PhabricatorAsanaAuthProvider.php
| <?php | <?php | ||||
| final class PhabricatorAsanaAuthProvider extends PhabricatorOAuth2AuthProvider { | final class PhabricatorAsanaAuthProvider | ||||
| extends PhabricatorOAuth2AuthProvider | |||||
| implements DoorkeeperRemarkupURIInterface { | |||||
| public function getProviderName() { | public function getProviderName() { | ||||
| return pht('Asana'); | return pht('Asana'); | ||||
| } | } | ||||
| protected function getProviderConfigurationHelp() { | protected function getProviderConfigurationHelp() { | ||||
| $app_uri = PhabricatorEnv::getProductionURI('/'); | $app_uri = PhabricatorEnv::getProductionURI('/'); | ||||
| $login_uri = PhabricatorEnv::getURI($this->getLoginURI()); | $login_uri = PhabricatorEnv::getURI($this->getLoginURI()); | ||||
| Show All 29 Lines | foreach ($providers as $provider) { | ||||
| if ($provider instanceof PhabricatorAsanaAuthProvider) { | if ($provider instanceof PhabricatorAsanaAuthProvider) { | ||||
| return $provider; | return $provider; | ||||
| } | } | ||||
| } | } | ||||
| return null; | return null; | ||||
| } | } | ||||
| /* -( DoorkeeperRemarkupURIInterface )------------------------------------- */ | |||||
| public function getDoorkeeperURIRef(PhutilURI $uri) { | |||||
| $uri_string = phutil_string_cast($uri); | |||||
| $pattern = '(https://app\\.asana\\.com/0/(\\d+)/(\\d+))'; | |||||
| $matches = null; | |||||
| if (!preg_match($pattern, $uri_string, $matches)) { | |||||
| return null; | |||||
| } | |||||
| $context_id = $matches[1]; | |||||
| $task_id = $matches[2]; | |||||
| return id(new DoorkeeperURIRef()) | |||||
| ->setURI($uri) | |||||
| ->setApplicationType(DoorkeeperBridgeAsana::APPTYPE_ASANA) | |||||
| ->setApplicationDomain(DoorkeeperBridgeAsana::APPDOMAIN_ASANA) | |||||
| ->setObjectType(DoorkeeperBridgeAsana::OBJTYPE_TASK) | |||||
| ->setObjectID($task_id); | |||||
| } | |||||
| } | } | ||||