Remove hashids from Status model, add new methods

This commit is contained in:
Daniel Supernault 2018-05-19 21:01:25 -06:00
parent cb0780898e
commit 7c1b70060c
1 changed files with 52 additions and 3 deletions

View File

@ -23,11 +23,16 @@ class Status extends Model
return $this->hasMany(Media::class)->orderBy('order', 'asc')->first();
}
public function thumb()
{
return url(Storage::url($this->firstMedia()->thumbnail_path));
}
public function url()
{
$hid = Hashids::encode($this->id);
$id = $this->id;
$username = $this->profile->username;
return url("/p/@{$username}/{$hid}");
return url(config('app.url') . "/p/@{$username}/{$id}");
}
public function mediaUrl()
@ -44,7 +49,51 @@ class Status extends Model
public function comments()
{
return $this->hasMany(Comment::class);
return $this->hasMany(Status::class, 'in_reply_to_id');
}
public function parent()
{
if(!empty($this->in_reply_to_id)) {
return Status::findOrFail($this->in_reply_to_id);
}
}
public function conversation()
{
return $this->hasOne(Conversation::class);
}
public function hashtags()
{
return $this->hasManyThrough(
Hashtag::class,
StatusHashtag::class,
'status_id',
'id',
'id',
'hashtag_id'
);
}
public function toActivityStream()
{
$media = $this->media;
$mediaCollection = [];
foreach($media as $image) {
$mediaCollection[] = [
"type" => "Link",
"href" => $image->url(),
"mediaType" => $image->mime
];
}
$obj = [
"@context" => "https://www.w3.org/ns/activitystreams",
"type" => "Image",
"name" => null,
"url" => $mediaCollection
];
return $obj;
}
}