+ private static function enqueuePost(array $ldactivity = [], string $type, int $uid, string $http_signer): array
+ {
+ $fields = [
+ 'activity-id' => $ldactivity['id'],
+ 'object-id' => $ldactivity['object_id'],
+ 'type' => $type,
+ 'object-type' => $ldactivity['object_type'],
+ 'activity' => json_encode($ldactivity, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT),
+ 'received' => DateTimeFormat::utcNow(),
+ ];
+
+ if (!empty($ldactivity['object_object_type'])) {
+ $fields['object-object-type'] = $ldactivity['object_object_type'];
+ }
+
+ if (!empty($http_signer)) {
+ $fields['signer'] = $http_signer;
+ }
+
+ DBA::insert('inbox-entry', $fields, Database::INSERT_IGNORE);
+
+ $queue = DBA::selectFirst('inbox-entry', ['id'], ['activity-id' => $ldactivity['id']]);
+ if (!empty($queue['id'])) {
+ $ldactivity['entry-id'] = $queue['id'];
+ DBA::insert('inbox-entry-receiver', ['queue-id' => $queue['id'], 'uid' => $uid], Database::INSERT_IGNORE);
+ }
+ return $ldactivity;
+ }
+
+ public static function removeFromQueue(array $activity = [])
+ {
+ if (empty($activity['entry-id'])) {
+ return;
+ }
+ DBA::delete('inbox-entry', ['id' => $activity['entry-id']]);
+ }
+