Path: blob/master/src/applications/metamta/adapter/PhabricatorMailAmazonSNSAdapter.php
12256 views
<?php12final class PhabricatorMailAmazonSNSAdapter3extends PhabricatorMailAdapter {45const ADAPTERTYPE = 'sns';67public function getSupportedMessageTypes() {8return array(9PhabricatorMailSMSMessage::MESSAGETYPE,10);11}1213protected function validateOptions(array $options) {14PhutilTypeSpec::checkMap(15$options,16array(17'access-key' => 'string',18'secret-key' => 'string',19'endpoint' => 'string',20'region' => 'string',21));22}2324public function newDefaultOptions() {25return array(26'access-key' => null,27'secret-key' => null,28'endpoint' => null,29'region' => null,30);31}3233public function sendMessage(PhabricatorMailExternalMessage $message) {34$access_key = $this->getOption('access-key');3536$secret_key = $this->getOption('secret-key');37$secret_key = new PhutilOpaqueEnvelope($secret_key);3839$endpoint = $this->getOption('endpoint');40$region = $this->getOption('region');4142$to_number = $message->getToNumber();43$text_body = $message->getTextBody();4445$params = array(46'Version' => '2010-03-31',47'Action' => 'Publish',48'PhoneNumber' => $to_number->toE164(),49'Message' => $text_body,50);5152return id(new PhabricatorAmazonSNSFuture())53->setParameters($params)54->setEndpoint($endpoint)55->setAccessKey($access_key)56->setSecretKey($secret_key)57->setRegion($region)58->setTimeout(60)59->resolve();60}6162}636465