This example demonstrates how to manage content items in Pyramid.
The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.
var pyramidURL = "http://mySite.com/api3/";
let token = callApi("authentication/authenticateUser",{
"userName":"adminUser",
"password":"abc123!"
},"",false);
log("got token "+token);
let defaultTenant=callApi("access/getDefaultTenant",{
},token
);
let tenentPublicFolder = callApi("content/getTenantPublicOrGroupFolder",{
"validRootFolderType": 1,
"tenantId": defaultTenant
},token
);
let folderCreation = callApi("content/createNewFolder",{
"parentFolderId": tenentPublicFolder.id,
"folderName": "new folder"
},token);
let folderId=folderCreation.modifiedList[0].id;
let findRole = callApi("access/findRoles",{
"searchValue": "role1",
"searchMatchType": 2
},token);
let roleId=findRole[0].roleId;
log("found role with id= "+ roleId);
let addRoleToFolder= callApi("content/addRoleToItem",{
"itemId": folderId,
"roleId": roleId
},token);
let file="http://myOtherSite.com/Sample.pie";
let pieFile=readPieFile(file);
let importContent = callApi("content/importContent",{
"rootFolderId": folderId,
"fileZippedData": pieFile,
"clashDefaultOption":1,
"rolesAssignmentType":3
},token);
let itemId=Object.keys(importContent.importDscMap)[0];
let findContentItem = callApi("content/findContentItem",{
"searchString":"import",
"filterTypes":[3],
"searchMatchType":2,
"searchRootFolderType":1
},token);
if(importContent.importDscMap[itemId][0].needsToPerformDsc){
let correntConnectionStringId=importContent.importDscMap[itemId][0].connectionStringProperties.id
let changedDatasource = callApi("dataSources/changeDataSource",{
"fromConnId":correntConnectionStringId,
"toConnId":"55ff277a-53ff-4c39-8f15-5651f1026a2d",
"itemId":itemId
},token);
}
let copyItems = callApi("content/copyItems",{
"itemsForMove":[itemId],
"destinationFolder":tenentPublicFolder.id
},token);
let removeRoleFromCreatedFolder= callApi("content/removeRolesFromItem",{
"itemId": folderId,
"roleIds": [roleId]
},token);
let folderDeletion = callApi("content/purgeContentItems",[
folderCreation.modifiedList[0].id
],token);
let itemSoftDeletion = callApi("content/deleteItems",[
copyItems.modifiedList[0].id
],token);
function log(msg){
document.write(msg);
console.log(msg);
}
function callApi(path,data,token="",parseResult=true){
var xhttp = new XMLHttpRequest();
xhttp.open("POST", pyramidURL+path, false);
xhttp.setRequestHeader("paToken",token)
xhttp.send(JSON.stringify(data));
if(parseResult){
return JSON.parse(xhttp.responseText);
}else{
return xhttp.responseText;
}
}
function readPieFile(file){
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.send(null);
rawFile.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
return request.responseText;
}
}
}