aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Job/ProcessIncomingPush.php
diff options
context:
space:
mode:
authorwinter2024-12-19 18:01:29 +0000
committerwinter2024-12-19 18:01:29 +0000
commit1e070a7a0097c74f8ac30678d39267f19c76f9f6 (patch)
tree669ba608d8182971752f6bc2ae2ade0b3ff627cf /Digitigrade/Job/ProcessIncomingPush.php
parent6f767c4562df4a686720ef96396cea0b2f0c6334 (diff)
process pushes in job + fix token expiry job
Diffstat (limited to 'Digitigrade/Job/ProcessIncomingPush.php')
-rw-r--r--Digitigrade/Job/ProcessIncomingPush.php41
1 files changed, 41 insertions, 0 deletions
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