Commit 4923c32d authored by Marco Schmiedel's avatar Marco Schmiedel

Changes

parent d3848e06
...@@ -2,65 +2,87 @@ ...@@ -2,65 +2,87 @@
namespace Nexus\MicrosoftGraphApi; namespace Nexus\MicrosoftGraphApi;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use GuzzleHttp\Client; use GuzzleHttp\Client as Guzzle;
use Microsoft\Graph\Graph; use Microsoft\Graph\Graph;
use Microsoft\Graph\Model; use Microsoft\Graph\Model;
class Api class Api
{ {
public static function getAccessToken()
private $tenantId;
private $clientId;
private $clientSecret;
private $accessToken;
public function setTenantId($tenantId)
{
$this->tenantId = $tenantId;
}
public function setClientId($clientId)
{
$this->clientId = $clientId;
}
public function setClientSecret($clientSecret)
{ {
$tenantId = env('OAUTH_TENANT_ID'); $this->clientSecret = $clientSecret;
$clientId = env('OAUTH_APP_ID'); }
$clientSecret = env('OAUTH_APP_PASSWORD');
$guzzle = new Client(); public function getAccessToken()
{
$guzzle = new Guzzle();
$url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/v2.0/token'; $url = 'https://login.microsoftonline.com/' . $this->tenantId . '/oauth2/v2.0/token';
$token = json_decode($guzzle->post($url, [ $token = json_decode($guzzle->post($url, [
'form_params' => [ 'form_params' => [
'client_id' => $clientId, 'client_id' => $this->clientId,
'scope' => 'https://graph.microsoft.com/.default', 'scope' => 'https://graph.microsoft.com/.default',
'client_secret' => $clientSecret, 'client_secret' => $this->clientSecret,
'grant_type' => 'client_credentials', 'grant_type' => 'client_credentials',
], ],
])->getBody()->getContents()); ])->getBody()->getContents());
return $token->access_token; $this->accessToken = $token->access_token;
} }
public static function getAllUsers() private function triggerGraph()
{ {
$accessToken = Api::getAccessToken();
// Create a Graph client
$graph = new Graph(); $graph = new Graph();
$graph->setAccessToken($accessToken); $graph->setAccessToken($this->accessToken);
return $graph;
}
$users = $graph->createRequest('GET', '/users') public function getAllUsers()
->setReturnType(Model\User::class) {
->execute(); $result = $this->triggerGraph()->createRequest('GET', '/users')->execute();
if(empty($result))
{
return false;
}
if(!isset($result['value']))
{
return false;
}
return dd($users); return collect($result['value']);
} }
public static function getUser($id) public function getUser($id)
{ {
$accessToken = Api::getAccessToken(); $result = $this->triggerGraph()->createRequest('GET', '/users/'.$id)->execute();
// Create a Graph client
$graph = new Graph();
$graph->setAccessToken($accessToken);
$user = $graph->createRequest('GET', '/users/'.$id)
->setReturnType(Model\User::class)
->execute();
if(empty($result))
{
return false;
}
return dd($user); //return $result;
} }
public static function getUserProfilePhoto($id) public static function getUserProfilePhoto($id)
...@@ -79,7 +101,7 @@ class Api ...@@ -79,7 +101,7 @@ class Api
return dd($userProfilePhoto); return dd($userProfilePhoto);
} }
public static function getUserManager($id) public function getUserManager($id)
{ {
$accessToken = Api::getAccessToken(); $accessToken = Api::getAccessToken();
...@@ -95,7 +117,7 @@ class Api ...@@ -95,7 +117,7 @@ class Api
return dd($userManager); return dd($userManager);
} }
public static function getUserMessages($id) public function getUserMessages($id)
{ {
$accessToken = Api::getAccessToken(); $accessToken = Api::getAccessToken();
...@@ -111,7 +133,7 @@ class Api ...@@ -111,7 +133,7 @@ class Api
return dd($userMessages); return dd($userMessages);
} }
public static function getUserEvents($id) public function getUserEvents($id)
{ {
$accessToken = Api::getAccessToken(); $accessToken = Api::getAccessToken();
...@@ -127,7 +149,7 @@ class Api ...@@ -127,7 +149,7 @@ class Api
return dd($userEvents); return dd($userEvents);
} }
public static function getUserDrive($id) public function getUserDrive($id)
{ {
$accessToken = Api::getAccessToken(); $accessToken = Api::getAccessToken();
...@@ -143,7 +165,7 @@ class Api ...@@ -143,7 +165,7 @@ class Api
return dd($userDrive); return dd($userDrive);
} }
public static function getUserGroups($id) public function getUserGroups($id)
{ {
$accessToken = Api::getAccessToken(); $accessToken = Api::getAccessToken();
...@@ -159,7 +181,7 @@ class Api ...@@ -159,7 +181,7 @@ class Api
return dd($userGroups); return dd($userGroups);
} }
public static function getAllGroups() public function getAllGroups()
{ {
$accessToken = Api::getAccessToken(); $accessToken = Api::getAccessToken();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment