33import requests
44from microsoftgraph import exceptions
55from microsoftgraph .decorators import token_required
6- from urllib .parse import urlencode , urlparse
6+ from urllib .parse import urlencode , urlparse , quote_plus
77
88
99class Client (object ):
@@ -87,7 +87,7 @@ def exchange_code(self, redirect_uri, code, office365=False):
8787 response = requests .post (self .AUTHORITY_URL + self .account_type + self .TOKEN_ENDPOINT , data = data )
8888 return self ._parse (response )
8989
90- def refresh_token (self , redirect_uri , refresh_token , office365 = True ):
90+ def refresh_token (self , redirect_uri , refresh_token , office365 = False ):
9191 """
9292
9393 Args:
@@ -114,7 +114,7 @@ def refresh_token(self, redirect_uri, refresh_token, office365=True):
114114 response = requests .post (self .AUTHORITY_URL + self .account_type + self .TOKEN_ENDPOINT , data = data )
115115 return self ._parse (response )
116116
117- def set_token (self , token , office365 = True ):
117+ def set_token (self , token , office365 = False ):
118118 """Sets the Token for its use in this library.
119119
120120 Args:
@@ -463,6 +463,75 @@ def outlook_create_contact_folder(self, **kwargs):
463463 url = "{0}me/contactFolders" .format (self .base_url )
464464 return self ._post (url , ** kwargs )
465465
466+ @token_required
467+ def drive_root_items (self , params = None ):
468+ return self ._get ('https://graph.microsoft.com/beta/me/drive/root' , params = params )
469+
470+ @token_required
471+ def drive_root_children_items (self , params = None ):
472+ return self ._get ('https://graph.microsoft.com/beta/me/drive/root/children' , params = params )
473+
474+ @token_required
475+ def drive_specific_folder (self , folder_id , params = None ):
476+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/children" .format (folder_id )
477+ return self ._get (url , params = params )
478+
479+ @token_required
480+ def drive_create_session (self , item_id , ** kwargs ):
481+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/createSession" .format (item_id )
482+ return self ._post (url , ** kwargs )
483+
484+ @token_required
485+ def drive_refresh_session (self , item_id , ** kwargs ):
486+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/refreshSession" .format (item_id )
487+ return self ._post (url , ** kwargs )
488+
489+ @token_required
490+ def drive_close_session (self , item_id , ** kwargs ):
491+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/closeSession" .format (item_id )
492+ return self ._post (url , ** kwargs )
493+
494+ def excel_get_worksheets (self , item_id , params = None ):
495+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/worksheets" .format (item_id )
496+ return self ._get (url , params = params )
497+
498+ def excel_get_names (self , item_id , params = None ):
499+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/names" .format (item_id )
500+ return self ._get (url , params = params )
501+
502+ def excel_add_worksheet (self , item_id , ** kwargs ):
503+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/worksheets/add" .format (item_id )
504+ return self ._post (url , ** kwargs )
505+
506+ def excel_get_specific_worksheet (self , item_id , worksheet_id , ** kwargs ):
507+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/worksheets/{1}" .format (item_id , quote_plus (worksheet_id ))
508+ return self ._get (url , ** kwargs )
509+
510+ def excel_update_worksheet (self , item_id , worksheet_id , ** kwargs ):
511+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/worksheets/{1}" .format (item_id , quote_plus (worksheet_id ))
512+ return self ._patch (url , ** kwargs )
513+
514+ def excel_get_charts (self , item_id , worksheet_id , ** kwargs ):
515+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/worksheets/{1}/charts" .format (item_id , quote_plus (worksheet_id ))
516+ return self ._get (url , ** kwargs )
517+
518+ def excel_add_chart (self , item_id , worksheet_id , ** kwargs ):
519+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/worksheets/{1}/charts/add" .format (item_id , quote_plus (worksheet_id ))
520+ return self ._post (url , ** kwargs )
521+
522+ def excel_get_tables (self , item_id , ** kwargs ):
523+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/tables" .format (item_id )
524+ return self ._get (url , ** kwargs )
525+
526+ def excel_add_table (self , item_id , ** kwargs ):
527+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/tables/add" .format (item_id )
528+ return self ._post (url , ** kwargs )
529+
530+ def excel_add_row (self , item_id , worksheets_id , table_id , ** kwargs ):
531+ # url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/tables/{1}/rows".format(item_id, quote_plus(table_id))
532+ url = "https://graph.microsoft.com/beta/me/drive/items/{0}/workbook/worksheets/{1}/tables/{2}/rows" .format (item_id , quote_plus (worksheets_id ), quote_plus (table_id ))
533+ return self ._post (url , ** kwargs )
534+
466535 def _get (self , url , ** kwargs ):
467536 return self ._request ('GET' , url , ** kwargs )
468537
@@ -479,14 +548,20 @@ def _delete(self, url, **kwargs):
479548 return self ._request ('DELETE' , url , ** kwargs )
480549
481550 def _request (self , method , url , headers = None , ** kwargs ):
551+ print ("URL EN REQUEST" )
552+ print (url )
553+
482554 _headers = {
483555 'Authorization' : 'Bearer ' + self .token ['access_token' ],
484556 'Accept' : 'application/json' ,
485557 'Content-Type' : 'application/json'
486558 }
487559 if headers :
488560 _headers .update (headers )
489- return self ._parse (requests .request (method , url , headers = _headers , ** kwargs ))
561+ variable = requests .request (method , url , headers = _headers , ** kwargs )
562+ print (variable .url )
563+ print (variable .request .headers )
564+ return self ._parse (variable )
490565
491566 def _parse (self , response ):
492567 status_code = response .status_code
0 commit comments