aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Job
diff options
context:
space:
mode:
Diffstat (limited to 'Digitigrade/Job')
-rw-r--r--Digitigrade/Job/ExpireInboundAuthToken.php1
-rw-r--r--Digitigrade/Job/ProcessIncomingPush.php41
2 files changed, 42 insertions, 0 deletions
diff --git a/Digitigrade/Job/ExpireInboundAuthToken.php b/Digitigrade/Job/ExpireInboundAuthToken.php
index 1ec3585..84a5b21 100644
--- a/Digitigrade/Job/ExpireInboundAuthToken.php
+++ b/Digitigrade/Job/ExpireInboundAuthToken.php
@@ -26,6 +26,7 @@ class ExpireInboundAuthToken extends Job {
return;
}
$instance->auth->inboundToken = null;
+ $instance->auth->save();
}
public function submit() {
diff --git a/Digitigrade/Job/ProcessIncomingPush.php b/Digitigrade/Job/ProcessIncomingPush.php
new file mode 100644
index 0000000..fefa122
--- /dev/null
+++ b/Digitigrade/Job/ProcessIncomingPush.php
@@ -0,0 +1,41 @@
+<?php
+namespace Digitigrade\Job;
+
+use Digitigrade\Job;
+use Digitigrade\Logger;
+use Digitigrade\Model\Actor;
+use Digitigrade\Model\Interaction;
+use Digitigrade\Model\Note;
+
+class ProcessIncomingPush extends Job {
+ public \stdClass $object;
+
+ public function __construct(\stdClass $object) {
+ $this->object = $object;
+ $this->remainingTries = 3;
+ }
+
+ public function run() {
+ assert(isset($this->object->type));
+ $log = Logger::getInstance();
+ switch ($this->object->type) {
+ case 'actor':
+ $log->info('importing actor with uri ' . $this->object->self);
+ Actor::importFromReceivedObject($this->object);
+ break;
+ case 'note':
+ $log->info('importing note with uri ' . $this->object->self);
+ Note::importFromReceivedObject($this->object);
+ break;
+ case 'interaction':
+ $log->info('importing interaction with uri ' . $this->object->self);
+ Interaction::importFromReceivedObject($this->object);
+ break;
+ case 'extension':
+ case 'tombstone':
+ throw new \RuntimeException('object type ' . $this->object->type . ' not yet implemented :(');
+ default:
+ throw new \RuntimeException('invalid object type: ' . $this->object->type);
+ }
+ }
+} \ No newline at end of file