Explorar o código

Add InstanceActor model

Daniel Supernault %!s(int64=4) %!d(string=hai) anos
pai
achega
aafd023c5a
Modificáronse 1 ficheiros con 41 adicións e 0 borrados
  1. 41 0
      app/Models/InstanceActor.php

+ 41 - 0
app/Models/InstanceActor.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class InstanceActor extends Model
+{
+	use HasFactory;
+
+	const PROFILE_BASE = '/i/actor';
+	const KEY_ID = '/i/actor#main-key';
+	const PROFILE_KEY = 'federation:_v2:instance:actor:profile';
+	const PKI_PUBLIC = 'federation:_v1:instance:actor:profile:pki_public';
+	const PKI_PRIVATE = 'federation:_v1:instance:actor:profile:pki_private';
+
+	public function permalink($suffix = '')
+	{
+		return url(self::PROFILE_BASE . $suffix);
+	}
+
+	public function getActor()
+	{
+		return [
+			'@context' => 'https://www.w3.org/ns/activitystreams',
+			'id' => $this->permalink(),
+			'type' => 'Application',
+			'inbox' => $this->permalink('/inbox'),
+			'outbox' => $this->permalink('/outbox'),
+			'preferredUsername' => config('pixelfed.domain.app'),
+			'publicKey' => [
+				'id' => $this->permalink('#main-key'),
+				'owner' => $this->permalink(),
+				'publicKeyPem' => $this->public_key
+			],
+			'manuallyApprovesFollowers' => true,
+			'url' => route('help.instance-actor')
+		];
+	}
+}