2024-07-01 14:26:50 +00:00
< ? php
namespace App\Http\Controllers\Api ;
use App\Http\Controllers\Controller ;
use Illuminate\Http\Request ;
class TeamController extends Controller
{
2024-07-02 10:15:58 +00:00
private function removeSensitiveData ( $team )
{
$token = auth () -> user () -> currentAccessToken ();
if ( $token -> can ( 'view:sensitive' )) {
return serializeApiResponse ( $team );
}
$team -> makeHidden ([
'smtp_username' ,
'smtp_password' ,
'resend_api_key' ,
'telegram_token' ,
]);
return serializeApiResponse ( $team );
}
2024-07-01 14:26:50 +00:00
public function teams ( Request $request )
{
$teamId = getTeamIdFromToken ();
if ( is_null ( $teamId )) {
return invalidTokenResponse ();
}
2024-07-02 10:15:58 +00:00
$teams = auth () -> user () -> teams -> sortBy ( 'id' );
$teams = $teams -> map ( function ( $team ) {
return $this -> removeSensitiveData ( $team );
});
2024-07-01 14:26:50 +00:00
return response () -> json ([
'success' => true ,
2024-07-02 10:15:58 +00:00
'data' => $teams ,
2024-07-01 14:26:50 +00:00
]);
}
public function team_by_id ( Request $request )
{
$id = $request -> id ;
$teamId = getTeamIdFromToken ();
if ( is_null ( $teamId )) {
return invalidTokenResponse ();
}
$teams = auth () -> user () -> teams ;
$team = $teams -> where ( 'id' , $id ) -> first ();
if ( is_null ( $team )) {
return response () -> json ([ 'success' => false , 'message' => 'Team not found.' , 'docs' => 'https://coolify.io/docs/api-reference/get-team-by-teamid' ], 404 );
}
2024-07-02 10:15:58 +00:00
$team = $this -> removeSensitiveData ( $team );
2024-07-01 14:26:50 +00:00
return response () -> json ([
'success' => true ,
'data' => serializeApiResponse ( $team ),
]);
}
public function members_by_id ( Request $request )
{
$id = $request -> id ;
$teamId = getTeamIdFromToken ();
if ( is_null ( $teamId )) {
return invalidTokenResponse ();
}
$teams = auth () -> user () -> teams ;
$team = $teams -> where ( 'id' , $id ) -> first ();
if ( is_null ( $team )) {
return response () -> json ([ 'success' => false , 'message' => 'Team not found.' , 'docs' => 'https://coolify.io/docs/api-reference/get-team-by-teamid-members' ], 404 );
}
2024-07-02 10:15:58 +00:00
$members = $team -> members ;
2024-07-01 14:26:50 +00:00
return response () -> json ([
'success' => true ,
2024-07-02 10:15:58 +00:00
'data' => serializeApiResponse ( $members ),
2024-07-01 14:26:50 +00:00
]);
}
public function current_team ( Request $request )
{
$teamId = getTeamIdFromToken ();
if ( is_null ( $teamId )) {
return invalidTokenResponse ();
}
$team = auth () -> user () -> currentTeam ();
return response () -> json ([
'success' => true ,
'data' => serializeApiResponse ( $team ),
]);
}
public function current_team_members ( Request $request )
{
$teamId = getTeamIdFromToken ();
if ( is_null ( $teamId )) {
return invalidTokenResponse ();
}
$team = auth () -> user () -> currentTeam ();
return response () -> json ([
'success' => true ,
'data' => serializeApiResponse ( $team -> members ),
]);
}
}