Files
opensem/app/Repositories/Teams.php
Ludovic CANDELLIER 36267139a1 [WIP] Setup of skeleton
2020-03-25 00:08:27 +01:00

81 lines
1.7 KiB
PHP

<?php
namespace App\Repositories;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Laratrust\Traits\LaratrustUserTrait;
use Yajra\Datatables\Datatables;
use App\Team;
use App\Models\TeamUser;
use App\Repositories\Users;
class Teams
{
use LaratrustUserTrait;
public static function getTeamsByUser($user_id = false)
{
$user_id = $user_id ? $user_id : Users::getId();
return TeamUser::byUser($user_id);
}
public static function getUsersByTeam($id)
{
return TeamUser::byTeam($id)->get();
}
public static function getUsersIdByTeam($id)
{
return self::getUsersByTeam($id)->pluck('user_id');
}
public static function getUsersByTeam2($id)
{
return Team::find($id)->users();
}
public static function getOptions()
{
return Team::get()->pluck('name', 'id');
}
public static function get($id)
{
return Team::find($id);
}
public static function getTable($id)
{
$datas = Team::with(['societe'])->withCount(['users']);
return Datatables::of($datas)->make(true);
}
public static function delete($id)
{
Users::destroyByUniqueTeam($id);
return Team::destroy($id);
}
public static function destroyBySociete($id)
{
$teams = Team::bySociete($id)->get();
foreach ($teams as $team) {
self::delete($team->id);
}
}
// ajoute une équipe/service/direction
public static function create($data)
{
return Team::create($data);
}
// met à jour les informations d'une équipe/service/direction
public static function update($data)
{
return Team::find($data['id'])->update($data);
}
}