Assume the connector ID in these examples will be graph
Root Folder
GET /3sixty-admin/api/repo/graph/rootfolderid
You should receive the following:
{ "success": true, "results": { "folderPath": "/Shared Documents", "additionalInfo": { "siteId": "simflofy.sharepoint.com,bfc93f6e-6eed-4f27-8aa8-72509a410d3b,a357fae5-24f9-464c-8087-cc1594eed1d4" }, "folderName": "Shared Documents", "folderId": "b!bj_Jv-1uJ0-KqHJQmkENO-X6V6P5JExGgIfMFZTu0dSZbZes5ncJT7CQyPGcAqVS" } }
It should be noted that this is not the common form a folder Id will take. MSGraph treats the root folder of each Library as a drive, so this is actually a Drive ID.
Upload a File
POST /api/repo/graph/file?folderId=01WNAC6Z4BAYBXXIMILVBLXKCZ6K3VVNHJ&fileName=newfile.txt&type=MetaDocument
Note: The file content needs to be set as part of a multi-part form (EDITING NOTE link testing with postman here)
Note: The folderId can be a path off of the root library. Such as /test.
{ "success": true, "results": { "id": "01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7" } }
Get ID By Path
GET api/repo/graph/idbypath?fileName=newfile.txt&folderPath=/tester
{ "success": true, "results": "01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7" }
Update File Content
GET /api/repo/graph/updateContent?fileId=01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7
{ "success": true, "results": { "id": "01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7" } }
Get File Properties
GET /api/repo/graph/properties?id=01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7
{ "success": true, "results": { "Modified": { "queryName": "Modified", "value": "2021-09-14T17:29:46Z", "displayName": "Modified" }, "LinkFilename": { "queryName": "LinkFilename", "value": "newfile.txt", "displayName": "LinkFilename" }, "ContentType": { "queryName": "ContentType", "value": "MetaDocument", "displayName": "ContentType" }, ... }
Update Files Properties
GET /api/repo/graph/updateProperties?fileId=01WNAC6ZYYYWDZOWH2DFH3LRHT7MWF5L2R&3SixtyText=metafield
{ "success": true, "results": { "id": "01WNAC6Z2N7DMHZUXP7FGKZ6HS737U7AGD" } }
Folder Items
GET /api/repo/graph/folderitems?id=01WNAC6Z4BAYBXXIMILVBLXKCZ6K3VVNHJ
{ "success": true, "results": { "01WNAC6Z64FFID4E5VJBD354DSN7TZLVGY": { "ParentId": "01WNAC6Z4BAYBXXIMILVBLXKCZ6K3VVNHJ", "LastModifiedDateTime": "2021-09-10T15:32:14Z", "ContentType": "text/plain", "WebUrl": "https://simflofy.sharepoint.com/sites/Dev/Shared%20Documents/tester/FileB.txt", "eTag": "\"{3E5029DC-B513-4748-BEF0-726FE795D4D8},1\"", "Id": "01WNAC6Z64FFID4E5VJBD354DSN7TZLVGY", "CreatedDateTime": "2021-09-10T15:32:14Z", "Name": "FileB.txt" }, "01WNAC6Z2N7DMHZUXP7FGKZ6HS737U7AGD": { "ParentId": "01WNAC6Z4BAYBXXIMILVBLXKCZ6K3VVNHJ", "LastModifiedDateTime": "2021-09-13T20:01:27Z", "ContentType": "text/plain", "WebUrl": "https://simflofy.sharepoint.com/sites/Dev/Shared%20Documents/tester/newfile.txt", "eTag": "\"{7CD8F84D-EFD2-4CF9-ACF8-F2FEFF4F80C3},2\"", "Id": "01WNAC6Z2N7DMHZUXP7FGKZ6HS737U7AGD", "CreatedDateTime": "2021-09-13T20:01:27Z", "Name": "newfile.txt" }, "01WNAC6Z3BPNL7PIMLUBFK57GX23WAMLK7": { "ParentId": "01WNAC6Z4BAYBXXIMILVBLXKCZ6K3VVNHJ", "LastModifiedDateTime": "2021-09-09T19:49:55Z", "ChildCount": "1", "WebUrl": "https://simflofy.sharepoint.com/sites/Dev/Shared%20Documents/tester/10k", "eTag": "\"{F7577B61-8BA1-4AA0-AEFC-D7D6EC062D5F},1\"", "Id": "01WNAC6Z3BPNL7PIMLUBFK57GX23WAMLK7", "CreatedDateTime": "2021-09-09T19:49:55Z", "Name": "10k" } } }
Create Folder
POST /api/repo/graph/folder?path=/testfolder
{ "success": true, "results": { "id": "01WNAC6Z6RFRXOGYJCYBDIU3TPKQQNDBB6" } }
Delete a file or folder
DELETE /api/repo/graph/delete?id=01WNAC6Z6RFRXOGYJCYBDIU3TPKQQNDBB6
{ "success": true }
Get Permissions
GET /api/repo/graph/properties?acls=01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7
{ "success": true, "results": [ "Dev Owners:owner", "Dev Visitors:read", "Dev Members:write", "Dev:owner" ] }
Change Permissions
Requires a JSON as a request body in the following format:
{"Dev Members":"read"} POST /api/repo/graph/properties?acls=01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7
{ "success": true, "results": [ "Dev Owners:owner", "Dev Visitors:read", "Dev Members:read", "Dev:owner" ] }
Delete Permissions
DELETE /api/repo/graph/properties?acls=01WNAC6Z32P4QVKHLA7ZC2SZH7IYTSDON7&aclId=Dev Visitors
The DELETE endpoint will not return any additional information, but a further call to retrieve the permissions should show the following.
{ "success": true, "results": [ "Dev Owners:owner", "Dev Members:read", "Dev:owner" ] }
Get Library Types
Example response and ids are truncated for readability GET /api/repo/graph/types
{ "success": true, "results": { .... "Task": "0x0108", "Invoice": "0x0101006248104F6C684C46B570A09939521E3A", "Issue": "0x0103", "MetaFolder": "0x012000AB92FFACCC027F4289957CAC503C4F63", "Workflow Task": "0x010801", "Timecard": "0x0100C30DDA8EDB2E434EA22D793D9EE42058", "Holiday": "0x01009BE2AB5291BF4C1A986910BD278E4F18", "MetaDocument": "0x0101009BF5E42EF312544B9224A53A7FF98D60…..", "Schedule": "0x0102007DBDC1392EAF4EBBBF99E41D8922B264", ... } }
Get Type Columns
GET /api/repo/graph/typeDef?typeId=MetaDocument
or GET /api/repo/graph/typeDef?typeId=0x0101009BF5E42EF312544B9224A53A7FF98D60
{ "success": true, "results": { "siteId": "simflofy.sharepoint.com,bfc93f6e-6eed-4f27-8aa8-72509a410d3b,a357fae5-24f9-464c-8087-cc1594eed1d4", "parentId": "0x0101009BF5E42EF312544B9224A53A7FF98D60", "properties": [ {.....}, { "Display Name": "3SixtyDate", "Min Value": 0, "Options": [], "Max Value": 0, "Description": "", "Property Type": "DATETIME", "Value": "", "Id": "3SixtyDate", "Is Required": false, "Is Read Only": false }, { "Display Name": "3SixtyNumber", "Min Value": 0, "Options": [], "Max Value": 0, "Description": "", "Property Type": "LONG", "Value": "", "Id": "3SixtyNumber", "Is Required": false, "Is Read Only": false }, { "Display Name": "3SixtyText", "Min Value": 0, "Options": [], "Max Value": 0, "Description": "", "Property Type": "TEXT", "Value": "", "Id": "3SixtyText", "Is Required": false, "Is Read Only": false } ] } }