var result = structNew(); var msg = ""; var logFile = "subsite_create.log"; var error = ""; var ws = ""; var logStruct = structNew(); var logArray = arrayNew(1); var createResponse = ''; result.subsiteCreated = false; try { // Check if we are not logged in // OR force login with function argument // OR we are logged into a subsite other than our parent argument subsite if( (variables.ccapi.loggedIn() EQ 'false') OR (arguments.doLogin GT 0) OR ( (arguments.parentSubsite NEQ 0) AND (variables.ccapi.getSubsiteID() NEQ arguments.parentSubsite) ) ) // login to the subsite where the new subsite will be created { // construct the CCAPI object variables.ccapi.initCCAPI(); //ws = variables.ccapi.getWS(); if( arguments.parentSubsite neq 0 ) variables.ccapi.login(arguments.parentSubsite); else variables.ccapi.login(); } // create the subsite ws = variables.ccapi.getWS(); createResponse = ws.createSubsite(ssid=variables.ccapi.getSSID(), sparams=arguments.subsiteData); // check to see if update wasn't successful if( listFirst(createResponse, ":") neq "Success" ) { // check to see if there was an error logging in if( findNoCase(listRest(createResponse, ":"), "login") and not arguments.doLogin ) { // resend this through the login createResponse = variables.ccapi.createSubsite(arguments.subsiteData, arguments.parentSubsite, 1); } if( listFirst(createResponse, ":") neq "Success" ) { logStruct.msg = "Error creating subsite: #arguments.subsiteData.name# - #listRest(createResponse, ':')#"; logStruct.logFile = 'CCAPI_create_subsite.log'; arrayAppend(logArray, logStruct); result.response = createResponse; } else { result.subsiteCreated = "true"; result.response = createResponse; } } else { result.subsiteCreated = "true"; result.response = createResponse; logStruct.msg = "Subsite Created: #arguments.subsiteData.name# - #listRest(createResponse, ':')# - Parent Subsite [#variables.ccapi.getSubsiteID()#]"; logStruct.logFile = 'CCAPI_create_subsite.log'; arrayAppend(logArray, logStruct); } if( variables.ccapi.loggingEnabled() ) variables.utils.bulkLogAppend(logArray); } catch ( ANY e ) { // Error caught, send back the error message result.subsiteCreated = false; result.response = e.message; // Log the error message also logStruct.msg = "#request.formattedTimestamp# - Error [Message: #e.message#] [Details: #e.Details#]"; logStruct.logFile = "CCAPI_create_subsite_errors.log"; variables.utils.bulkLogAppend(logArray); } // Logout variables.ccapi.logout(); var retSubsiteID = 1; var currPath = "/"; var currSubsiteID = 0; var ss_i = ''; // Loop over the subsite names for ( ss_i = 1; ss_i LTE ListLen(arguments.subsitePath,'/'); ss_i = ss_i + 1) { currPath = currPath & ListGetAt(arguments.subsitePath, ss_i, '/') & "/"; // Verify if the subsite exists currSubsiteID = variables.csData.getSubsiteID(currPath); // Does the subsite exist if ( currSubsiteID LTE 0 ){ // Subsite does not exist, then create it currSubsiteID = handleCreateSubsite(currPath); } } retSubsiteID = currSubsiteID; var retSubID = 0; var parentSubPath = ""; var subsiteData = StructNew(); var parentSubID = 0; var subsiteStatus = StructNew(); // Get the parent subsite path parentSubPath = Replace(arguments.subsitePath, "/#ListLast(arguments.subsitePath,'/')#/", "/"); parentSubID = variables.csData.getSubsiteID(parentSubPath); // Build the subsite data struct subsiteData.name = ListLast(arguments.subsitePath,'/'); subsiteData.displayName = ListLast(arguments.subsitePath,'/'); subsiteData.description = ListLast(arguments.subsitePath,'/'); // create the subsite subsiteStatus = createSubsite(subsiteData, parentSubID, 1); // Get the subsite ID for the subsite created retSubID = variables.csData.getSubsiteID(arguments.subsitePath);