Built motion from commit (unavailable).|2.3.4
[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 _0x34e7=['addConfiguration','getSubjects','channel','Descriptions','ZohoField','Subjects','getFields','host','authToken','slice','substring','lastIndexOf','GET','format','https://crm.%s/crm/private/json/Calls/getFields','response','Calls','section','Call\x20Purpose','push','customfield','true','map','val','test','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','papaparse','../../components/auth/service','../../config/license/hardware','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','http','then','info','request\x20sent','ZohoAccount,\x20%s,\x20%s,\x20%s','error','code','ZohoAccount,\x20%s,\x20%s','message','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','update','destroy','name','send','index','keys','query','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','ZohoAccount','count','includeAll','rows','catch','rawAttributes','include','find','create','body','params','getConfigurations','findOne','ZohoConfiguration'];(function(_0x195cb1,_0x3b0228){var _0x3260ad=function(_0x354bb3){while(--_0x354bb3){_0x195cb1['push'](_0x195cb1['shift']());}};_0x3260ad(++_0x3b0228);}(_0x34e7,0x164));var _0x734e=function(_0x47500b,_0x302762){_0x47500b=_0x47500b-0x0;var _0x492943=_0x34e7[_0x47500b];return _0x492943;};'use strict';var pdf=require(_0x734e('0x0'));var emlformat=require(_0x734e('0x1'));var rimraf=require(_0x734e('0x2'));var zipdir=require(_0x734e('0x3'));var jsonpatch=require(_0x734e('0x4'));var rp=require(_0x734e('0x5'));var moment=require(_0x734e('0x6'));var BPromise=require(_0x734e('0x7'));var Mustache=require(_0x734e('0x8'));var util=require(_0x734e('0x9'));var path=require(_0x734e('0xa'));var sox=require(_0x734e('0xb'));var csv=require(_0x734e('0xc'));var ejs=require(_0x734e('0xd'));var fs=require('fs');var _=require('lodash');var squel=require(_0x734e('0xe'));var crypto=require(_0x734e('0xf'));var jsforce=require(_0x734e('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x734e('0xc'));var querystring=require('querystring');var Papa=require(_0x734e('0x11'));var authService=require(_0x734e('0x12'));var hardwareService=require(_0x734e('0x13'));var Redis=require(_0x734e('0x14'));var qs=require(_0x734e('0x15'));var logger=require(_0x734e('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x734e('0x17'));var db=require(_0x734e('0x18'))['db'];var integrations=require(_0x734e('0x19'));var jayson=require(_0x734e('0x1a'));var client=jayson['client'][_0x734e('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x2cfb3a,_0x507bca,_0x17f200,_0x58df71){return new BPromise(function(_0x1b7510,_0x44653e){var _0x4f16d8=_0x58df71||client;return _0x4f16d8['request'](_0x2cfb3a,_0x17f200)[_0x734e('0x1c')](function(_0x2e0d33){logger[_0x734e('0x1d')]('ZohoAccount,\x20%s,\x20%s',_0x507bca,_0x734e('0x1e'));logger['debug'](_0x734e('0x1f'),_0x507bca,_0x734e('0x1e'),JSON['stringify'](_0x2e0d33));if(_0x2e0d33[_0x734e('0x20')]){if(_0x2e0d33['error'][_0x734e('0x21')]===0x1f4){logger['error'](_0x734e('0x22'),_0x507bca,_0x2e0d33[_0x734e('0x20')][_0x734e('0x23')]);return _0x44653e(_0x2e0d33[_0x734e('0x20')][_0x734e('0x23')]);}logger[_0x734e('0x20')](_0x734e('0x22'),_0x507bca,_0x2e0d33[_0x734e('0x20')][_0x734e('0x23')]);return _0x1b7510(_0x2e0d33['error'][_0x734e('0x23')]);}else{logger['info'](_0x734e('0x22'),_0x507bca,'request\x20sent');_0x1b7510(_0x2e0d33['result'][_0x734e('0x23')]);}})['catch'](function(_0x21b1a0){logger['error'](_0x734e('0x22'),_0x507bca,_0x21b1a0);_0x44653e(_0x21b1a0);});});}function respondWithStatusCode(_0x3afcc3,_0xfe35c3){_0xfe35c3=_0xfe35c3||0xcc;return function(_0x25ae9d){if(_0x25ae9d){return _0x3afcc3[_0x734e('0x24')](_0xfe35c3);}return _0x3afcc3[_0x734e('0x25')](_0xfe35c3)[_0x734e('0x26')]();};}function respondWithResult(_0x3170c5,_0x30c384){_0x30c384=_0x30c384||0xc8;return function(_0x482e66){if(_0x482e66){return _0x3170c5['status'](_0x30c384)[_0x734e('0x27')](_0x482e66);}};}function respondWithFilteredResult(_0x417961,_0x2f1ce4){return function(_0xd97b18){if(_0xd97b18){var _0x130daf=_0xd97b18['count'],_0x2a3762=_0x2f1ce4[_0x734e('0x28')],_0xe7de3=_0x2f1ce4['offset']+_0x2f1ce4[_0x734e('0x29')],_0x30c742;if(_0xe7de3>=_0x130daf){_0xe7de3=_0x130daf;_0x30c742=0xc8;}else{_0x30c742=0xce;}_0x417961[_0x734e('0x25')](_0x30c742);return _0x417961[_0x734e('0x2a')](_0x734e('0x2b'),_0x2a3762+'-'+_0xe7de3+'/'+_0x130daf)['json'](_0xd97b18);}return null;};}function patchUpdates(_0x3c965c){return function(_0x273438){try{jsonpatch[_0x734e('0x2c')](_0x273438,_0x3c965c,!![]);}catch(_0xa9aaba){return BPromise[_0x734e('0x2d')](_0xa9aaba);}return _0x273438['save']();};}function saveUpdates(_0x27cc50,_0x24558b){return function(_0x33652f){if(_0x33652f){return _0x33652f[_0x734e('0x2e')](_0x27cc50)['then'](function(_0x520623){return _0x520623;});}return null;};}function removeEntity(_0x496aa3,_0x3765ba){return function(_0xbf389e){if(_0xbf389e){return _0xbf389e[_0x734e('0x2f')]()[_0x734e('0x1c')](function(){_0x496aa3[_0x734e('0x25')](0xcc)[_0x734e('0x26')]();});}};}function handleEntityNotFound(_0x1fc59a,_0x11574e){return function(_0x2a0409){if(!_0x2a0409){_0x1fc59a['sendStatus'](0x194);}return _0x2a0409;};}function handleError(_0x4d9687,_0x18a9a8){_0x18a9a8=_0x18a9a8||0x1f4;return function(_0x3c308f){logger[_0x734e('0x20')](_0x3c308f['stack']);if(_0x3c308f[_0x734e('0x30')]){delete _0x3c308f[_0x734e('0x30')];}_0x4d9687['status'](_0x18a9a8)[_0x734e('0x31')](_0x3c308f);};}exports[_0x734e('0x32')]=function(_0x28baa4,_0x3d1a41){var _0x5a55c5={},_0x29e410={},_0x2267ec={'count':0x0,'rows':[]};var _0x2c99a1=db['ZohoAccount']['rawAttributes'];_0x29e410['model']=_[_0x734e('0x33')](_0x2c99a1);_0x29e410[_0x734e('0x34')]=_[_0x734e('0x33')](_0x28baa4[_0x734e('0x34')]);_0x29e410['filters']=_['intersection'](_0x29e410[_0x734e('0x35')],_0x29e410[_0x734e('0x34')]);_0x5a55c5[_0x734e('0x36')]=_[_0x734e('0x37')](_0x29e410[_0x734e('0x35')],qs[_0x734e('0x38')](_0x28baa4['query'][_0x734e('0x38')]));_0x5a55c5[_0x734e('0x36')]=_0x5a55c5['attributes'][_0x734e('0x39')]?_0x5a55c5[_0x734e('0x36')]:_0x29e410[_0x734e('0x35')];if(!_0x28baa4[_0x734e('0x34')][_0x734e('0x3a')](_0x734e('0x3b'))){_0x5a55c5[_0x734e('0x29')]=qs['limit'](_0x28baa4['query'][_0x734e('0x29')]);_0x5a55c5[_0x734e('0x28')]=qs[_0x734e('0x28')](_0x28baa4['query'][_0x734e('0x28')]);}_0x5a55c5[_0x734e('0x3c')]=qs[_0x734e('0x3d')](_0x28baa4[_0x734e('0x34')][_0x734e('0x3d')]);_0x5a55c5[_0x734e('0x3e')]=qs[_0x734e('0x3f')](_[_0x734e('0x40')](_0x28baa4['query'],_0x29e410[_0x734e('0x3f')]));if(_0x28baa4['query'][_0x734e('0x41')]){_0x5a55c5['where']=_[_0x734e('0x42')](_0x5a55c5[_0x734e('0x3e')],{'$or':_['map'](_0x2c99a1,function(_0x1f452e){if(_0x1f452e[_0x734e('0x43')]['key']!==_0x734e('0x44')){var _0xdd2767={};_0xdd2767[_0x1f452e['field']]={'$like':'%'+_0x28baa4[_0x734e('0x34')]['filter']+'%'};return _0xdd2767;}})});}_0x5a55c5=_[_0x734e('0x42')]({},_0x5a55c5,_0x28baa4[_0x734e('0x45')]);var _0x4650bb={'where':_0x5a55c5[_0x734e('0x3e')]};return db[_0x734e('0x46')]['count'](_0x4650bb)[_0x734e('0x1c')](function(_0x4672d8){_0x2267ec[_0x734e('0x47')]=_0x4672d8;if(_0x28baa4['query'][_0x734e('0x48')]){_0x5a55c5['include']=[{'all':!![]}];}return db[_0x734e('0x46')]['findAll'](_0x5a55c5);})[_0x734e('0x1c')](function(_0x39d76a){_0x2267ec[_0x734e('0x49')]=_0x39d76a;return _0x2267ec;})[_0x734e('0x1c')](respondWithFilteredResult(_0x3d1a41,_0x5a55c5))[_0x734e('0x4a')](handleError(_0x3d1a41,null));};exports['show']=function(_0x366876,_0x478f9e){var _0x30725b={'raw':![],'where':{'id':_0x366876['params']['id']}},_0x4cc207={};_0x4cc207[_0x734e('0x35')]=_['keys'](db[_0x734e('0x46')][_0x734e('0x4b')]);_0x4cc207[_0x734e('0x34')]=_[_0x734e('0x33')](_0x366876['query']);_0x4cc207[_0x734e('0x3f')]=_['intersection'](_0x4cc207[_0x734e('0x35')],_0x4cc207[_0x734e('0x34')]);_0x30725b[_0x734e('0x36')]=_[_0x734e('0x37')](_0x4cc207[_0x734e('0x35')],qs[_0x734e('0x38')](_0x366876[_0x734e('0x34')][_0x734e('0x38')]));_0x30725b['attributes']=_0x30725b[_0x734e('0x36')][_0x734e('0x39')]?_0x30725b[_0x734e('0x36')]:_0x4cc207[_0x734e('0x35')];if(_0x366876[_0x734e('0x34')]['includeAll']){_0x30725b[_0x734e('0x4c')]=[{'all':!![]}];}_0x30725b=_['merge']({},_0x30725b,_0x366876[_0x734e('0x45')]);return db[_0x734e('0x46')][_0x734e('0x4d')](_0x30725b)[_0x734e('0x1c')](handleEntityNotFound(_0x478f9e,null))['then'](respondWithResult(_0x478f9e,null))[_0x734e('0x4a')](handleError(_0x478f9e,null));};exports[_0x734e('0x4e')]=function(_0x26d993,_0x4e33d5){return db[_0x734e('0x46')][_0x734e('0x4e')](_0x26d993[_0x734e('0x4f')],{})[_0x734e('0x1c')](respondWithResult(_0x4e33d5,0xc9))[_0x734e('0x4a')](handleError(_0x4e33d5,null));};exports['update']=function(_0x4d6d31,_0x54dcc8){if(_0x4d6d31[_0x734e('0x4f')]['id']){delete _0x4d6d31[_0x734e('0x4f')]['id'];}return db[_0x734e('0x46')][_0x734e('0x4d')]({'where':{'id':_0x4d6d31[_0x734e('0x50')]['id']}})[_0x734e('0x1c')](handleEntityNotFound(_0x54dcc8,null))[_0x734e('0x1c')](saveUpdates(_0x4d6d31[_0x734e('0x4f')],null))[_0x734e('0x1c')](respondWithResult(_0x54dcc8,null))['catch'](handleError(_0x54dcc8,null));};exports[_0x734e('0x2f')]=function(_0x34ffa4,_0x90e457){return db[_0x734e('0x46')][_0x734e('0x4d')]({'where':{'id':_0x34ffa4['params']['id']}})[_0x734e('0x1c')](handleEntityNotFound(_0x90e457,null))[_0x734e('0x1c')](removeEntity(_0x90e457,null))['catch'](handleError(_0x90e457,null));};exports[_0x734e('0x51')]=function(_0x39d14a,_0x4e1f5f,_0x48897e){var _0x58eb7d={};var _0x56cce8={};var _0x10581d;var _0x438ab0;return db[_0x734e('0x46')][_0x734e('0x52')]({'where':{'id':_0x39d14a['params']['id']}})[_0x734e('0x1c')](handleEntityNotFound(_0x4e1f5f,null))[_0x734e('0x1c')](function(_0x3b46da){if(_0x3b46da){_0x10581d=_0x3b46da;_0x56cce8['model']=_[_0x734e('0x33')](db[_0x734e('0x53')]['rawAttributes']);_0x56cce8[_0x734e('0x34')]=_[_0x734e('0x33')](_0x39d14a[_0x734e('0x34')]);_0x56cce8[_0x734e('0x3f')]=_[_0x734e('0x37')](_0x56cce8[_0x734e('0x35')],_0x56cce8[_0x734e('0x34')]);_0x58eb7d[_0x734e('0x36')]=_['intersection'](_0x56cce8['model'],qs[_0x734e('0x38')](_0x39d14a[_0x734e('0x34')][_0x734e('0x38')]));_0x58eb7d['attributes']=_0x58eb7d[_0x734e('0x36')][_0x734e('0x39')]?_0x58eb7d[_0x734e('0x36')]:_0x56cce8[_0x734e('0x35')];_0x58eb7d[_0x734e('0x3c')]=qs[_0x734e('0x3d')](_0x39d14a[_0x734e('0x34')][_0x734e('0x3d')]);_0x58eb7d[_0x734e('0x3e')]=qs['filters'](_[_0x734e('0x40')](_0x39d14a[_0x734e('0x34')],_0x56cce8[_0x734e('0x3f')]));if(_0x39d14a[_0x734e('0x34')]['filter']){_0x58eb7d[_0x734e('0x3e')]=_[_0x734e('0x42')](_0x58eb7d[_0x734e('0x3e')],{'$or':_['map'](_0x58eb7d[_0x734e('0x36')],function(_0x5fdfe5){var _0x485752={};_0x485752[_0x5fdfe5]={'$like':'%'+_0x39d14a[_0x734e('0x34')][_0x734e('0x41')]+'%'};return _0x485752;})});}_0x58eb7d=_[_0x734e('0x42')]({},_0x58eb7d,_0x39d14a[_0x734e('0x45')]);return _0x10581d[_0x734e('0x51')](_0x58eb7d);}})[_0x734e('0x1c')](function(_0x15a5a0){if(_0x15a5a0){_0x438ab0=_0x15a5a0['length'];if(!_0x39d14a[_0x734e('0x34')]['hasOwnProperty'](_0x734e('0x3b'))){_0x58eb7d[_0x734e('0x29')]=qs['limit'](_0x39d14a[_0x734e('0x34')][_0x734e('0x29')]);_0x58eb7d['offset']=qs[_0x734e('0x28')](_0x39d14a[_0x734e('0x34')]['offset']);}return _0x10581d[_0x734e('0x51')](_0x58eb7d);}})['then'](function(_0x4f04f3){if(_0x4f04f3){return _0x4f04f3?{'count':_0x438ab0,'rows':_0x4f04f3}:null;}})[_0x734e('0x1c')](respondWithResult(_0x4e1f5f,null))[_0x734e('0x4a')](handleError(_0x4e1f5f,null));};exports[_0x734e('0x54')]=function(_0x3681c8,_0x49ee4e,_0x52c24a){if(_0x3681c8['body']['id']){delete _0x3681c8['body']['id'];}return db[_0x734e('0x46')][_0x734e('0x52')]({'where':{'id':_0x3681c8[_0x734e('0x50')]['id']}})['then'](handleEntityNotFound(_0x49ee4e,null))[_0x734e('0x1c')](function(_0x153660){if(_0x153660){_0x3681c8['body']['AccountId']=_0x153660['id'];_0x3681c8['body']['Subjects']=integrations[_0x734e('0x55')](_0x3681c8['body'][_0x734e('0x56')],_0x3681c8[_0x734e('0x4f')][_0x734e('0x43')]);_0x3681c8[_0x734e('0x4f')][_0x734e('0x57')]=integrations['getDescriptions'](_0x3681c8[_0x734e('0x4f')][_0x734e('0x56')],_0x3681c8[_0x734e('0x4f')][_0x734e('0x43')]);return db[_0x734e('0x53')]['create'](_0x3681c8[_0x734e('0x4f')],{'include':[{'model':db[_0x734e('0x58')],'as':_0x734e('0x59')},{'model':db[_0x734e('0x58')],'as':_0x734e('0x57')}]});}return null;})[_0x734e('0x1c')](respondWithResult(_0x49ee4e,null))[_0x734e('0x4a')](handleError(_0x49ee4e,null));};exports[_0x734e('0x5a')]=function(_0x5e7960,_0x2ce236,_0x3edc3b){var _0x144b86='';return db['ZohoAccount'][_0x734e('0x52')]({'where':{'id':_0x5e7960[_0x734e('0x50')]['id']},'attributes':['id',_0x734e('0x5b'),_0x734e('0x5c')]})['then'](handleEntityNotFound(_0x2ce236,null))[_0x734e('0x1c')](function(_0x127208){if(_0x127208){_0x144b86=_0x127208[_0x734e('0x5b')];var _0x46057d=_0x144b86[_0x734e('0x5d')](-0x1);if(_0x46057d==='/'){_0x144b86=_0x144b86[_0x734e('0x5e')](0x0,_0x144b86[_0x734e('0x5f')](_0x46057d));}return rp({'method':_0x734e('0x60'),'uri':util[_0x734e('0x61')](_0x734e('0x62'),_0x144b86),'qs':{'authtoken':_0x127208[_0x734e('0x5c')],'scope':'crmapi'},'json':!![]});}})[_0x734e('0x1c')](function(_0x444705){if(_0x444705){if(_0x444705[_0x734e('0x63')]&&_0x444705[_0x734e('0x63')][_0x734e('0x20')]){throw new Error(_0x444705['response']['error'][_0x734e('0x23')]);}var _0x2cb91a=[];if(_0x444705[_0x734e('0x64')]&&_0x444705['Calls'][_0x734e('0x65')]){if(_0x444705[_0x734e('0x64')][_0x734e('0x65')]['FL']){var _0x5f5423=[_0x734e('0x66')];for(var _0x422247=0x0,_0x52bf8e=_0x444705[_0x734e('0x64')]['section']['FL'][_0x734e('0x39')];_0x422247<_0x52bf8e;_0x422247++){if(_['includes'](_0x5f5423,_0x444705[_0x734e('0x64')][_0x734e('0x65')]['FL'][_0x422247]['dv'])){_0x2cb91a[_0x734e('0x67')]({'id':_0x444705[_0x734e('0x64')]['section']['FL'][_0x422247]['dv'],'name':_0x444705['Calls'][_0x734e('0x65')]['FL'][_0x422247]['label'],'custom':_0x444705[_0x734e('0x64')][_0x734e('0x65')]['FL'][_0x422247][_0x734e('0x68')]===_0x734e('0x69')?!![]:![],'options':_0x444705[_0x734e('0x64')][_0x734e('0x65')]['FL'][_0x422247]['type']==='Pick\x20List'&&_0x444705[_0x734e('0x64')][_0x734e('0x65')]['FL'][_0x422247]['val']?_[_0x734e('0x6a')](_0x444705['Calls'][_0x734e('0x65')]['FL'][_0x422247][_0x734e('0x6b')],function(_0xba242c){return{'name':_0xba242c,'value':_0xba242c};}):[]});}}}}return{'count':_0x2cb91a[_0x734e('0x39')],'rows':_0x2cb91a};}})[_0x734e('0x1c')](respondWithResult(_0x2ce236,null))[_0x734e('0x4a')](function(_0x7ddbef){var _0x16a950=_0x5e7960[_0x734e('0x34')][_0x734e('0x6c')]?0x1f4:_0x7ddbef['statusCode']||0x1f4;logger[_0x734e('0x20')]('getFields,\x20%s,\x20%s,\x20%s',_0x734e('0x5a'),_0x16a950,JSON['stringify'](_0x7ddbef));delete _0x7ddbef[_0x734e('0x30')];if(_0x16a950===0x191){_0x16a950=0x190;}_0x2ce236[_0x734e('0x25')](_0x16a950)[_0x734e('0x31')](_0x5e7960[_0x734e('0x34')]['test']?{'message':_0x734e('0x6d'),'statusCode':_0x7ddbef['statusCode']}:_0x7ddbef);});};