Scala SDK Samples - Wizards Operations

Get Wizards
              
              
package com.zoho.crm.sample.wizards

import java.util
import com.zoho.crm.api.ParameterMap
import com.zoho.crm.api.customviews.Criteria
import com.zoho.crm.api.wizards.APIException
import com.zoho.crm.api.wizards.ResponseWrapper
import com.zoho.crm.api.wizards.WizardsOperations
import com.zoho.crm.api.wizards.WizardsOperations.GetWizardbyIDParam

object Wizards {
/*
	*   get Wizards 
	 * This method is used to get Wizards
	 * @throws Exception
	 */
    @throws[Exception]
	def getWizards(): Unit = {
		// Get instance of WizardsOperations Class
		val wizardsOperations = new WizardsOperations()

		// Call getWizards method
		val responseOption = wizardsOperations.getWizards()
		if (responseOption.isDefined) { //check response
			var response = responseOption.get
			println("Status Code: " + response.getStatusCode)
			if (util.Arrays.asList(204, 304).contains(response.getStatusCode)) {
				println(if (response.getStatusCode == 204) "No Content"
				else "Not Modified")
				return
			}

			// Check if expected response is received
			if (response.isExpected) {
				// Get object from response
				val responseHandler = response.getObject

				responseHandler match {
					case responseWrapper: ResponseWrapper => //Get the received ResponseWrapper instance

						// Get the list of obtained Wizard instances
						val wizards = responseWrapper.getWizards

						for (wizard <- wizards) {
							// Get the CreatedTime of each Wizard
							println("Wizard CreatedTime: " + wizard.getCreatedTime())

							// Get the ModifiedTime of each Wizard
							println("Wizard ModifiedTime: " + wizard.getModifiedTime())

							// Get the Module of each Wizard
							val moduleOption = wizard.getModule()
							if (moduleOption.isDefined) {
								val module = moduleOption.get
								// Get the ID of Module
								println("Wizard Module ID: " + module.getId())

								// Get the apiName of Module
								println("Wizard Module apiName: " + module.getAPIName())
							}
							// Get the Name of each Wizard
							println("Wizard Name: " + wizard.getName())

							//Get the  Modified by
							val modifiedByOption = wizard.getModifiedBy()

							if (modifiedByOption.isDefined) {
								val modifiedBy = modifiedByOption.get
								println("Wizard Modified By Name : " + modifiedBy.getName())
								println("Wizard Modified By id : " + modifiedBy.getId())
								println("Wizard Modified By Name : " + modifiedBy.getEmail())

							}

							val profiles = wizard.getProfiles()

							for (profile <- profiles) {
								// Get the  Name of each Profile
								println("Wizard Profile  Name: " + profile.getName())

								// Get the ID of Attachment
								println("Wizard Profile ID: " + profile.getId())
							}

							// Get the active of each Wizard
							println("Wizard Active: " + wizard.getActive())

							// Get the containers of each Wizard
							val containers = wizard.getContainers()

							for (container <- containers) {
								// Get the id of each Container
								println("Wizard Container ID: " + container.getId())

								// Get the layout  of each Container
								val layoutOption = container.getLayout()
								if (layoutOption.isDefined) {
									val layout = layoutOption.get
									//get  Layout ID
									println("Wizard Container Layout ID: " + layout.getId())
									//get  Layout Name
									println("Wizard Container Layout Name: " + layout.getName())
								}
								val chartDataOption = container.getChartData()
								if (chartDataOption.isDefined) {
									val chartData = chartDataOption.get
									//get  Chart nodes
									val nodes = chartData.getNodes()

									for (node <- nodes) {
										//get Node poistion y
										println("Chart Data Node poistion y: " + node.getPosY())
										//get Node poistion x
										println("Chart Data Node poistion X: " + node.getPosX())
										//get Node start node
										println("Chart Data Node start node: " + node.getStartNode())
										//get Node screen

										val nodeScreenOption = node.getScreen()
										if (nodeScreenOption.isDefined) {
											val nodeScreen = nodeScreenOption.get
											//get  screens id
											println(" screens id: " + nodeScreen.getId())
											//get  display label
											println("display label: " + nodeScreen.getDisplayLabel())
										}

									}
									//get  Chart connections
									val connections = chartData.getConnections()
									for (connection <- connections) {
										//get connection target screen
										val connectionScreenOption = connection.getTargetScreen()
										if (connectionScreenOption.isDefined) {
											val connectionScreen = connectionScreenOption.get
											//get  screens id
											println(" screens id: " + connectionScreen.getId())
											//get  display label
											println("display label: " + connectionScreen.getDisplayLabel())
										}
										//get connection source button
										val connectionButtonOption = connection.getSourceButton()
										if (connectionButtonOption.isDefined) {
											val connectionButton = connectionButtonOption.get
											//get  connectionButton id
											println(" button id: " + connectionButton.getId())
											//get  display label
											println("display label: " + connectionButton.getDisplayLabel())
										}
									}
									//get  Chart Data Canvas width
									println("Chart Data Canvas width: " + chartData.getCanvasWidth())
									//get  Chart Data Canvas height
									println("Chart Data Canvas height: " + chartData.getCanvasHeight())
								}

								val screens = container.getScreens()

								if (screens != null) {
									for (screen <- screens) {
										//get  screens id
										println(" screens id: " + screen.getId())
										//get  display label
										println("display label: " + screen.getDisplayLabel())
										//get  segments
										val segments = screen.getSegments()
										for (segment <- segments) {
											//get  screens segment id
											println("screens segment id: " + segment.getId())
											//get  screens segment sequence number
											println("screens segment equence number: " + segment.getSequenceNumber())
											//get  screens segment display label
											println("screens segment display label: " + segment.getDisplayLabel())
											//get  screens segment type
											println("screens segment type: " + segment.getType())
											//get  screens segment column count
											println("screens segment column count: " + segment.getColumnCount())
											val fields = segment.getFields()
											for (field <- fields) {
												//get  screens segment field id
												println("screens segment field id: " + field.getId())
												//get  screens segment field apiname
												println("screens segment field apiname: " + field.getAPIName())
											}
											//get  screens segment Buttons
											val buttons = segment.getButtons()
											for (button <- buttons) {
												//get  screens segment Button critera
												val criteriaOption = button.getCriteria()

												if (criteriaOption.isDefined) {
													val criteria = criteriaOption.get
													printCriteria(criteria)
												}
												//get Button target screen
												val targetScreenOption = button.getTargetScreen()
												if (targetScreenOption.isDefined) {
													val targetScreen = targetScreenOption.get
													//get Button target screen id
													println(" Button targetScreen id : " + targetScreen.getId())
													//get Button target screen display label
													println(" Button targetScreen display label: " + targetScreen.getDisplayLabel())
												}
												//get Button display label
												println(" Button display label: " + button.getDisplayLabel())
												//get Button id
												println(" Button id: " + button.getId())
												//get Button display label
												println(" Button display label: " + button.getDisplayLabel())
												//get Button type
												println(" Button type: " + button.getType())
												//get Button bg color
												println(" Button bg color: " + button.getBackgroundColor())
												//get Button sequence number
												println(" Button sequence number: " + button.getSequenceNumber())
												//get Button color
												println(" Button color: " + button.getColor())
												//get Button shape
												println(" Button shape: " + button.getShape())
												//get Button sequence number
												println(" Button sequence number: " + button.getSequenceNumber())
											}
										}
									}
								}
							}

							//Get the  Created by
							val createdByOption = wizard.getCreatedBy()

							if (createdByOption.isDefined) {
								val createdBy = createdByOption.get
								println("Wizard Created By Name : " + createdBy.getName())
								println("Wizard Created By id : " + createdBy.getId())
								println("Wizard Created By Name : " + createdBy.getEmail())

							}

							//Get the  parent Wizard
							val parentWizardOption = wizard.getParentWizard()

							if (parentWizardOption.isDefined) {
								val parentWizard = parentWizardOption.get
								println("Wizard parent Wizard  id : " + parentWizard.getId())
								println("Wizard parent Wizard  Name : " + parentWizard.getName())

							}
							// Get the draft of each Wizard
							println("Wizard Draft: " + wizard.getDraft())

							// Get the ID of each Wizard
							println("Wizard ID: " + wizard.getId())
						}
					case _ => //Check if the request returned an exception
						responseHandler match {
							case exception: APIException => //Get the received APIException instance
								//Get the Status
								println("Status: " + exception.getStatus.getValue)
								//Get the Code
								println("Code: " + exception.getCode.getValue)
								println("Details: ")

								exception.getDetails.foreach(entry => {
									println(entry._1 + ": " + entry._2)
								})
								//Get the Message
								println("Message: " + exception.getMessage.getValue)
							case _ =>
						}
				}
			}
			else { //If response is not as expected
				//Get model object from response
				val responseObject = response.getModel
				//Get the response object's class
				val clas = responseObject.getClass
				//Get all declared fields of the response class
				val fields = clas.getDeclaredFields
				for (field <- fields) { //Get each value
					println(field.getName + ":" + field.get(responseObject))
				}
			}
		}
	}
}
class Wizards {}

 
Get Wizard by ID
              
              
package com.zoho.crm.sample.wizards

