Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2894560
PhabricatorSMSImplementationAdapter.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
2 KB
Referenced Files
None
Subscribers
None
PhabricatorSMSImplementationAdapter.php
View Options
<?php
abstract
class
PhabricatorSMSImplementationAdapter
{
private
$fromNumber
;
private
$toNumber
;
private
$body
;
public
function
setFrom
(
$number
)
{
$this
->
fromNumber
=
$number
;
return
$this
;
}
public
function
getFrom
(
)
{
return
$this
->
fromNumber
;
}
public
function
setTo
(
$number
)
{
$this
->
toNumber
=
$number
;
return
$this
;
}
public
function
getTo
(
)
{
return
$this
->
toNumber
;
}
public
function
setBody
(
$body
)
{
$this
->
body
=
$body
;
return
$this
;
}
public
function
getBody
(
)
{
return
$this
->
body
;
}
/**
* 16 characters or less, to be used in database columns and exposed
* to administrators during configuration directly.
*/
abstract
public
function
getProviderShortName
(
)
;
/**
* Send the message. Generally, this means connecting to some service and
* handing data to it. SMS APIs are generally asynchronous, so truly
* determining success or failure is probably impossible synchronously.
*
* That said, if the adapter determines that the SMS will never be
* deliverable, or there is some other known failure, it should throw
* an exception.
*
* @return null
*/
abstract
public
function
send
(
)
;
/**
* Most (all?) SMS APIs are asynchronous, but some do send back some
* initial information. Use this hook to determine what the updated
* sentStatus should be and what the provider is using for an SMS ID,
* as well as throw exceptions if there are any failures.
*
* @return array Tuple of ($sms_id and $sent_status)
*/
abstract
public
function
getSMSDataFromResult
(
$result
)
;
/**
* Due to the asynchronous nature of sending SMS messages, it can be
* necessary to poll the provider regarding the sent status of a given
* sms.
*
* For now, this *MUST* be implemented and *MUST* work.
*/
abstract
public
function
pollSMSSentStatus
(
PhabricatorSMS
$sms
)
;
/**
* Convenience function to handle sending an SMS.
*/
public
static
function
sendSMS
(
array
$to_numbers
,
$body
)
{
PhabricatorWorker
::
scheduleTask
(
'PhabricatorSMSDemultiplexWorker'
,
array
(
'toNumbers'
=>
$to_numbers
,
'body'
=>
$body
)
)
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sun, Jan 19, 20:03 (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1128270
Default Alt Text
PhabricatorSMSImplementationAdapter.php (2 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment