diff options
Diffstat (limited to 'Zotlabs/Zot')
-rw-r--r-- | Zotlabs/Zot/IHandler.php | 22 | ||||
-rw-r--r-- | Zotlabs/Zot/Receiver.php | 19 | ||||
-rw-r--r-- | Zotlabs/Zot/ZotHandler.php | 38 |
3 files changed, 71 insertions, 8 deletions
diff --git a/Zotlabs/Zot/IHandler.php b/Zotlabs/Zot/IHandler.php new file mode 100644 index 000000000..eeca1555c --- /dev/null +++ b/Zotlabs/Zot/IHandler.php @@ -0,0 +1,22 @@ +<?php + +namespace Zotlabs\Zot; + +interface IHandler { + + function Ping(); + + function Pickup($data); + + function Notify($data); + + function Request($data); + + function AuthCheck($data,$encrypted); + + function Purge($sender,$recipients); + + function Refresh($sender,$recipients); + +} + diff --git a/Zotlabs/Zot/Receiver.php b/Zotlabs/Zot/Receiver.php index b4d5d5ef6..6a11bcde0 100644 --- a/Zotlabs/Zot/Receiver.php +++ b/Zotlabs/Zot/Receiver.php @@ -12,14 +12,17 @@ class Receiver { protected $validated; protected $recipients; protected $response; + protected $handler; - function __construct($data,$prvkey) { + function __construct($data,$prvkey,$handler) { $this->error = false; $this->validated = false; $this->messagetype = ''; $this->response = array('success' => false); + $this->handler = $handler; + if(! is_array($data)) $data = json_decode($data,true); @@ -76,11 +79,11 @@ class Receiver { switch($this->messagetype) { case 'ping': /* no validation needed */ - zot_reply_ping(); + $this->handler->Ping(); break; case 'pickup': /* perform site validation, as opposed to sender validation */ - zot_reply_pickup($this->data); + $this->handler->Pickup($this->data); break; default: @@ -96,24 +99,24 @@ class Receiver { switch($this->messagetype) { case 'auth_check': - zot_reply_auth_check($this->data,$this->encrypted); + $this->handler->AuthCheck($this->data,$this->encrypted); break; case 'request': - json_return_and_die(zot_process_message_request($this->data)); + $this->handler->Request($this->data); break; case 'purge': - zot_reply_purge($this->sender,$this->recipients); + $this->handler->Purge($this->sender,$this->recipients); break; case 'refresh': case 'force_refresh': - zot_reply_refresh($this->sender,$this->recipients); + $this->handler->Refresh($this->sender,$this->recipients); break; case 'notify': - zot_reply_notify($this->data); + $this->handler->Notify($this->data); break; default: diff --git a/Zotlabs/Zot/ZotHandler.php b/Zotlabs/Zot/ZotHandler.php new file mode 100644 index 000000000..20332074e --- /dev/null +++ b/Zotlabs/Zot/ZotHandler.php @@ -0,0 +1,38 @@ +<?php + +namespace Zotlabs\Zot; + +require_once('Zotlabs/Zot/IHandler.php'); + + +class ZotHandler implements IHandler { + + function Ping() { + zot_reply_ping(); + } + + function Pickup($data) { + zot_reply_pickup($data); + } + + function Notify($data) { + zot_reply_notify($data); + } + + function Request($data) { + zot_reply_message_request($data)); + } + + function AuthCheck($data,$encrypted) { + zot_reply_auth_check($data,$encrypted); + } + + function Purge($sender,$recipients) { + zot_reply_purge($sender,$recipients); + } + + function Refresh($sender,$recipients) { + zot_reply_refresh($sender,$recipients); + } + +} |