Upload files to "source/Teams"
This commit is contained in:
parent
6586af3f72
commit
9feed5d6d4
54
source/Teams/Teams.py
Normal file
54
source/Teams/Teams.py
Normal file
@ -0,0 +1,54 @@
|
||||
import requests
|
||||
import pandas as pd
|
||||
from neo4j import GraphDatabase
|
||||
|
||||
def createReporters(startMail: str):
|
||||
|
||||
url = 'https://graph.microsoft.com/v1.0/users/' + startMail + '/directReports'
|
||||
graph_result = requests.get(url=url, headers=headers)
|
||||
if graph_result.status_code == 200:
|
||||
with graphDB_Driver.session() as graphDB_Session:
|
||||
for i in range(len(graph_result.json()["value"])):
|
||||
graphDB_Session.run("CREATE (u:USER {displayName: $displayName, id: $id, mail: $mail, jobTitle: $jobTitle})",
|
||||
id=graph_result.json()["value"][i]['id'],
|
||||
displayName=graph_result.json()["value"][i]['displayName'],
|
||||
mail=graph_result.json()["value"][i]['mail'],
|
||||
jobTitle=graph_result.json()["value"][i]['jobTitle'],
|
||||
officeLocation=graph_result.json()["value"][i]['officeLocation'])
|
||||
graphDB_Session.run("MATCH (a:USER {mail: $vorgesetzter}), (b:USER {mail: $mail}) CREATE (a)-[:vorgesetzter]->(b)",
|
||||
mail=graph_result.json()["value"][i]['mail'],
|
||||
vorgesetzter=startMail)
|
||||
createReporters(graph_result.json()["value"][i]['mail'])
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Copy access_token and specify the MS Graph API endpoint you want to call, e.g. 'https://graph.microsoft.com/v1.0/groups' to get all groups in your organization
|
||||
access_token = 'eyJ0eXAiOiJKV1QiLCJub25jZSI6IkF2YURwQ3F2M3Z3SkhIbk5wNFlCMEJyZFR3X3lzWnZzdzl3dnhWVlNJT2ciLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWMFRPSSIsImtpZCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWMFRPSSJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9lMGI1OGI4Zi02NTI0LTQzNTQtYTY3Mi00MmIwZDIzNmZhNmQvIiwiaWF0IjoxNjcwMjY3MDE4LCJuYmYiOjE2NzAyNjcwMTgsImV4cCI6MTY3MDI3MTI1NCwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFWUUFxLzhUQUFBQTJBZlNmaDVwR0JuL2VxTG0vSENEYXZYL1BYSHRJNWpRbEZ2RS94akIvOXdDajE3QnFGalY1MWJIb1FucnRYNXdmTzRzak9yYUNDS3hkVmRPclgwbHVadWptZk51TmgxRG1PZ0pENDJZL0RBPSIsImFtciI6WyJwd2QiLCJtZmEiXSwiYXBwX2Rpc3BsYXluYW1lIjoiR3JhcGggRXhwbG9yZXIiLCJhcHBpZCI6ImRlOGJjOGI1LWQ5ZjktNDhiMS1hOGFkLWI3NDhkYTcyNTA2NCIsImFwcGlkYWNyIjoiMCIsImRldmljZWlkIjoiMmE3OWVlMjItMmQ0MC00MGEwLTlmYzktNWE2MjkwMGUzMTRlIiwiZmFtaWx5X25hbWUiOiJXaWVkZW1hbm4iLCJnaXZlbl9uYW1lIjoiTGFzc2UiLCJpZHR5cCI6InVzZXIiLCJpcGFkZHIiOiIyLjIwNi4xODcuMTg4IiwibmFtZSI6Ikxhc3NlIFdpZWRlbWFubiIsIm9pZCI6ImY0OGQ2MTg2LTE3OTgtNGYyNC1hY2I1LWEwNTgxNWJhZTM4MSIsIm9ucHJlbV9zaWQiOiJTLTEtNS0yMS0xMjI3NTY4MjkzLTEyOTE3OTQxMjgtNjIzNjQ4MDk5LTE4MDAzIiwicGxhdGYiOiI1IiwicHVpZCI6IjEwMDMyMDAwREQ0QTQ3MTQiLCJyaCI6IjAuQVhNQWo0dTE0Q1JsVkVPbWNrS3cwamI2YlFNQUFBQUFBQUFBd0FBQUFBQUFBQUJ6QUVzLiIsInNjcCI6IkRldmljZU1hbmFnZW1lbnRBcHBzLlJlYWQuQWxsIERldmljZU1hbmFnZW1lbnRBcHBzLlJlYWRXcml0ZS5BbGwgRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb24uUmVhZC5BbGwgRGV2aWNlTWFuYWdlbWVudENvbmZpZ3VyYXRpb24uUmVhZFdyaXRlLkFsbCBEZXZpY2VNYW5hZ2VtZW50TWFuYWdlZERldmljZXMuUmVhZC5BbGwgRGV2aWNlTWFuYWdlbWVudE1hbmFnZWREZXZpY2VzLlJlYWRXcml0ZS5BbGwgRGV2aWNlTWFuYWdlbWVudFNlcnZpY2VDb25maWcuUmVhZC5BbGwgRGV2aWNlTWFuYWdlbWVudFNlcnZpY2VDb25maWcuUmVhZFdyaXRlLkFsbCBEaXJlY3RvcnkuUmVhZC5BbGwgb3BlbmlkIHByb2ZpbGUgVXNlci5SZWFkIFVzZXIuUmVhZC5BbGwgVXNlci5SZWFkV3JpdGUgVXNlci5SZWFkV3JpdGUuQWxsIGVtYWlsIiwic2lnbmluX3N0YXRlIjpbImR2Y19tbmdkIiwiZHZjX2NtcCIsImttc2kiXSwic3ViIjoidDdiVldIeU00MVBoRDY1bXRweTE3cW5KdTk0ZC03WHBGQkFld0hJTXQ2WSIsInRlbmFudF9yZWdpb25fc2NvcGUiOiJFVSIsInRpZCI6ImUwYjU4YjhmLTY1MjQtNDM1NC1hNjcyLTQyYjBkMjM2ZmE2ZCIsInVuaXF1ZV9uYW1lIjoiTGFzc2UuV2llZGVtYW5uQHBwaS5kZSIsInVwbiI6Ikxhc3NlLldpZWRlbWFubkBwcGkuZGUiLCJ1dGkiOiJwbU5rSmt0amJrR2Z4a210YnpiTUFRIiwidmVyIjoiMS4wIiwid2lkcyI6WyJiNzlmYmY0ZC0zZWY5LTQ2ODktODE0My03NmIxOTRlODU1MDkiXSwieG1zX3N0Ijp7InN1YiI6InN4SlMwaUpWcmNreUxnWDlxVGxkTG9WWnpocFRfdUlIRzU1SF9jOXJmV2MifSwieG1zX3RjZHQiOjE1OTgyNjAyNzksInhtc190ZGJyIjoiRVUifQ.e64Rp3gRJpKGX86Y6UqX4mtTO7nXPlIYpLl5S-hdrEU37PJl5Mq8HNSTPAyxua5cosscGvPLY7-OOYfv3LCO9gUnfTTdlfliFebSGepu6QkmXyns2H0GlV5UEGnFNlEZemWwZ8ZoAf20_sn07PBfo67423bcI41SSPNLvtpCOLNq-UdlxAH_W02nPgOMS1sCCMiY7Utnfi5N5XuiLLEUjL11x347O7q83ichLOmzGRRgxjPY2BQSOHWY1HRrm1i9v60glE2Vk3S2MDvrYgjF0wxzhzTA3h7EAS4jykLj1xwep43ts57718uajkBmDOKez4zUsdZ4GJQ2FR7QrGPbMg'
|
||||
headers = {
|
||||
'Authorization': access_token
|
||||
}
|
||||
|
||||
# neo4j Database
|
||||
uri = "bolt://localhost:7687"
|
||||
userName = "neo4j"
|
||||
password = "org"
|
||||
graphDB_Driver = GraphDatabase.driver(uri, auth=(userName, password))
|
||||
|
||||
startMail = 'Sascha.Daesler@ppi.de'
|
||||
#startMail = 'Mirko.Kuehne@ppi.de'
|
||||
url = 'https://graph.microsoft.com/v1.0/users/' + startMail
|
||||
graph_result = requests.get(url=url, headers=headers)
|
||||
|
||||
with graphDB_Driver.session() as graphDB_Session:
|
||||
graphDB_Session.run("""CREATE (u:USER {displayName: $displayName,
|
||||
id: $id,
|
||||
mail: $mail,
|
||||
title: $jobTitle,
|
||||
office: $officeLocation})""",
|
||||
id=graph_result.json()['id'],
|
||||
displayName=graph_result.json()['displayName'],
|
||||
mail=graph_result.json()['mail'],
|
||||
jobTitle=graph_result.json()['jobTitle'],
|
||||
officeLocation=graph_result.json()['officeLocation'])
|
||||
|
||||
createReporters(startMail)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user