Built motion from commit (unavailable).|2.3.7
[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 _0xf23b=['set','Content-Range','save','update','destroy','sendStatus','name','send','ZohoAccount','rawAttributes','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','order','sort','filter','merge','where','map','type','key','field','include','findAll','rows','catch','show','params','filters','includeAll','options','find','create','body','getConfigurations','findOne','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','ZohoConfiguration','ZohoField','getFields','host','slice','substring','lastIndexOf','GET','format','https://crm.%s/crm/private/json/Calls/getFields','authToken','crmapi','response','Calls','section','Call\x20Purpose','includes','push','label','customfield','true','val','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','jsforce','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','http','request','then','ZohoAccount,\x20%s,\x20%s','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','status','end','json','count','limit'];(function(_0x274482,_0x11c45b){var _0x20a5b7=function(_0x574478){while(--_0x574478){_0x274482['push'](_0x274482['shift']());}};_0x20a5b7(++_0x11c45b);}(_0xf23b,0x133));var _0xbf23=function(_0xcb190,_0x5143f2){_0xcb190=_0xcb190-0x0;var _0x4683ec=_0xf23b[_0xcb190];return _0x4683ec;};'use strict';var pdf=require(_0xbf23('0x0'));var emlformat=require(_0xbf23('0x1'));var rimraf=require(_0xbf23('0x2'));var zipdir=require(_0xbf23('0x3'));var jsonpatch=require(_0xbf23('0x4'));var rp=require('request-promise');var moment=require(_0xbf23('0x5'));var BPromise=require(_0xbf23('0x6'));var Mustache=require(_0xbf23('0x7'));var util=require('util');var path=require(_0xbf23('0x8'));var sox=require(_0xbf23('0x9'));var csv=require(_0xbf23('0xa'));var ejs=require(_0xbf23('0xb'));var fs=require('fs');var _=require(_0xbf23('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xbf23('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xbf23('0xa'));var querystring=require(_0xbf23('0xe'));var Papa=require(_0xbf23('0xf'));var authService=require(_0xbf23('0x10'));var hardwareService=require(_0xbf23('0x11'));var Redis=require('ioredis');var qs=require(_0xbf23('0x12'));var logger=require(_0xbf23('0x13'))(_0xbf23('0x14'));var utils=require(_0xbf23('0x15'));var config=require(_0xbf23('0x16'));var db=require(_0xbf23('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xbf23('0x18'));var client=jayson['client'][_0xbf23('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x4aea28,_0xc31cc,_0x2ed737,_0x4deb64){return new BPromise(function(_0xb6880,_0x5a738f){var _0x4db531=_0x4deb64||client;return _0x4db531[_0xbf23('0x1a')](_0x4aea28,_0x2ed737)[_0xbf23('0x1b')](function(_0x5dd4f9){logger['info'](_0xbf23('0x1c'),_0xc31cc,'request\x20sent');logger[_0xbf23('0x1d')](_0xbf23('0x1e'),_0xc31cc,_0xbf23('0x1f'),JSON[_0xbf23('0x20')](_0x5dd4f9));if(_0x5dd4f9['error']){if(_0x5dd4f9['error']['code']===0x1f4){logger[_0xbf23('0x21')](_0xbf23('0x1c'),_0xc31cc,_0x5dd4f9[_0xbf23('0x21')][_0xbf23('0x22')]);return _0x5a738f(_0x5dd4f9['error'][_0xbf23('0x22')]);}logger[_0xbf23('0x21')](_0xbf23('0x1c'),_0xc31cc,_0x5dd4f9['error'][_0xbf23('0x22')]);return _0xb6880(_0x5dd4f9[_0xbf23('0x21')][_0xbf23('0x22')]);}else{logger[_0xbf23('0x23')]('ZohoAccount,\x20%s,\x20%s',_0xc31cc,_0xbf23('0x1f'));_0xb6880(_0x5dd4f9['result'][_0xbf23('0x22')]);}})['catch'](function(_0x190d99){logger[_0xbf23('0x21')](_0xbf23('0x1c'),_0xc31cc,_0x190d99);_0x5a738f(_0x190d99);});});}function respondWithStatusCode(_0x16e0f8,_0x5a4852){_0x5a4852=_0x5a4852||0xcc;return function(_0x5e65c8){if(_0x5e65c8){return _0x16e0f8['sendStatus'](_0x5a4852);}return _0x16e0f8[_0xbf23('0x24')](_0x5a4852)[_0xbf23('0x25')]();};}function respondWithResult(_0x5195bd,_0x53fda2){_0x53fda2=_0x53fda2||0xc8;return function(_0x1896f1){if(_0x1896f1){return _0x5195bd[_0xbf23('0x24')](_0x53fda2)[_0xbf23('0x26')](_0x1896f1);}};}function respondWithFilteredResult(_0x380bd4,_0x2faf90){return function(_0x1fa3f3){if(_0x1fa3f3){var _0x30ce6a=_0x1fa3f3[_0xbf23('0x27')],_0x224fa4=_0x2faf90['offset'],_0x3caf3a=_0x2faf90['offset']+_0x2faf90[_0xbf23('0x28')],_0x177070;if(_0x3caf3a>=_0x30ce6a){_0x3caf3a=_0x30ce6a;_0x177070=0xc8;}else{_0x177070=0xce;}_0x380bd4['status'](_0x177070);return _0x380bd4[_0xbf23('0x29')](_0xbf23('0x2a'),_0x224fa4+'-'+_0x3caf3a+'/'+_0x30ce6a)['json'](_0x1fa3f3);}return null;};}function patchUpdates(_0x9e2440){return function(_0x55b1e2){try{jsonpatch['apply'](_0x55b1e2,_0x9e2440,!![]);}catch(_0x3378be){return BPromise['reject'](_0x3378be);}return _0x55b1e2[_0xbf23('0x2b')]();};}function saveUpdates(_0x42cb3a,_0x448e99){return function(_0x1ded3b){if(_0x1ded3b){return _0x1ded3b[_0xbf23('0x2c')](_0x42cb3a)[_0xbf23('0x1b')](function(_0x36a44d){return _0x36a44d;});}return null;};}function removeEntity(_0x3a9527,_0x4eea51){return function(_0x2f96a9){if(_0x2f96a9){return _0x2f96a9[_0xbf23('0x2d')]()['then'](function(){_0x3a9527['status'](0xcc)[_0xbf23('0x25')]();});}};}function handleEntityNotFound(_0x556167,_0x24a448){return function(_0x27ae70){if(!_0x27ae70){_0x556167[_0xbf23('0x2e')](0x194);}return _0x27ae70;};}function handleError(_0x2d0a57,_0x2b5f93){_0x2b5f93=_0x2b5f93||0x1f4;return function(_0x3a4760){logger['error'](_0x3a4760['stack']);if(_0x3a4760[_0xbf23('0x2f')]){delete _0x3a4760[_0xbf23('0x2f')];}_0x2d0a57['status'](_0x2b5f93)[_0xbf23('0x30')](_0x3a4760);};}exports['index']=function(_0x5be95b,_0x1011f0){var _0x3c821b={},_0x857a87={},_0x7e4a4a={'count':0x0,'rows':[]};var _0x557a1a=db[_0xbf23('0x31')][_0xbf23('0x32')];_0x857a87[_0xbf23('0x33')]=_[_0xbf23('0x34')](_0x557a1a);_0x857a87[_0xbf23('0x35')]=_['keys'](_0x5be95b['query']);_0x857a87['filters']=_[_0xbf23('0x36')](_0x857a87[_0xbf23('0x33')],_0x857a87['query']);_0x3c821b['attributes']=_[_0xbf23('0x36')](_0x857a87[_0xbf23('0x33')],qs['fields'](_0x5be95b[_0xbf23('0x35')][_0xbf23('0x37')]));_0x3c821b['attributes']=_0x3c821b[_0xbf23('0x38')][_0xbf23('0x39')]?_0x3c821b[_0xbf23('0x38')]:_0x857a87['model'];if(!_0x5be95b['query'][_0xbf23('0x3a')](_0xbf23('0x3b'))){_0x3c821b[_0xbf23('0x28')]=qs[_0xbf23('0x28')](_0x5be95b[_0xbf23('0x35')][_0xbf23('0x28')]);_0x3c821b['offset']=qs[_0xbf23('0x3c')](_0x5be95b['query'][_0xbf23('0x3c')]);}_0x3c821b[_0xbf23('0x3d')]=qs[_0xbf23('0x3e')](_0x5be95b[_0xbf23('0x35')]['sort']);_0x3c821b['where']=qs['filters'](_['pick'](_0x5be95b[_0xbf23('0x35')],_0x857a87['filters']));if(_0x5be95b[_0xbf23('0x35')][_0xbf23('0x3f')]){_0x3c821b['where']=_[_0xbf23('0x40')](_0x3c821b[_0xbf23('0x41')],{'$or':_[_0xbf23('0x42')](_0x557a1a,function(_0x446c65){if(_0x446c65[_0xbf23('0x43')][_0xbf23('0x44')]!=='VIRTUAL'){var _0x4c7006={};_0x4c7006[_0x446c65[_0xbf23('0x45')]]={'$like':'%'+_0x5be95b[_0xbf23('0x35')][_0xbf23('0x3f')]+'%'};return _0x4c7006;}})});}_0x3c821b=_[_0xbf23('0x40')]({},_0x3c821b,_0x5be95b['options']);var _0x47b565={'where':_0x3c821b['where']};return db[_0xbf23('0x31')][_0xbf23('0x27')](_0x47b565)[_0xbf23('0x1b')](function(_0x1a15d3){_0x7e4a4a[_0xbf23('0x27')]=_0x1a15d3;if(_0x5be95b[_0xbf23('0x35')]['includeAll']){_0x3c821b[_0xbf23('0x46')]=[{'all':!![]}];}return db['ZohoAccount'][_0xbf23('0x47')](_0x3c821b);})[_0xbf23('0x1b')](function(_0x19f453){_0x7e4a4a[_0xbf23('0x48')]=_0x19f453;return _0x7e4a4a;})[_0xbf23('0x1b')](respondWithFilteredResult(_0x1011f0,_0x3c821b))[_0xbf23('0x49')](handleError(_0x1011f0,null));};exports[_0xbf23('0x4a')]=function(_0x1bb23a,_0x5f5150){var _0x27a294={'raw':![],'where':{'id':_0x1bb23a[_0xbf23('0x4b')]['id']}},_0x5c50bf={};_0x5c50bf[_0xbf23('0x33')]=_[_0xbf23('0x34')](db['ZohoAccount'][_0xbf23('0x32')]);_0x5c50bf[_0xbf23('0x35')]=_[_0xbf23('0x34')](_0x1bb23a['query']);_0x5c50bf[_0xbf23('0x4c')]=_[_0xbf23('0x36')](_0x5c50bf['model'],_0x5c50bf['query']);_0x27a294[_0xbf23('0x38')]=_[_0xbf23('0x36')](_0x5c50bf[_0xbf23('0x33')],qs[_0xbf23('0x37')](_0x1bb23a[_0xbf23('0x35')]['fields']));_0x27a294[_0xbf23('0x38')]=_0x27a294['attributes']['length']?_0x27a294[_0xbf23('0x38')]:_0x5c50bf[_0xbf23('0x33')];if(_0x1bb23a[_0xbf23('0x35')][_0xbf23('0x4d')]){_0x27a294[_0xbf23('0x46')]=[{'all':!![]}];}_0x27a294=_[_0xbf23('0x40')]({},_0x27a294,_0x1bb23a[_0xbf23('0x4e')]);return db[_0xbf23('0x31')][_0xbf23('0x4f')](_0x27a294)[_0xbf23('0x1b')](handleEntityNotFound(_0x5f5150,null))[_0xbf23('0x1b')](respondWithResult(_0x5f5150,null))['catch'](handleError(_0x5f5150,null));};exports[_0xbf23('0x50')]=function(_0x178f93,_0x23775c){return db[_0xbf23('0x31')][_0xbf23('0x50')](_0x178f93['body'],{})[_0xbf23('0x1b')](respondWithResult(_0x23775c,0xc9))['catch'](handleError(_0x23775c,null));};exports['update']=function(_0x3865d0,_0x402abb){if(_0x3865d0[_0xbf23('0x51')]['id']){delete _0x3865d0[_0xbf23('0x51')]['id'];}return db['ZohoAccount'][_0xbf23('0x4f')]({'where':{'id':_0x3865d0[_0xbf23('0x4b')]['id']}})['then'](handleEntityNotFound(_0x402abb,null))[_0xbf23('0x1b')](saveUpdates(_0x3865d0[_0xbf23('0x51')],null))[_0xbf23('0x1b')](respondWithResult(_0x402abb,null))[_0xbf23('0x49')](handleError(_0x402abb,null));};exports[_0xbf23('0x2d')]=function(_0x318208,_0x18e94c){return db['ZohoAccount']['find']({'where':{'id':_0x318208['params']['id']}})['then'](handleEntityNotFound(_0x18e94c,null))[_0xbf23('0x1b')](removeEntity(_0x18e94c,null))[_0xbf23('0x49')](handleError(_0x18e94c,null));};exports[_0xbf23('0x52')]=function(_0x5eb5cf,_0x57afdd,_0x2390f5){var _0x5a73f7={};var _0x3bba6a={};var _0x3e2200;var _0x3f96fb;return db[_0xbf23('0x31')][_0xbf23('0x53')]({'where':{'id':_0x5eb5cf['params']['id']}})['then'](handleEntityNotFound(_0x57afdd,null))[_0xbf23('0x1b')](function(_0x58a358){if(_0x58a358){_0x3e2200=_0x58a358;_0x3bba6a[_0xbf23('0x33')]=_[_0xbf23('0x34')](db['ZohoConfiguration'][_0xbf23('0x32')]);_0x3bba6a[_0xbf23('0x35')]=_[_0xbf23('0x34')](_0x5eb5cf[_0xbf23('0x35')]);_0x3bba6a[_0xbf23('0x4c')]=_[_0xbf23('0x36')](_0x3bba6a[_0xbf23('0x33')],_0x3bba6a[_0xbf23('0x35')]);_0x5a73f7[_0xbf23('0x38')]=_[_0xbf23('0x36')](_0x3bba6a[_0xbf23('0x33')],qs[_0xbf23('0x37')](_0x5eb5cf[_0xbf23('0x35')][_0xbf23('0x37')]));_0x5a73f7[_0xbf23('0x38')]=_0x5a73f7[_0xbf23('0x38')]['length']?_0x5a73f7[_0xbf23('0x38')]:_0x3bba6a[_0xbf23('0x33')];_0x5a73f7['order']=qs['sort'](_0x5eb5cf[_0xbf23('0x35')][_0xbf23('0x3e')]);_0x5a73f7[_0xbf23('0x41')]=qs[_0xbf23('0x4c')](_[_0xbf23('0x54')](_0x5eb5cf[_0xbf23('0x35')],_0x3bba6a[_0xbf23('0x4c')]));if(_0x5eb5cf['query'][_0xbf23('0x3f')]){_0x5a73f7[_0xbf23('0x41')]=_[_0xbf23('0x40')](_0x5a73f7[_0xbf23('0x41')],{'$or':_['map'](_0x5a73f7[_0xbf23('0x38')],function(_0x3970a1){var _0x249ec7={};_0x249ec7[_0x3970a1]={'$like':'%'+_0x5eb5cf['query'][_0xbf23('0x3f')]+'%'};return _0x249ec7;})});}_0x5a73f7=_[_0xbf23('0x40')]({},_0x5a73f7,_0x5eb5cf[_0xbf23('0x4e')]);return _0x3e2200[_0xbf23('0x52')](_0x5a73f7);}})['then'](function(_0x374824){if(_0x374824){_0x3f96fb=_0x374824[_0xbf23('0x39')];if(!_0x5eb5cf[_0xbf23('0x35')]['hasOwnProperty'](_0xbf23('0x3b'))){_0x5a73f7[_0xbf23('0x28')]=qs['limit'](_0x5eb5cf['query'][_0xbf23('0x28')]);_0x5a73f7[_0xbf23('0x3c')]=qs[_0xbf23('0x3c')](_0x5eb5cf['query'][_0xbf23('0x3c')]);}return _0x3e2200[_0xbf23('0x52')](_0x5a73f7);}})[_0xbf23('0x1b')](function(_0x360e8c){if(_0x360e8c){return _0x360e8c?{'count':_0x3f96fb,'rows':_0x360e8c}:null;}})[_0xbf23('0x1b')](respondWithResult(_0x57afdd,null))[_0xbf23('0x49')](handleError(_0x57afdd,null));};exports[_0xbf23('0x55')]=function(_0x3770da,_0x5c5fb4,_0x30aeb3){if(_0x3770da['body']['id']){delete _0x3770da['body']['id'];}return db[_0xbf23('0x31')]['findOne']({'where':{'id':_0x3770da[_0xbf23('0x4b')]['id']}})[_0xbf23('0x1b')](handleEntityNotFound(_0x5c5fb4,null))[_0xbf23('0x1b')](function(_0x5b564d){if(_0x5b564d){_0x3770da[_0xbf23('0x51')][_0xbf23('0x56')]=_0x5b564d['id'];_0x3770da[_0xbf23('0x51')][_0xbf23('0x57')]=integrations[_0xbf23('0x58')](_0x3770da[_0xbf23('0x51')][_0xbf23('0x59')],_0x3770da['body'][_0xbf23('0x43')]);_0x3770da[_0xbf23('0x51')][_0xbf23('0x5a')]=integrations['getDescriptions'](_0x3770da[_0xbf23('0x51')][_0xbf23('0x59')],_0x3770da['body'][_0xbf23('0x43')]);return db[_0xbf23('0x5b')]['create'](_0x3770da[_0xbf23('0x51')],{'include':[{'model':db[_0xbf23('0x5c')],'as':_0xbf23('0x57')},{'model':db[_0xbf23('0x5c')],'as':_0xbf23('0x5a')}]});}return null;})['then'](respondWithResult(_0x5c5fb4,null))[_0xbf23('0x49')](handleError(_0x5c5fb4,null));};exports[_0xbf23('0x5d')]=function(_0x1ea148,_0x4722a2,_0x2c937e){var _0x394b6a='';return db[_0xbf23('0x31')]['findOne']({'where':{'id':_0x1ea148['params']['id']},'attributes':['id',_0xbf23('0x5e'),'authToken']})['then'](handleEntityNotFound(_0x4722a2,null))['then'](function(_0x53662c){if(_0x53662c){_0x394b6a=_0x53662c[_0xbf23('0x5e')];var _0x59ed9e=_0x394b6a[_0xbf23('0x5f')](-0x1);if(_0x59ed9e==='/'){_0x394b6a=_0x394b6a[_0xbf23('0x60')](0x0,_0x394b6a[_0xbf23('0x61')](_0x59ed9e));}return rp({'method':_0xbf23('0x62'),'uri':util[_0xbf23('0x63')](_0xbf23('0x64'),_0x394b6a),'qs':{'authtoken':_0x53662c[_0xbf23('0x65')],'scope':_0xbf23('0x66')},'json':!![]});}})[_0xbf23('0x1b')](function(_0xa2554c){if(_0xa2554c){if(_0xa2554c[_0xbf23('0x67')]&&_0xa2554c[_0xbf23('0x67')][_0xbf23('0x21')]){throw new Error(_0xa2554c[_0xbf23('0x67')][_0xbf23('0x21')][_0xbf23('0x22')]);}var _0x448119=[];if(_0xa2554c[_0xbf23('0x68')]&&_0xa2554c[_0xbf23('0x68')][_0xbf23('0x69')]){if(_0xa2554c['Calls'][_0xbf23('0x69')]['FL']){var _0x3bb81f=[_0xbf23('0x6a')];for(var _0x2ebf9b=0x0,_0x4f4959=_0xa2554c[_0xbf23('0x68')][_0xbf23('0x69')]['FL']['length'];_0x2ebf9b<_0x4f4959;_0x2ebf9b++){if(_[_0xbf23('0x6b')](_0x3bb81f,_0xa2554c[_0xbf23('0x68')]['section']['FL'][_0x2ebf9b]['dv'])){_0x448119[_0xbf23('0x6c')]({'id':_0xa2554c[_0xbf23('0x68')][_0xbf23('0x69')]['FL'][_0x2ebf9b]['dv'],'name':_0xa2554c[_0xbf23('0x68')][_0xbf23('0x69')]['FL'][_0x2ebf9b][_0xbf23('0x6d')],'custom':_0xa2554c[_0xbf23('0x68')][_0xbf23('0x69')]['FL'][_0x2ebf9b][_0xbf23('0x6e')]===_0xbf23('0x6f')?!![]:![],'options':_0xa2554c[_0xbf23('0x68')][_0xbf23('0x69')]['FL'][_0x2ebf9b][_0xbf23('0x43')]==='Pick\x20List'&&_0xa2554c['Calls']['section']['FL'][_0x2ebf9b][_0xbf23('0x70')]?_[_0xbf23('0x42')](_0xa2554c[_0xbf23('0x68')][_0xbf23('0x69')]['FL'][_0x2ebf9b][_0xbf23('0x70')],function(_0x368c77){return{'name':_0x368c77,'value':_0x368c77};}):[]});}}}}return{'count':_0x448119[_0xbf23('0x39')],'rows':_0x448119};}})[_0xbf23('0x1b')](respondWithResult(_0x4722a2,null))['catch'](function(_0x29c823){var _0x500d4e=_0x1ea148[_0xbf23('0x35')][_0xbf23('0x71')]?0x1f4:_0x29c823[_0xbf23('0x72')]||0x1f4;logger['error'](_0xbf23('0x73'),'getFields',_0x500d4e,JSON['stringify'](_0x29c823));delete _0x29c823[_0xbf23('0x2f')];if(_0x500d4e===0x191){_0x500d4e=0x190;}_0x4722a2[_0xbf23('0x24')](_0x500d4e)[_0xbf23('0x30')](_0x1ea148[_0xbf23('0x35')][_0xbf23('0x71')]?{'message':'Wrong\x20credentials','statusCode':_0x29c823[_0xbf23('0x72')]}:_0x29c823);});};