Bläddra i källkod

Update Story model

Daniel Supernault 3 år sedan
förälder
incheckning
e1a3e26644
1 ändrade filer med 42 tillägg och 8 borttagningar
  1. 42 8
      app/Story.php

+ 42 - 8
app/Story.php

@@ -3,6 +3,7 @@
 namespace App;
 
 use Auth;
+use Storage;
 use Illuminate\Database\Eloquent\Model;
 use Pixelfed\Snowflake\HasSnowflakePrimary;
 
@@ -19,14 +20,11 @@ class Story extends Model
      */
     public $incrementing = false;
 
-    /**
-     * The attributes that should be mutated to dates.
-     *
-     * @var array
-     */
-    protected $dates = ['published_at', 'expires_at'];
+    protected $casts = [
+    	'expires_at' => 'immutable_datetime'
+    ];
 
-    protected $fillable = ['profile_id'];
+    protected $fillable = ['profile_id', 'view_count'];
 
 	protected $visible = ['id'];
 
@@ -51,6 +49,42 @@ class Story extends Model
 
 	public function permalink()
 	{
-		return url("/story/$this->id");
+		$username = $this->profile->username;
+		return url("/stories/{$username}/{$this->id}/activity");
+	}
+
+	public function url()
+	{
+		$username = $this->profile->username;
+		return url("/stories/{$username}/{$this->id}");
+	}
+
+	public function mediaUrl()
+	{
+		return url(Storage::url($this->path));
+	}
+
+	public function bearcapUrl()
+	{
+		return "bear:?t={$this->bearcap_token}&u={$this->url()}";
+	}
+
+	public function scopeToAudience($scope)
+	{
+		$res = [];
+
+		switch ($scope) {
+			case 'to':
+				$res = [
+					$this->profile->permalink('/followers')
+				];
+				break;
+
+			default:
+				$res = [];
+				break;
+		}
+
+		return $res;
 	}
 }