response to be converted into integer type

Vijay Baokar
Kilo Sage

Hi Team,

I am getting response in floating but i need to have data type as integer in postman response. 

How can i change the data type into integer ?

retrieveUsers: function(pageNumber, pageLength) {
        try {
            var users = [];

            // Default pagination values
            pageNumber = parseInt(pageNumber, 10) || 1;
            pageLength = parseInt(pageLength, 10) || 10;

            // if (isNaN(pageNumber) || pageNumber < 1) pageNumber = 1;
            // if (isNaN(pageLength) || pageLength < 1) pageLength = 10;

            var offset = (pageNumber - 1) * pageLength;

            // Count total users with 'hp.com' email.
            var countGR = new GlideAggregate('sys_user');
            countGR.addEncodedQuery('active=true^emailLIKEhp.com');
            countGR.addAggregate('COUNT');
            countGR.query();

            var totalCount = 0;
            if (countGR.next()) {
                totalCount = parseInt(countGR.getAggregate('COUNT'), 10);
            }

            var totalPages = Math.ceil(totalCount / pageLength);
            if (pageNumber > totalPages && totalPages > 0) {
                return this._errorResponse(400, "Invalid page number. Requested pageNumber: " + pageNumber + " exceeds total available pages: " + totalPages);
            }

            // Fetch paginated users
            var gr_user = new GlideRecord('sys_user');
            gr_user.addEncodedQuery('active=true^emailLIKEhp.com');
            gr_user.orderBy('name');
            gr_user.chooseWindow(offset, offset + pageLength);
            gr_user.query();

            while (gr_user.next()) {

                var vamCountryName = this.getCountryName(gr_user.u_country_vam_countries);
                var bcmCountryName = this.getCountryName(gr_user.u_country_bcm_countries);
                var somCountryName = this.getCountryName(gr_user.u_country_som_countries);
                var market = this.getCountryName(gr_user.u_supported_market_for_market_vam_role);

                users.push({
                    user_id: gr_user.getValue('user_name'),
                    user_email_address: gr_user.getValue('email'),
                    employee_id: gr_user.getValue('employee_number'),
                    status: gr_user.getDisplayValue('active') === 'true' ? 'Active' : 'Inactive',
                    created_date: gr_user.getValue('sys_created_on'),
                    created_by: gr_user.getValue('sys_created_by'),
                    updated_by: gr_user.getValue('sys_updated_by'),
                    updated_date: gr_user.getValue('sys_updated_on'),
                    country_vam_countries: vamCountryName,
                    country_bcm_countries: bcmCountryName,
                    country_som_countries: somCountryName,
                    market_markets: market

                });
            }

            var result = {
                pageNumber: pageNumber,
                pageLength: pageLength,
                totalRecords: totalCount,
                totalPages: totalPages,
                "Status Code": 200,
                "Message": users.length > 0 ? "Users retrieved successfully." : "No users with active status and 'hp.com' email domain were found.",
                users: users
            };
 
Postman response i am getting:
 
"result": {
        "pageNumber": 1.0,
        "pageLength": 10,
        "totalRecords": 88.0,
        "totalPages": 9.0,
        "Status Code": 200,
 
it has to be in integer type and should not be like 1.0 or 88.0
8 REPLIES 8

Nilesh Pol
Kilo Sage
Kilo Sage

@Vijay Baokar you can explicitly convert them to integers using parseInt() or by ensuring they are calculated as integers.

var result = {
pageNumber: parseInt(pageNumber, 10),
pageLength: parseInt(pageLength, 10), 
totalRecords: parseInt(totalCount, 10), 
totalPages: parseInt(totalPages, 10), 
"Status Code": 200,
"Message": users.length > 0 ? "Users retrieved successfully." : "No users with active status and 'hp.com' email domain were found.",
users: users
};

@Nilesh Pol its still giving me the same result.

Ankur Bawiskar
Tera Patron
Tera Patron

@Vijay Baokar 

either use parseInt() while setting result

OR

handle it in previous line of codes

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi @Ankur Bawiskar I am calling "retrieveUsers" function mentioned in the problem statement from a scripted rest API as below:

 

(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
   
    var utils = new SupIGAutils();
    var pageNumber = request.queryParams.pageNumber;
    var pageLength = request.queryParams.pageLength;

    var result = utils.retrieveUsers(pageNumber, pageLength);
    response.setStatus(result["Status Code"] || 200);
    response.setBody(result);
})(request, response);
 
where are you suggesting me to use parseInt() ?