File: /home/imensosw/www/mpl.imenso.co/app/Repositories/FollowedArtistsRepository.php
<?php
namespace App\Repositories;
use App\Models\User;
use Illuminate\Support\Collection;
use DB;
class FollowedArtistsRepository
{
public $user;
public $order_by = 'created_at';
public $order_direction = 'DESC';
public $take = 10;
public $skip = 0;
public $items;
public function __construct()
{
$this->items = new Collection;
}
public static function forUser(User $user)
{
$repo = new self;
$repo->user = $user;
return $repo;
}
public function orderBy($field = 'published_at', $direction = 'DESC')
{
$this->order_by = $field;
$this->order_direction = $direction;
return $this;
}
public function take($count = 10)
{
$this->take = $count;
return $this;
}
public function skip($count = 0)
{
$this->skip = $count;
return $this;
}
public function get()
{
$followed_bands = $this->user->bands();
foreach ($followed_bands as $band) {
$this->items->push($band);
}
return $this->items;
}
public function prepareForExternalUse()
{
$flattened = new Collection;
foreach ($this->items as $item) {
$data['type'] = 'mpl';
$data['artist_id'] = $item->id;
$data['following'] = true;
$data['profile_image'] = url('/images/mpl-logo-black.png');
$data['message'] = '<p>
<a href="http://musicplanetlive.com/artist/' . $item->clean_url . '">' . $item->getName() . '</a></p>';
$data['date'] = '-';
if ($data['profile_image'][0] == '/' && $data['profile_image'][1] == '/') {
$data['profile_image'] = 'http:' . $data['profile_image'];
}
$data['banner'] = url("https://musicplanetliveuploads.s3.amazonaws.com".$item->heroImageSrc());
$flattened->push($data);
}
return $flattened;
}
}