import java.util
import com.zoho.crm.api.ParameterMap
import com.zoho.crm.api.customviews.Criteria
import com.zoho.crm.api.wizards.APIException
import com.zoho.crm.api.wizards.ResponseWrapper
import com.zoho.crm.api.wizards.WizardsOperations
import com.zoho.crm.api.wizards.WizardsOperations.GetWizardbyIDParam

object Wizards {
/*
	 *   get Wizard 
	 * This method is used to get single Wizard
	 * @param wizardID  id of the wizard
	 * @throws Exception
	 */
	def getWizard(wizardID: Long): Unit = { //example,
		// Get instance of WizardsOperations Class
		val wizardsOperations = new WizardsOperations()
		val paramInstance = new ParameterMap()
		// Call getWizardbyid method
		paramInstance.add(new GetWizardbyIDParam().layoutId, "3477061000000091055")
		val responseOption = wizardsOperations.getWizardById(wizardID, Option(paramInstance))
		if (responseOption.isDefined) {
			var response = responseOption.get
			println("Status Code: " + response.getStatusCode)
			if (util.Arrays.asList(204, 304).contains(response.getStatusCode)) {
				println(if (response.getStatusCode == 204) "No Content"
				else "Not Modified")
				return
			}

			// Check if expected response is received
			if (response.isExpected) {
				val responseHandler = response.getObject
				responseHandler match {
					case responseWrapper: ResponseWrapper =>

						// Get the list of obtained Wizard instances
						val wizards = responseWrapper.getWizards()

						for (wizard <- wizards) {
							// Get the CreatedTime of each Wizard
							println("Wizard CreatedTime: " + wizard.getCreatedTime())

							// Get the ModifiedTime of each Wizard
							println("Wizard ModifiedTime: " + wizard.getModifiedTime())

							// Get the Module of each Wizard
							val moduleOption = wizard.getModule()
							if (moduleOption.isDefined) {
								val module = moduleOption.get
								// Get the ID of Module
								println("Wizard Module ID: " + module.getId())

								// Get the apiName of Module
								println("Wizard Module apiName: " + module.getAPIName())
							}
							// Get the Name of each Wizard
							println("Wizard Name: " + wizard.getName())

							//Get the  Modified by
							val modifiedByOption = wizard.getModifiedBy()

							if (modifiedByOption.isDefined) {
								val modifiedBy = modifiedByOption.get
								println("Wizard Modified By Name : " + modifiedBy.getName())
								println("Wizard Modified By id : " + modifiedBy.getId())
								println("Wizard Modified By Name : " + modifiedBy.getEmail())
							}

							val profiles = wizard.getProfiles()

							for (profile <- profiles) {
								// Get the  Name of each Profile
								println("Wizard Profile  Name: " + profile.getName())

								// Get the ID of Attachment
								println("Wizard Profile ID: " + profile.getId())
							}

							// Get the active of each Wizard
							println("Wizard Active: " + wizard.getActive())

							// Get the containers of each Wizard
							val containers = wizard.getContainers()
							for (container <- containers) {
								// Get the id of each Container
								println("Wizard Container ID: " + container.getId())

								// Get the layout  of each Container
								val layoutOption = container.getLayout()
								if (layoutOption.isDefined) {
									val layout = layoutOption.get
									//get  Layout ID
									println("Wizard Container Layout ID: " + layout.getId())
									//get  Layout Name
									println("Wizard Container Layout Name: " + layout.getName())
								}
								val chartDataOption = container.getChartData()
								if (chartDataOption.isDefined) {
									val chartData = chartDataOption.get

									//get  Chart nodes
									val nodes = chartData.getNodes()

									for (node <- nodes) {
										//get Node poistion y
										println("Chart Data Node poistion y: " + node.getPosY())
										//get Node poistion x
										println("Chart Data Node poistion X: " + node.getPosX())
										//get Node start node
										println("Chart Data Node start node: " + node.getStartNode())
										//get Node screen

										val nodeScreenOption = node.getScreen()
										if (nodeScreenOption.isDefined) {
											val nodeScreen = nodeScreenOption.get
											//get  screens id
											println(" screens id: " + nodeScreen.getId())
											//get  display label
											println("display label: " + nodeScreen.getDisplayLabel())
										}
									}
									//get  Chart connections
									val connections = chartData.getConnections()
									if (connections != null) {
										for (connection <- connections) {
											//get connection target screen
											val connectionScreenOption = connection.getTargetScreen()
											if (connectionScreenOption.isDefined) {
												val connectionScreen = connectionScreenOption.get
												//get  screens id
												println(" screens id: " + connectionScreen.getId())
												//get  display label
												println("display label: " + connectionScreen.getDisplayLabel())
											}
											//get connection source button
											val connectionButtonOption = connection.getSourceButton()
											if (connectionButtonOption.isDefined) {
												val connectionButton = connectionButtonOption.get
												//get  connectionButton id
												println(" button id: " + connectionButton.getId())
												//get  display label
												println("display label: " + connectionButton.getDisplayLabel())
											}
										}
									}
									//get  Chart Data Canvas width
									println("Chart Data Canvas width: " + chartData.getCanvasWidth())
									//get  Chart Data Canvas height
									println("Chart Data Canvas height: " + chartData.getCanvasHeight())
								}

								val screens = container.getScreens()

								if (screens != null) {
									for (screen <- screens) {
										//get  screens id
										println(" screens id: " + screen.getId())
										//get  display label
										println("display label: " + screen.getDisplayLabel())
										//get  segments
										val segments = screen.getSegments()
										for (segment <- segments) {
											//get  screens segment id
											println("screens segment id: " + segment.getId())
											//get  screens segment sequence number
											println("screens segment equence number: " + segment.getSequenceNumber())
											//get  screens segment display label
											println("screens segment display label: " + segment.getDisplayLabel())
											//get  screens segment type
											println("screens segment type: " + segment.getType())
											//get  screens segment column count
											println("screens segment column count: " + segment.getColumnCount())
											val fields = segment.getFields()
											if (fields != null) {
												for (field <- fields) {
													//get  screens segment field id
													println("screens segment field id: " + field.getId())
													//get  screens segment field apiname
													println("screens segment field apiname: " + field.getAPIName())
												}
											}
											//get  screens segment Buttons
											val buttons = segment.getButtons()
											if (buttons != null) {
												for (button <- buttons) {
													//get  screens segment Button critera
													val criteriaOption = button.getCriteria()

													if (criteriaOption.isDefined) {
														val criteria = criteriaOption.get
														printCriteria(criteria)
													}
													//get Button target screen
													val targetScreenOption = button.getTargetScreen()
													if (targetScreenOption.isDefined) {
														val targetScreen = targetScreenOption.get
														//get Button target screen id
														println(" Button targetScreen id : " + targetScreen.getId())
														//get Button target screen display label
														println(" Button targetScreen display label: " + targetScreen.getDisplayLabel())
													}
													//get Button display label
													println(" Button display label: " + button.getDisplayLabel())
													//get Button id
													println(" Button id: " + button.getId())
													//get Button display label
													println(" Button display label: " + button.getDisplayLabel())
													//get Button type
													println(" Button type: " + button.getType())
													//get Button bg color
													println(" Button bg color: " + button.getBackgroundColor())
													//get Button sequence number
													println(" Button sequence number: " + button.getSequenceNumber())
													//get Button color
													println(" Button color: " + button.getColor())
													//get Button shape
													println(" Button shape: " + button.getShape())
													//get Button sequence number
													println(" Button sequence number: " + button.getSequenceNumber())
												}
											}
										}
									}
								}
							}

							//Get the  Created by
							val createdByOption = wizard.getCreatedBy()

							if (createdByOption.isDefined) {
								val createdBy = createdByOption.get
								println("Wizard Created By Name : " + createdBy.getName())
								println("Wizard Created By id : " + createdBy.getId())
								println("Wizard Created By Name : " + createdBy.getEmail())
							}

							//Get the  parent Wizard
							val parentWizardOption = wizard.getParentWizard()

							if (parentWizardOption.isDefined) {
								val parentWizard = parentWizardOption.get
								println("Wizard Folder  id : " + parentWizard.getId())
								println("Wizard Folder  Name : " + parentWizard.getName())

							}
							// Get the draft of each Wizard
							println("Wizard Draft: " + wizard.getDraft())

							// Get the ID of each Wizard
							println("Wizard ID: " + wizard.getId())
						}
					case exception: APIException =>
						println("Status: " + exception.getStatus.getValue)
						println("Code: " + exception.getCode.getValue)
						println("Details: ")

						exception.getDetails.foreach(entry => {
							println(entry._1 + ": " + entry._2)
						})
						println("Message: " + exception.getMessage.getValue)
					case _ =>
				}
			}
			else {
				val responseObject = response.getModel
				val clas = responseObject.getClass
				val fields = clas.getDeclaredFields
				for (field <- fields) {
					println(field.getName + ":" + field.get(responseObject))
				}
			}
		}
	}
}
class Wizards{}