
#######
MSGraph
#######


****
NAME
****


Kernel::System::MSGraph - Microsoft Graph API request helper


***********
DESCRIPTION
***********


Builds HTTP requests against Microsoft Graph (OAuth 2 bearer token, optional JSON decode, pagination \ ``NextLink``\ ).


****************
PUBLIC INTERFACE
****************


new()
=====


Create an MSGraph backend object. Do not use it directly; use ObjectManager instead:


.. code-block:: perl

     my $MSGraphObject = $Kernel::OM->Get('Kernel::System::MSGraph');




****************
_GetGraphLogin()
****************


Retrieves login string for API call:
If not 'me' or starting with 'users/' already, it will return 'users/' with login appended.


.. code-block:: perl

     my $GraphLogin = $MSGraphObject->_GetGraphLogin(
         Login => 'someone@example.org',
     );



******************
ExecuteOperation()
******************


Executes a Graph operation and returns the (decoded) response.


.. code-block:: perl

     my $Response = $MSGraphObject->ExecuteOperation(
         CommunicationLogObject    => $CommunicationLogObject,
         Host                      => 'graph.microsoft.com',
         Login                     => 'someone@example.org',
         OAuth2Token               => '...',
         Operation                 => '/messages/id',
         RequestType               => 'GET', # optional; POST, DELETE, etc. Defaults to GET
         RequestHeaders            => {}, # optional, headers
         RequestData               => ..., # optional, payload of request
         JSONDecodeResponseContent => 1, # optional, defaults to 1
 
         # Optional; link returned by Graph for pagination.
         # If given, parameter Operation will be ignored.
         # Only for request type GET.
         NextLink => 'https://...',
 
         Timeout             => 60, # optional, timeout for request, default: WebUserAgent::Timeout // 15
         Proxy               => '...', # optional, default: Config WebUserAgent::Proxy
         NoProxy             => '', # optional, default: Config WebUserAgent::NoProxy
         SkipSSLVerification => 0, # optional, default: Config WebUserAgent::DisableSSLVerification
     );
 
     Returns 1 if request was successful but did not return any content.



