Built motion from commit 9d7072cc.|2.5.39
[motion2.git] / server / api / intZohoAccount / intZohoAccount.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x1e59=['stack','name','send','index','map','ZohoAccount','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','params','find','create','body','update','findOne','ZohoConfiguration','getConfigurations','hasOwnProperty','AccountId','Subjects','getSubjects','channel','ZohoField','Descriptions','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','host','zoho.eu','com','serverUrl','substring','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','https://www.zohoapis.%s/crm/v2/settings/fields','Zoho-oauthtoken\x20','response','Owner','Description','WhoId','Call_Start_Time','Call_Type','remove','includes','api_name','system_mandatory','custom_field','data_type','pick_list_values','test','statusCode','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','then','destroy','error'];(function(_0x4d7b78,_0x1028bd){var _0x597c20=function(_0x457f3d){while(--_0x457f3d){_0x4d7b78['push'](_0x4d7b78['shift']());}};_0x597c20(++_0x1028bd);}(_0x1e59,0xd3));var _0x91e5=function(_0x570a6d,_0x19d19c){_0x570a6d=_0x570a6d-0x0;var _0x39f87b=_0x1e59[_0x570a6d];return _0x39f87b;};'use strict';var emlformat=require(_0x91e5('0x0'));var rimraf=require(_0x91e5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x91e5('0x2'));var rp=require(_0x91e5('0x3'));var moment=require(_0x91e5('0x4'));var BPromise=require(_0x91e5('0x5'));var Mustache=require(_0x91e5('0x6'));var util=require(_0x91e5('0x7'));var path=require(_0x91e5('0x8'));var sox=require(_0x91e5('0x9'));var csv=require(_0x91e5('0xa'));var ejs=require(_0x91e5('0xb'));var fs=require('fs');var fs_extra=require(_0x91e5('0xc'));var _=require(_0x91e5('0xd'));var squel=require(_0x91e5('0xe'));var crypto=require(_0x91e5('0xf'));var jsforce=require(_0x91e5('0x10'));var deskjs=require(_0x91e5('0x11'));var toCsv=require(_0x91e5('0xa'));var querystring=require(_0x91e5('0x12'));var Papa=require('papaparse');var Redis=require(_0x91e5('0x13'));var authService=require(_0x91e5('0x14'));var qs=require(_0x91e5('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x91e5('0x16'));var logger=require('../../config/logger')(_0x91e5('0x17'));var utils=require('../../config/utils');var config=require(_0x91e5('0x18'));var licenseUtil=require(_0x91e5('0x19'));var db=require(_0x91e5('0x1a'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x20206e,_0xf86bdd){_0xf86bdd=_0xf86bdd||0xcc;return function(_0x49871e){if(_0x49871e){return _0x20206e[_0x91e5('0x1b')](_0xf86bdd);}return _0x20206e[_0x91e5('0x1c')](_0xf86bdd)[_0x91e5('0x1d')]();};}function respondWithResult(_0x3f762d,_0x55d673){_0x55d673=_0x55d673||0xc8;return function(_0x1d5e94){if(_0x1d5e94){return _0x3f762d['status'](_0x55d673)['json'](_0x1d5e94);}};}function respondWithFilteredResult(_0x317ea9,_0x91abe4){return function(_0x5e7831){if(_0x5e7831){var _0x12cd2d=typeof _0x91abe4[_0x91e5('0x1e')]===_0x91e5('0x1f')&&typeof _0x91abe4[_0x91e5('0x20')]==='undefined';var _0x412b3e=_0x5e7831[_0x91e5('0x21')];var _0x44f430=_0x12cd2d?0x0:_0x91abe4[_0x91e5('0x1e')];var _0x32dc52=_0x12cd2d?_0x5e7831[_0x91e5('0x21')]:_0x91abe4[_0x91e5('0x1e')]+_0x91abe4[_0x91e5('0x20')];var _0x3ee741;if(_0x32dc52>=_0x412b3e){_0x32dc52=_0x412b3e;_0x3ee741=0xc8;}else{_0x3ee741=0xce;}_0x317ea9[_0x91e5('0x1c')](_0x3ee741);return _0x317ea9[_0x91e5('0x22')]('Content-Range',_0x44f430+'-'+_0x32dc52+'/'+_0x412b3e)[_0x91e5('0x23')](_0x5e7831);}return null;};}function patchUpdates(_0x1cc14f){return function(_0x901a00){try{jsonpatch[_0x91e5('0x24')](_0x901a00,_0x1cc14f,!![]);}catch(_0x28e572){return BPromise[_0x91e5('0x25')](_0x28e572);}return _0x901a00['save']();};}function saveUpdates(_0x18a158,_0x412338){return function(_0x1e53ef){if(_0x1e53ef){return _0x1e53ef['update'](_0x18a158)[_0x91e5('0x26')](function(_0x4ce879){return _0x4ce879;});}return null;};}function removeEntity(_0x5ef28b,_0x2f6199){return function(_0x5e17a5){if(_0x5e17a5){return _0x5e17a5[_0x91e5('0x27')]()[_0x91e5('0x26')](function(){_0x5ef28b[_0x91e5('0x1c')](0xcc)[_0x91e5('0x1d')]();});}};}function handleEntityNotFound(_0x18b3ba,_0x1cef11){return function(_0x1a54d6){if(!_0x1a54d6){_0x18b3ba['sendStatus'](0x194);}return _0x1a54d6;};}function handleError(_0x40993e,_0x12e8be){_0x12e8be=_0x12e8be||0x1f4;return function(_0x5ae027){logger[_0x91e5('0x28')](_0x5ae027[_0x91e5('0x29')]);if(_0x5ae027['name']){delete _0x5ae027[_0x91e5('0x2a')];}_0x40993e[_0x91e5('0x1c')](_0x12e8be)[_0x91e5('0x2b')](_0x5ae027);};}exports[_0x91e5('0x2c')]=function(_0x586c43,_0x12dd02){var _0x3277af={},_0x21c032={},_0x31afe3={'count':0x0,'rows':[]};var _0x3fdf47=_[_0x91e5('0x2d')](db[_0x91e5('0x2e')][_0x91e5('0x2f')],function(_0x202d91){return{'name':_0x202d91[_0x91e5('0x30')],'type':_0x202d91[_0x91e5('0x31')][_0x91e5('0x32')]};});_0x21c032[_0x91e5('0x33')]=_['map'](_0x3fdf47,_0x91e5('0x2a'));_0x21c032[_0x91e5('0x34')]=_[_0x91e5('0x35')](_0x586c43[_0x91e5('0x34')]);_0x21c032['filters']=_[_0x91e5('0x36')](_0x21c032[_0x91e5('0x33')],_0x21c032['query']);_0x3277af[_0x91e5('0x37')]=_[_0x91e5('0x36')](_0x21c032[_0x91e5('0x33')],qs[_0x91e5('0x38')](_0x586c43[_0x91e5('0x34')][_0x91e5('0x38')]));_0x3277af[_0x91e5('0x37')]=_0x3277af['attributes'][_0x91e5('0x39')]?_0x3277af['attributes']:_0x21c032[_0x91e5('0x33')];if(!_0x586c43['query']['hasOwnProperty'](_0x91e5('0x3a'))){_0x3277af[_0x91e5('0x20')]=qs[_0x91e5('0x20')](_0x586c43[_0x91e5('0x34')][_0x91e5('0x20')]);_0x3277af[_0x91e5('0x1e')]=qs[_0x91e5('0x1e')](_0x586c43[_0x91e5('0x34')]['offset']);}_0x3277af[_0x91e5('0x3b')]=qs[_0x91e5('0x3c')](_0x586c43[_0x91e5('0x34')][_0x91e5('0x3c')]);_0x3277af[_0x91e5('0x3d')]=qs[_0x91e5('0x3e')](_[_0x91e5('0x3f')](_0x586c43['query'],_0x21c032['filters']),_0x3fdf47);if(_0x586c43['query'][_0x91e5('0x40')]){_0x3277af[_0x91e5('0x3d')]=_[_0x91e5('0x41')](_0x3277af[_0x91e5('0x3d')],{'$or':_['map'](_0x3fdf47,function(_0x52df53){if(_0x52df53[_0x91e5('0x31')]!==_0x91e5('0x42')){var _0x4d9945={};_0x4d9945[_0x52df53[_0x91e5('0x2a')]]={'$like':'%'+_0x586c43[_0x91e5('0x34')][_0x91e5('0x40')]+'%'};return _0x4d9945;}})});}_0x3277af=_[_0x91e5('0x41')]({},_0x3277af,_0x586c43[_0x91e5('0x43')]);var _0x531d22={'where':_0x3277af[_0x91e5('0x3d')]};return db['ZohoAccount'][_0x91e5('0x21')](_0x531d22)['then'](function(_0x3845b5){_0x31afe3[_0x91e5('0x21')]=_0x3845b5;if(_0x586c43[_0x91e5('0x34')][_0x91e5('0x44')]){_0x3277af[_0x91e5('0x45')]=[{'all':!![]}];}return db[_0x91e5('0x2e')]['findAll'](_0x3277af);})['then'](function(_0x346142){_0x31afe3[_0x91e5('0x46')]=_0x346142;return _0x31afe3;})[_0x91e5('0x26')](respondWithFilteredResult(_0x12dd02,_0x3277af))[_0x91e5('0x47')](handleError(_0x12dd02,null));};exports['show']=function(_0x444513,_0x51640e){var _0x4458d3={'raw':![],'where':{'id':_0x444513[_0x91e5('0x48')]['id']}},_0xaeb302={};_0xaeb302[_0x91e5('0x33')]=_[_0x91e5('0x35')](db[_0x91e5('0x2e')][_0x91e5('0x2f')]);_0xaeb302[_0x91e5('0x34')]=_[_0x91e5('0x35')](_0x444513[_0x91e5('0x34')]);_0xaeb302[_0x91e5('0x3e')]=_[_0x91e5('0x36')](_0xaeb302[_0x91e5('0x33')],_0xaeb302['query']);_0x4458d3[_0x91e5('0x37')]=_['intersection'](_0xaeb302[_0x91e5('0x33')],qs['fields'](_0x444513[_0x91e5('0x34')][_0x91e5('0x38')]));_0x4458d3[_0x91e5('0x37')]=_0x4458d3['attributes'][_0x91e5('0x39')]?_0x4458d3['attributes']:_0xaeb302[_0x91e5('0x33')];if(_0x444513[_0x91e5('0x34')][_0x91e5('0x44')]){_0x4458d3[_0x91e5('0x45')]=[{'all':!![]}];}_0x4458d3=_[_0x91e5('0x41')]({},_0x4458d3,_0x444513[_0x91e5('0x43')]);return db['ZohoAccount'][_0x91e5('0x49')](_0x4458d3)[_0x91e5('0x26')](handleEntityNotFound(_0x51640e,null))[_0x91e5('0x26')](respondWithResult(_0x51640e,null))['catch'](handleError(_0x51640e,null));};exports['create']=function(_0x1870f4,_0x24e7a6){return db[_0x91e5('0x2e')][_0x91e5('0x4a')](_0x1870f4[_0x91e5('0x4b')],{})[_0x91e5('0x26')](respondWithResult(_0x24e7a6,0xc9))[_0x91e5('0x47')](handleError(_0x24e7a6,null));};exports[_0x91e5('0x4c')]=function(_0x17738d,_0x393b0c){if(_0x17738d[_0x91e5('0x4b')]['id']){delete _0x17738d['body']['id'];}return db[_0x91e5('0x2e')][_0x91e5('0x49')]({'where':{'id':_0x17738d['params']['id']}})[_0x91e5('0x26')](handleEntityNotFound(_0x393b0c,null))[_0x91e5('0x26')](saveUpdates(_0x17738d[_0x91e5('0x4b')],null))[_0x91e5('0x26')](respondWithResult(_0x393b0c,null))[_0x91e5('0x47')](handleError(_0x393b0c,null));};exports[_0x91e5('0x27')]=function(_0x1fd0ec,_0x16d6e7){return db[_0x91e5('0x2e')][_0x91e5('0x49')]({'where':{'id':_0x1fd0ec[_0x91e5('0x48')]['id']}})[_0x91e5('0x26')](handleEntityNotFound(_0x16d6e7,null))[_0x91e5('0x26')](removeEntity(_0x16d6e7,null))[_0x91e5('0x47')](handleError(_0x16d6e7,null));};exports['getConfigurations']=function(_0x1def89,_0x2f9a5a,_0x532ce3){var _0x5c66fd={};var _0x3cbf52={};var _0x500a4f;var _0x28b0b3;return db[_0x91e5('0x2e')][_0x91e5('0x4d')]({'where':{'id':_0x1def89[_0x91e5('0x48')]['id']}})[_0x91e5('0x26')](handleEntityNotFound(_0x2f9a5a,null))[_0x91e5('0x26')](function(_0x25095c){if(_0x25095c){_0x500a4f=_0x25095c;_0x3cbf52['model']=_[_0x91e5('0x35')](db[_0x91e5('0x4e')][_0x91e5('0x2f')]);_0x3cbf52[_0x91e5('0x34')]=_[_0x91e5('0x35')](_0x1def89[_0x91e5('0x34')]);_0x3cbf52[_0x91e5('0x3e')]=_[_0x91e5('0x36')](_0x3cbf52[_0x91e5('0x33')],_0x3cbf52[_0x91e5('0x34')]);_0x5c66fd[_0x91e5('0x37')]=_[_0x91e5('0x36')](_0x3cbf52[_0x91e5('0x33')],qs[_0x91e5('0x38')](_0x1def89['query'][_0x91e5('0x38')]));_0x5c66fd['attributes']=_0x5c66fd['attributes'][_0x91e5('0x39')]?_0x5c66fd[_0x91e5('0x37')]:_0x3cbf52[_0x91e5('0x33')];_0x5c66fd[_0x91e5('0x3b')]=qs['sort'](_0x1def89[_0x91e5('0x34')][_0x91e5('0x3c')]);_0x5c66fd['where']=qs[_0x91e5('0x3e')](_[_0x91e5('0x3f')](_0x1def89[_0x91e5('0x34')],_0x3cbf52['filters']));if(_0x1def89[_0x91e5('0x34')][_0x91e5('0x40')]){_0x5c66fd[_0x91e5('0x3d')]=_[_0x91e5('0x41')](_0x5c66fd[_0x91e5('0x3d')],{'$or':_[_0x91e5('0x2d')](_0x5c66fd[_0x91e5('0x37')],function(_0x20fc38){var _0x1637d3={};_0x1637d3[_0x20fc38]={'$like':'%'+_0x1def89['query'][_0x91e5('0x40')]+'%'};return _0x1637d3;})});}_0x5c66fd=_[_0x91e5('0x41')]({},_0x5c66fd,_0x1def89[_0x91e5('0x43')]);return _0x500a4f[_0x91e5('0x4f')](_0x5c66fd);}})['then'](function(_0x2323c7){if(_0x2323c7){_0x28b0b3=_0x2323c7[_0x91e5('0x39')];if(!_0x1def89[_0x91e5('0x34')][_0x91e5('0x50')](_0x91e5('0x3a'))){_0x5c66fd[_0x91e5('0x20')]=qs[_0x91e5('0x20')](_0x1def89['query'][_0x91e5('0x20')]);_0x5c66fd[_0x91e5('0x1e')]=qs[_0x91e5('0x1e')](_0x1def89[_0x91e5('0x34')][_0x91e5('0x1e')]);}return _0x500a4f[_0x91e5('0x4f')](_0x5c66fd);}})[_0x91e5('0x26')](function(_0x52d462){if(_0x52d462){return _0x52d462?{'count':_0x28b0b3,'rows':_0x52d462}:null;}})[_0x91e5('0x26')](respondWithResult(_0x2f9a5a,null))['catch'](handleError(_0x2f9a5a,null));};exports['addConfiguration']=function(_0x4209ba,_0x481d34,_0x4c56b8){if(_0x4209ba[_0x91e5('0x4b')]['id']){delete _0x4209ba[_0x91e5('0x4b')]['id'];}return db[_0x91e5('0x2e')][_0x91e5('0x4d')]({'where':{'id':_0x4209ba[_0x91e5('0x48')]['id']}})[_0x91e5('0x26')](handleEntityNotFound(_0x481d34,null))['then'](function(_0x692ba6){if(_0x692ba6){_0x4209ba[_0x91e5('0x4b')][_0x91e5('0x51')]=_0x692ba6['id'];_0x4209ba[_0x91e5('0x4b')][_0x91e5('0x52')]=integrations[_0x91e5('0x53')](_0x4209ba[_0x91e5('0x4b')][_0x91e5('0x54')],_0x4209ba[_0x91e5('0x4b')][_0x91e5('0x31')]);_0x4209ba['body']['Descriptions']=integrations['getDescriptions'](_0x4209ba[_0x91e5('0x4b')]['channel'],_0x4209ba['body'][_0x91e5('0x31')]);return db[_0x91e5('0x4e')][_0x91e5('0x4a')](_0x4209ba[_0x91e5('0x4b')],{'include':[{'model':db[_0x91e5('0x55')],'as':_0x91e5('0x52')},{'model':db[_0x91e5('0x55')],'as':_0x91e5('0x56')}]});}return null;})[_0x91e5('0x26')](respondWithResult(_0x481d34,null))[_0x91e5('0x47')](handleError(_0x481d34,null));};function getAccessToken(_0x23f35f){return new Promise(function(_0x489570,_0x266de7){var _0x4660ce;switch(_0x23f35f[_0x91e5('0x57')]){case'US':_0x4660ce=_0x91e5('0x58');break;case'AU':_0x4660ce=_0x91e5('0x59');break;case'EU':_0x4660ce=_0x91e5('0x5a');break;case'IN':_0x4660ce=_0x91e5('0x5b');break;case'CN':_0x4660ce=_0x91e5('0x5c');break;default:_0x4660ce=_0x91e5('0x5a');break;}var _0x43e8e4={'method':'POST','uri':_0x4660ce+_0x91e5('0x5d'),'qs':{'refresh_token':_0x23f35f[_0x91e5('0x5e')],'client_id':_0x23f35f[_0x91e5('0x5f')],'client_secret':_0x23f35f[_0x91e5('0x60')],'grant_type':_0x91e5('0x61')},'json':!![]};return rp(_0x43e8e4)[_0x91e5('0x26')](function(_0x217379){if(_0x217379[_0x91e5('0x62')]){_0x489570(_0x217379[_0x91e5('0x62')]);}else{_0x266de7(_0x91e5('0x63'));}})['catch'](function(_0x451311){_0x266de7(_0x451311);});});}exports[_0x91e5('0x64')]=function(_0x215a07,_0x290261,_0x2f16ec){var _0x30faf1,_0x5019c8,_0x33515c,_0x3060b3,_0x51f06a;return db[_0x91e5('0x2e')][_0x91e5('0x4d')]({'where':{'id':_0x215a07[_0x91e5('0x48')]['id']},'attributes':['id',_0x91e5('0x65'),_0x91e5('0x57'),'clientId',_0x91e5('0x60'),'serverUrl','code','refreshToken']})[_0x91e5('0x26')](handleEntityNotFound(_0x290261,null))[_0x91e5('0x26')](function(_0x107b26){_0x51f06a=_0x107b26;_0x30faf1=_0x51f06a[_0x91e5('0x65')];_0x5019c8=_0x30faf1===_0x91e5('0x66')?'eu':_0x91e5('0x67');_0x33515c=_0x51f06a[_0x91e5('0x68')];var _0x13a3e5=_0x33515c['slice'](-0x1);if(_0x13a3e5==='/'||_0x13a3e5==='\x5c'||_0x13a3e5===':'){_0x33515c=_0x33515c[_0x91e5('0x69')](0x0,_0x33515c['lastIndexOf'](_0x13a3e5));}if(!_0x51f06a[_0x91e5('0x5e')]){throw new Error(_0x91e5('0x6a'));}return getAccessToken(_0x51f06a);})[_0x91e5('0x26')](function(_0x89c092){if(_0x89c092){return rp({'method':_0x91e5('0x6b'),'uri':util['format'](_0x91e5('0x6c'),_0x5019c8),'qs':{'module':'Calls'},'headers':{'Authorization':_0x91e5('0x6d')+_0x89c092},'json':!![]});}})['then'](function(_0xb76fce){if(_0xb76fce){if(_0xb76fce[_0x91e5('0x6e')]&&_0xb76fce[_0x91e5('0x6e')]['error']){throw new Error(_0xb76fce[_0x91e5('0x6e')]['error']['message']);}var _0x88e418=[];var _0x19d777=[];var _0x20bb26=[_0x91e5('0x6f'),'Subject',_0x91e5('0x70'),_0x91e5('0x71'),'Call_Duration','Call_Result',_0x91e5('0x72'),_0x91e5('0x73')];_0x19d777=_[_0x91e5('0x74')](_0xb76fce[_0x91e5('0x38')],function(_0x145802){return _0x20bb26[_0x91e5('0x75')](_0x145802[_0x91e5('0x76')]);});for(var _0x574934=0x0;_0x574934<_0x19d777[_0x91e5('0x39')];_0x574934++){if(_0x19d777[_0x574934][_0x91e5('0x77')]===![]){_0x88e418['push']({'id':_0x19d777[_0x574934]['id'],'name':_0x19d777[_0x574934]['display_label'],'custom':_0x19d777[_0x574934][_0x91e5('0x78')],'options':_0x19d777[_0x574934][_0x91e5('0x79')]==='picklist'&&_0x19d777[_0x574934][_0x91e5('0x7a')][_0x91e5('0x39')]>-0x1?_[_0x91e5('0x2d')](_0x19d777[_0x574934][_0x91e5('0x7a')],function(_0x250f77){return{'name':_0x250f77,'value':_0x250f77};}):[]});}}return{'count':_0x88e418[_0x91e5('0x39')],'rows':_0x88e418};}else{return{'count':0x0,'rows':[]};}})[_0x91e5('0x26')](respondWithResult(_0x290261,null))[_0x91e5('0x47')](function(_0x489ee3){var _0x25442a=_0x215a07['query'][_0x91e5('0x7b')]?0x1f4:_0x489ee3[_0x91e5('0x7c')]||0x1f4;logger[_0x91e5('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0x91e5('0x64'),_0x25442a,JSON['stringify'](_0x489ee3));delete _0x489ee3['name'];if(_0x25442a===0x191){_0x25442a=0x190;}_0x290261[_0x91e5('0x1c')](_0x25442a)[_0x91e5('0x2b')](_0x215a07['query'][_0x91e5('0x7b')]?{'message':_0x91e5('0x7d'),'statusCode':_0x489ee3[_0x91e5('0x7c')]}:_0x489ee3);});};