Node JS SDK Samples - Notification Operations

Enable Notifications
              
              
const {NotificationOperations, DisableNotificationsParam, GetNotificationDetailsParam} = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification_operations");
const ParameterMap = require("@zohocrm/nodejs-sdk-2.0/routes/parameter_map").ParameterMap;
const APIException = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/api_exception").APIException;
const SuccessResponse = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/success_response").SuccessResponse;
const BodyWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/body_wrapper").BodyWrapper;
const ActionWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/action_wrapper").ActionWrapper;
const ResponseWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/response_wrapper").ResponseWrapper;
const ZCRMNotification = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification").Notification;

class Notification {
    /**
     *  Enable Notifications 
     * This method is used to Enable Notifications and print the response.
     */
    static async enableNotifications() {
        //Get instance of NotificationOperations Class
        let notificationOperations = new NotificationOperations();

        //Get instance of BodyWrapper Class that will contain the request body
        let bodyWrapper = new BodyWrapper();

        //Array of Notification instances
        let notificationsArray = [];

        //Get instance of Notification Class
        let notification1 = new ZCRMNotification();

        //Set channel Id of the Notification
        notification1.setChannelId(100000006800211n);

        let events = ["Deals.all"];

        //To subscribe based on particular operations on given modules.
        notification1.setEvents(events);

        //To set the expiry time for instant notifications.
        notification1.setChannelExpiry(new Date(2020,10,10,10,20,0));

        //To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
        //By using this value, user can validate the notifications.
        notification1.setToken("TOKEN_FOR_VERIFICATION_OF_1000000068002");

        //URL to be notified (POST request)
        notification1.setNotifyUrl("https://www.zohoapis.com");

        //Add Notification instance to the array
        notificationsArray.push(notification1);

        //Get instance of Notification Class
        let notification2 = new ZCRMNotification();

        //Set channel Id of the Notification
        notification2.setChannelId(100000006800211n);

        let events2 = ["Accounts.all"];

        //To subscribe based on particular operations on given modules.
        notification2.setEvents(events2);

        //To set the expiry time for instant notifications.
        notification2.setChannelExpiry(new Date(2020,11,10,10,0,0));

        //To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
        //By using this value, user can validate the notifications.
        notification2.setToken("TOKEN_FOR_VERIFICATION_OF_100000006800211");

        //URL to be notified (POST request)
        notification2.setNotifyUrl("https://www.zohoapis.com");

        //Add Notification instance to the array
        notificationsArray.push(notification2);

        //Set the array to notifications in BodyWrapper instance
        bodyWrapper.setWatch(notificationsArray);
        
        //Call enableNotifications method that takes BodyWrapper instance as parameter
        let response = await notificationOperations.enableNotifications(bodyWrapper);

        if(response != null) {

            //Get the status code from response
            console.log("Status Code: " + response.statusCode);

            //Get object from response
            let responseObject = response.object;

            if(responseObject != null){
                if(responseObject instanceof ActionWrapper) {

                    //Get the array of obtained ActionResponse instances
                    let actionResponses = responseObject.getWatch();

                    for(let actionResponse of actionResponses) {
                        //Check if the request is successful
                        if(actionResponse instanceof SuccessResponse) {

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            for(let key of Array.from(details.keys())) {

                                if(Array.isArray(details.get(key))) {
                                    let dataList = details.get(key);

                                    if(dataList.length > 0 && dataList[0] instanceof ZCRMNotification) {
                                        for(let event of dataList) {
                                            //Get the ChannelExpiry of each Notification
                                            console.log("Notification ChannelExpiry: " + event.getChannelExpiry());
                                            
                                            //Get the ResourceUri of each Notification
                                            console.log("Notification ResourceUri: " + event.getResourceUri());
                                            
                                            //Get the ResourceId of each Notification
                                            console.log("Notification ResourceId: " + event.getResourceId());
                                            
                                            //Get the ResourceName of each Notification
                                            console.log("Notification ResourceName: " + event.getResourceName());
                                            
                                            //Get the ChannelId each Notification
                                            console.log("Notification ChannelId: " + event.getChannelId());
                                        }
                                    }
                                }
                                else {
                                    console.log(key + " : " + details.get(key));
                                }
                            }

                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                        //Check if the request returned an exception
                        else if(actionResponse instanceof APIException){

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            if(details != null){
                                Array.from(details.keys()).forEach(key => {
                                    console.log(key + ": " + details.get(key));  
                                });
                            }

                            //Get the Message
                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                    }
                }
                //Check if the request returned an exception
                else if(responseObject instanceof APIException){

                    //Get the Status
                    console.log("Status: " + responseObject.getStatus().getValue());

                    //Get the Code
                    console.log("Code: " + responseObject.getCode().getValue());

                    console.log("Details");

                    //Get the details map
                    let details = responseObject.getDetails();

                    if(details != null){
                        Array.from(details.keys()).forEach(key => {
                            console.log(key + ": " + details.get(key));  
                        });
                    }

                    //Get the Message
                    console.log("Message: " + responseObject.getMessage().getValue());
                }
            }

        }
    }
}
module.exports = {Notification}
 
Get Notification Details
              
              
const {NotificationOperations, DisableNotificationsParam, GetNotificationDetailsParam} = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification_operations");
const ParameterMap = require("@zohocrm/nodejs-sdk-2.0/routes/parameter_map").ParameterMap;
const APIException = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/api_exception").APIException;
const SuccessResponse = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/success_response").SuccessResponse;
const BodyWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/body_wrapper").BodyWrapper;
const ActionWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/action_wrapper").ActionWrapper;
const ResponseWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/response_wrapper").ResponseWrapper;
const ZCRMNotification = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification").Notification;

class Notification {
    **
     *  Get Notification Details 
     * This method is used to get all the Notification and print the response.
     */
    static async getNotificationDetails() {
        //Get instance of NotificationOperations Class
        let notificationOperations = new NotificationOperations();

        //Get instance of ParameterMap Class
        let paramInstance = new ParameterMap();

        await paramInstance.add(GetNotificationDetailsParam.CHANNEL_ID, 100000006800211n);

        await paramInstance.add(GetNotificationDetailsParam.MODULE, "Accounts");

        await paramInstance.add(GetNotificationDetailsParam.PAGE, 1);
        
        await paramInstance.add(GetNotificationDetailsParam.PER_PAGE, 200);
        
        //Call getNotificationDetails method
        let response = await notificationOperations.getNotificationDetails(paramInstance);

        if(response != null) {

            //Get the status code from response
            console.log("Status Code: " + response.statusCode);

            if([204, 304].includes(response.statusCode)){
                console.log(response.statusCode == 204? "No Content" : "Not Modified");

                return;
            }

            //Get object from response
            let responseObject = response.object;

            if(responseObject != null){

                //Check if expected ResponseWrapper instance is received 
                if(responseObject instanceof ResponseWrapper){

                    //Get the array of obtained Notification instances
                    let notificationsArray = responseObject.getWatch();

                    notificationsArray.forEach(notification => {
                        //Get the NotifyOnRelatedAction of each Notification
                        console.log("Notification NotifyOnRelatedAction: " + notification.getNotifyOnRelatedAction());
                        
                        //Get the ChannelExpiry of each Notification
                        console.log("Notification ChannelExpiry: " + notification.getChannelExpiry());
                        
                        //Get the ResourceUri of  Notification
                        console.log("Notification ResourceUri: " + notification.getResourceUri());
                        
                        //Get the ResourceId of each Notification
                        console.log("Notification ResourceId: " + notification.getResourceId());
                        
                        //Get the NotifyUrl of each Notification
                        console.log("Notification NotifyUrl: " + notification.getNotifyUrl());
                        
                        //Get the ResourceName of each Notification
                        console.log("Notification ResourceName: " + notification.getResourceName());
                        
                        //Get the ChannelId of each Notification
                        console.log("Notification ChannelId: " + notification.getChannelId());
                        
                        //Get the events List of each Notification
                        let fields = notification.getEvents();

                        if(fields != null) {
                            for(let field of fields) {
                                //Get the Events
                                console.log("Notification Events: " + field);
                            }
                        }

                        //Get the Token of each Notification
                        console.log("Notification Token: " + notification.getToken());
                    });
                    
                    //Get the Object obtained Info instance
                    let info = responseObject.getInfo();

                    //Check if info is not null
                    if(info != null) {
                        if(info.getPerPage() != null) {
                            //Get the PerPage of the Info
                            console.log("Notification Info PerPage: " + info.getPerPage().toString());
                        }
                        
                        if(info.getCount() != null) {
                            //Get the Count of the Info
                            console.log("Notification Info Count: " + info.getCount().toString());
                        }
    
                        if(info.getPage() != null) {
                            //Get the Page of the Info
                            console.log("Notification Info Page: " + info.getPage().toString());
                        }
                        
                        if(info.getMoreRecords() != null) {
                            //Get the MoreRecords of the Info
                            console.log("Notification Info MoreRecords: " + info.getMoreRecords().toString());
                        }
                    }
                }
                //Check if the request returned an exception
                else if(responseObject instanceof APIException){
                    //Get the Status
                    console.log("Status: " + responseObject.getStatus().getValue());

                    //Get the Code
                    console.log("Code: " + responseObject.getCode().getValue());

                    console.log("Details");

                    //Get the details map
                    let details = responseObject.getDetails();

                    if(details != null){
                        Array.from(details.keys()).forEach(key => {
                            console.log(key + ": " + details.get(key));  
                        });
                    }

                    //Get the Message
                    console.log("Message: " + responseObject.getMessage().getValue());
                }
            }
        }
    }
}
module.exports = {Notification}
 
Update Notifications
              
              

const {NotificationOperations, DisableNotificationsParam, GetNotificationDetailsParam} = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification_operations");
const ParameterMap = require("@zohocrm/nodejs-sdk-2.0/routes/parameter_map").ParameterMap;
const APIException = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/api_exception").APIException;
const SuccessResponse = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/success_response").SuccessResponse;
const BodyWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/body_wrapper").BodyWrapper;
const ActionWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/action_wrapper").ActionWrapper;
const ResponseWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/response_wrapper").ResponseWrapper;
const ZCRMNotification = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification").Notification;

class Notification {
    /**
     *  Update Specific Information of a Notification 
     * This method is used to update single Notification and print the response.
     */
    static async updateNotification() {
        //Get instance of NotificationOperations Class
        let notificationOperations = new NotificationOperations();

        //Get instance of BodyWrapper Class that will contain the request body
        let bodyWrapper = new BodyWrapper();

        //Array of Notification instances
        let notificationsArray = [];

        //Get instance of Notification Class
        let notification1 = new ZCRMNotification();

        //Set channel Id of the Notification
        notification1.setChannelId(1000000068002n);

        let events = ["Accounts.all"];

        //To subscribe based on particular operations on given modules.
        notification1.setEvents(events);

        //To set the expiry time for instant notifications.
        notification1.setChannelExpiry(new Date());

        //To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
        //By using this value, user can validate the notifications.
        notification1.setToken("TOKEN_FOR_VERIFICATION_OF_1000000068002");

        //URL to be notified (POST request)
        notification1.setNotifyUrl("https://www.zohoapis.com");

        //Add Notification instance to the array
        notificationsArray.push(notification1);

        //Set the array to notifications in BodyWrapper instance
        bodyWrapper.setWatch(notificationsArray);

        //Call updateNotification method that takes BodyWrapper instance as parameters
        let response = await notificationOperations.updateNotification(bodyWrapper);

        if(response != null) {

            //Get the status code from response
            console.log("Status Code: " + response.statusCode);

            //Get object from response
            let responseObject = response.object;

            if(responseObject != null){
                if(responseObject instanceof ActionWrapper) {

                    //Get the array of obtained ActionResponse instances
                    let actionResponses = responseObject.getWatch();

                    for(let actionResponse of actionResponses) {
                        //Check if the request is successful
                        if(actionResponse instanceof SuccessResponse) {

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            for(let key in Array.from(details.keys())) {

                                if(Array.isArray(details.get(key))) {
                                    let dataList = details.get(key);

                                    if(dataList.length > 0 && dataList[0] instanceof ZCRMNotification) {
                                        for(let event of dataList) {
                                            //Get the ChannelExpiry of each Notification
                                            console.log("Notification ChannelExpiry: " + event.getChannelExpiry());
                                            
                                            //Get the ResourceUri of each Notification
                                            console.log("Notification ResourceUri: " + event.getResourceUri());
                                            
                                            //Get the ResourceId of each Notification
                                            console.log("Notification ResourceId: " + event.getResourceId());
                                            
                                            //Get the ResourceName of each Notification
                                            console.log("Notification ResourceName: " + event.getResourceName());
                                            
                                            //Get the ChannelId of each Notification
                                            console.log("Notification ChannelId: " + event.getChannelId());
                                        }
                                    }
                                }
                                else {
                                    console.log(key + " : " + details.get(key));
                                }
                            }

                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                        //Check if the request returned an exception
                        else if(actionResponse instanceof APIException){

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            if(details != null){
                                Array.from(details.keys()).forEach(key => {
                                    console.log(key + ": " + details.get(key));  
                                });
                            }

                            //Get the Message
                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                    }
                }
                //Check if the request returned an exception
                else if(responseObject instanceof APIException){

                    //Get the Status
                    console.log("Status: " + responseObject.getStatus().getValue());

                    //Get the Code
                    console.log("Code: " + responseObject.getCode().getValue());

                    console.log("Details");

                    //Get the details map
                    let details = responseObject.getDetails();

                    if(details != null){
                        Array.from(details.keys()).forEach(key => {
                            console.log(key + ": " + details.get(key));  
                        });
                    }

                    //Get the Message
                    console.log("Message: " + responseObject.getMessage().getValue());
                }
            }

        }
    }
}
module.exports = {Notification}
 
Update Specific Information of a Notification
              
              

const {NotificationOperations, DisableNotificationsParam, GetNotificationDetailsParam} = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification_operations");
const ParameterMap = require("@zohocrm/nodejs-sdk-2.0/routes/parameter_map").ParameterMap;
const APIException = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/api_exception").APIException;
const SuccessResponse = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/success_response").SuccessResponse;
const BodyWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/body_wrapper").BodyWrapper;
const ActionWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/action_wrapper").ActionWrapper;
const ResponseWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/response_wrapper").ResponseWrapper;
const ZCRMNotification = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification").Notification;

class Notification {
    /**
     *  Update Specific Information of a Notification 
     * This method is used to update single Notification and print the response.
     */
    static async updateNotification() {
        //Get instance of NotificationOperations Class
        let notificationOperations = new NotificationOperations();

        //Get instance of BodyWrapper Class that will contain the request body
        let bodyWrapper = new BodyWrapper();

        //Array of Notification instances
        let notificationsArray = [];

        //Get instance of Notification Class
        let notification1 = new ZCRMNotification();

        //Set channel Id of the Notification
        notification1.setChannelId(1000000068002n);

        let events = ["Accounts.all"];

        //To subscribe based on particular operations on given modules.
        notification1.setEvents(events);

        //To set the expiry time for instant notifications.
        notification1.setChannelExpiry(new Date());

        //To ensure that the notification is sent from Zoho CRM, by sending back the given value in notification URL body.
        //By using this value, user can validate the notifications.
        notification1.setToken("TOKEN_FOR_VERIFICATION_OF_1000000068002");

        //URL to be notified (POST request)
        notification1.setNotifyUrl("https://www.zohoapis.com");

        //Add Notification instance to the array
        notificationsArray.push(notification1);

        //Set the array to notifications in BodyWrapper instance
        bodyWrapper.setWatch(notificationsArray);

        //Call updateNotification method that takes BodyWrapper instance as parameters
        let response = await notificationOperations.updateNotification(bodyWrapper);

        if(response != null) {

            //Get the status code from response
            console.log("Status Code: " + response.statusCode);

            //Get object from response
            let responseObject = response.object;

            if(responseObject != null){
                if(responseObject instanceof ActionWrapper) {

                    //Get the array of obtained ActionResponse instances
                    let actionResponses = responseObject.getWatch();

                    for(let actionResponse of actionResponses) {
                        //Check if the request is successful
                        if(actionResponse instanceof SuccessResponse) {

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            for(let key in Array.from(details.keys())) {

                                if(Array.isArray(details.get(key))) {
                                    let dataList = details.get(key);

                                    if(dataList.length > 0 && dataList[0] instanceof ZCRMNotification) {
                                        for(let event of dataList) {
                                            //Get the ChannelExpiry of each Notification
                                            console.log("Notification ChannelExpiry: " + event.getChannelExpiry());
                                            
                                            //Get the ResourceUri of each Notification
                                            console.log("Notification ResourceUri: " + event.getResourceUri());
                                            
                                            //Get the ResourceId of each Notification
                                            console.log("Notification ResourceId: " + event.getResourceId());
                                            
                                            //Get the ResourceName of each Notification
                                            console.log("Notification ResourceName: " + event.getResourceName());
                                            
                                            //Get the ChannelId of each Notification
                                            console.log("Notification ChannelId: " + event.getChannelId());
                                        }
                                    }
                                }
                                else {
                                    console.log(key + " : " + details.get(key));
                                }
                            }

                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                        //Check if the request returned an exception
                        else if(actionResponse instanceof APIException){

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            if(details != null){
                                Array.from(details.keys()).forEach(key => {
                                    console.log(key + ": " + details.get(key));  
                                });
                            }

                            //Get the Message
                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                    }
                }
                //Check if the request returned an exception
                else if(responseObject instanceof APIException){

                    //Get the Status
                    console.log("Status: " + responseObject.getStatus().getValue());

                    //Get the Code
                    console.log("Code: " + responseObject.getCode().getValue());

                    console.log("Details");

                    //Get the details map
                    let details = responseObject.getDetails();

                    if(details != null){
                        Array.from(details.keys()).forEach(key => {
                            console.log(key + ": " + details.get(key));  
                        });
                    }

                    //Get the Message
                    console.log("Message: " + responseObject.getMessage().getValue());
                }
            }

        }
    }
}
module.exports = {Notification}
 
Disable Notifications
              
              
const {NotificationOperations, DisableNotificationsParam, GetNotificationDetailsParam} = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification_operations");
const ParameterMap = require("@zohocrm/nodejs-sdk-2.0/routes/parameter_map").ParameterMap;
const APIException = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/api_exception").APIException;
const SuccessResponse = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/success_response").SuccessResponse;
const BodyWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/body_wrapper").BodyWrapper;
const ActionWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/action_wrapper").ActionWrapper;
const ResponseWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/response_wrapper").ResponseWrapper;
const ZCRMNotification = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification").Notification;

class Notification {
    /**
     *  Disable Notifications 
     * To stop all the instant notifications enabled by the user for a channel.
     * @param {Array} channelIds Specify the unique IDs of the notification channels to be disabled.
     */
    static async disableNotifications(channelIds) {

        //example
        //channelIds = [1000000068002n, 1000000068020n, 1000000068101n]
        
        //Get instance of NotificationOperations Class
        let notificationOperations = new NotificationOperations();

        //Get instance of ParameterMap Class
        let paramInstance = new ParameterMap();

        //Possible parameters for disable Notifications operation
        for(let channelId of channelIds) {
            await paramInstance.add(DisableNotificationsParam.CHANNEL_IDS, channelId);
        }

        //Call disableNotifications method that takes paramInstance as parameter
        let response = await notificationOperations.disableNotifications(paramInstance);

        if(response != null){

            //Get the status code from response
            console.log("Status Code: " + response.statusCode);

            //Get object from response
            let responseObject = response.object;

            if(responseObject != null){

                //Check if expected ActionWrapper instance is received 
                if(responseObject instanceof ActionWrapper){

                    //Get the array of obtained ActionResponse instances
                    let actionResponses = responseObject.getWatch();

                    actionResponses.forEach(actionResponse => {

                        //Check if the request is successful
                        if(actionResponse instanceof SuccessResponse){

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            if(details != null){
                                Array.from(details.keys()).forEach(key => {
                                    console.log(key + ": " + details.get(key));  
                                });
                            }

                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                        //Check if the request returned an exception
                        else if(actionResponse instanceof APIException){

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            if(details != null){
                                Array.from(details.keys()).forEach(key => {
                                    console.log(key + ": " + details.get(key));  
                                });
                            }

                            //Get the Message
                            console.log("Message: " + actionResponse.getMessage().getValue());
                        } 
                    });
                }
                //Check if the request returned an exception
                else if(responseObject instanceof APIException){

                    //Get the Status
                    console.log("Status: " + responseObject.getStatus().getValue());

                    //Get the Code
                    console.log("Code: " + responseObject.getCode().getValue());

                    console.log("Details");

                    //Get the details map
                    let details = responseObject.getDetails();

                    if(details != null){
                        Array.from(details.keys()).forEach(key => {
                            console.log(key + ": " + details.get(key));  
                        });
                    }

                    //Get the Message
                    console.log("Message: " + responseObject.getMessage().getValue());
                }
            }
        }
    }
}
module.exports = {Notification}
 
Disable Specific Notifications
              
              
const {NotificationOperations, DisableNotificationsParam, GetNotificationDetailsParam} = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification_operations");
const ParameterMap = require("@zohocrm/nodejs-sdk-2.0/routes/parameter_map").ParameterMap;
const APIException = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/api_exception").APIException;
const SuccessResponse = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/success_response").SuccessResponse;
const BodyWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/body_wrapper").BodyWrapper;
const ActionWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/action_wrapper").ActionWrapper;
const ResponseWrapper = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/response_wrapper").ResponseWrapper;
const ZCRMNotification = require("@zohocrm/nodejs-sdk-2.0/core/com/zoho/crm/api/notification/notification").Notification;

class Notification {
    /**
     *  Disable Specific Notifications 
     * This method is used to disable notifications for the specified events in a channel.
     */
    static async disableNotification() {
        //Get instance of NotificationOperations Class
        let notificationOperations = new NotificationOperations();

        //Get instance of BodyWrapper Class that will contain the request body
        let bodyWrapper = new BodyWrapper();

        //Array of Notification instances
        let notificationsArray = [];

        //Get instance of Notification Class
        let notification = new ZCRMNotification();

        //Set channel Id of the Notification
        notification.setChannelId(1000000068002n);

        let events = ["Accounts.edit"];

        //To subscribe based on particular operations on given modules.
        notification.setEvents(events);

        notification.setDeleteevents(true);

        //Add Notification instance to the array
        notificationsArray.push(notification);

        //Set the array to notifications in BodyWrapper instance
        bodyWrapper.setWatch(notificationsArray);

        //Call disableNotification which takes BodyWrapper instance as parameter
        let response = await notificationOperations.disableNotification(bodyWrapper);

        if(response != null){

            //Get the status code from response
            console.log("Status Code: " + response.statusCode);

            //Get object from response
            let responseObject = response.object;

            if(responseObject != null){

                //Check if expected ActionWrapper instance is received 
                if(responseObject instanceof ActionWrapper){

                    //Get the array of obtained ActionResponse instances
                    let actionResponses = responseObject.getWatch();

                    actionResponses.forEach(actionResponse => {

                        //Check if the request is successful
                        if(actionResponse instanceof SuccessResponse){

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            if(details != null){
                                Array.from(details.keys()).forEach(key => {
                                    console.log(key + ": " + details.get(key));  
                                });
                            }

                            console.log("Message: " + actionResponse.getMessage().getValue());
                        }
                        //Check if the request returned an exception
                        else if(actionResponse instanceof APIException){

                            //Get the Status
                            console.log("Status: " + actionResponse.getStatus().getValue());

                            //Get the Code
                            console.log("Code: " + actionResponse.getCode().getValue());

                            console.log("Details");

                            //Get the details map
                            let details = actionResponse.getDetails();

                            if(details != null){
                                Array.from(details.keys()).forEach(key => {
                                    console.log(key + ": " + details.get(key));  
                                });
                            }

                            //Get the Message
                            console.log("Message: " + actionResponse.getMessage().getValue());
                        } 
                    });
                }
                //Check if the request returned an exception
                else if(responseObject instanceof APIException){

                    //Get the Status
                    console.log("Status: " + responseObject.getStatus().getValue());

                    //Get the Code
                    console.log("Code: " + responseObject.getCode().getValue());

                    console.log("Details");

                    //Get the details map
                    let details = responseObject.getDetails();

                    if(details != null){
                        Array.from(details.keys()).forEach(key => {
                            console.log(key + ": " + details.get(key));  
                        });
                    }

                    //Get the Message
                    console.log("Message: " + responseObject.getMessage().getValue());
                }
            }
        }
    }
}
module.exports = {Notification}