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); | |||||
} | |||||
} | } |