Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / intFreshsalesAccount / intFreshsalesAccount.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 _0x8f49=['FreshsalesConfiguration','FreshsalesField','getFields','username','remoteUri','apiKey','substring','lastIndexOf','GET','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','lodash','squel','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','test','ValidationError','then','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','status','end','json','count','offset','set','apply','reject','update','stack','name','FreshsalesAccount','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','includeAll','include','findAll','params','find','catch','create','body','destroy','getConfigurations','findOne','keys','options','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions'];(function(_0x4531a9,_0xf6386b){var _0x959027=function(_0x343c0b){while(--_0x343c0b){_0x4531a9['push'](_0x4531a9['shift']());}};_0x959027(++_0xf6386b);}(_0x8f49,0x150));var _0x98f4=function(_0x487b43,_0x210e39){_0x487b43=_0x487b43-0x0;var _0x822e7=_0x8f49[_0x487b43];return _0x822e7;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x98f4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x98f4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x98f4('0x2'));var moment=require('moment');var BPromise=require(_0x98f4('0x3'));var Mustache=require(_0x98f4('0x4'));var util=require(_0x98f4('0x5'));var path=require(_0x98f4('0x6'));var sox=require(_0x98f4('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x98f4('0x8'));var squel=require(_0x98f4('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x98f4('0xa'));var querystring=require(_0x98f4('0xb'));var Papa=require(_0x98f4('0xc'));var Redis=require(_0x98f4('0xd'));var authService=require(_0x98f4('0xe'));var qs=require(_0x98f4('0xf'));var as=require(_0x98f4('0x10'));var hardwareService=require(_0x98f4('0x11'));var logger=require(_0x98f4('0x12'))(_0x98f4('0x13'));var utils=require(_0x98f4('0x14'));var config=require(_0x98f4('0x15'));var db=require(_0x98f4('0x16'))['db'];var integrations=require(_0x98f4('0x17'));var jayson=require(_0x98f4('0x18'));var client=jayson['client']['http']({'port':0x232a});function checkPasswordPattern(_0x43cc48,_0x1c953e,_0x2cf87e){if(_0x2cf87e){var _0x37712e=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x37712e[_0x98f4('0x19')](_0x1c953e)){return _0x43cc48;}else{throw new db['Sequelize'][(_0x98f4('0x1a'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x43cc48;}}function respondWithRpcPromise(_0x5f5ba1,_0x507fb5,_0x3755b1,_0x33697a){return new BPromise(function(_0xdc23e6,_0x13a360){var _0x140332=_0x33697a||client;return _0x140332['request'](_0x5f5ba1,_0x3755b1)[_0x98f4('0x1b')](function(_0x5856b1){logger[_0x98f4('0x1c')](_0x98f4('0x1d'),_0x507fb5,_0x98f4('0x1e'));logger[_0x98f4('0x1f')](_0x98f4('0x20'),_0x507fb5,_0x98f4('0x1e'),JSON[_0x98f4('0x21')](_0x5856b1));if(_0x5856b1['error']){if(_0x5856b1[_0x98f4('0x22')][_0x98f4('0x23')]===0x1f4){logger['error'](_0x98f4('0x1d'),_0x507fb5,_0x5856b1[_0x98f4('0x22')]['message']);return _0x13a360(_0x5856b1[_0x98f4('0x22')][_0x98f4('0x24')]);}logger['error'](_0x98f4('0x1d'),_0x507fb5,_0x5856b1['error'][_0x98f4('0x24')]);return _0xdc23e6(_0x5856b1[_0x98f4('0x22')]['message']);}else{logger[_0x98f4('0x1c')]('FreshsalesAccount,\x20%s,\x20%s',_0x507fb5,'request\x20sent');_0xdc23e6(_0x5856b1['result']['message']);}})['catch'](function(_0x47de3b){logger['error'](_0x98f4('0x1d'),_0x507fb5,_0x47de3b);_0x13a360(_0x47de3b);});});}function respondWithStatusCode(_0x11d538,_0x4be1df){_0x4be1df=_0x4be1df||0xcc;return function(_0x2319e2){if(_0x2319e2){return _0x11d538['sendStatus'](_0x4be1df);}return _0x11d538[_0x98f4('0x25')](_0x4be1df)[_0x98f4('0x26')]();};}function respondWithResult(_0x296c76,_0x42aaa8){_0x42aaa8=_0x42aaa8||0xc8;return function(_0x10aa79){if(_0x10aa79){return _0x296c76[_0x98f4('0x25')](_0x42aaa8)[_0x98f4('0x27')](_0x10aa79);}};}function respondWithFilteredResult(_0x2c681f,_0x531786){return function(_0x65f641){if(_0x65f641){var _0x54be8f=_0x65f641[_0x98f4('0x28')],_0x4ff6f6=_0x531786['offset'],_0xdb7b19=_0x531786[_0x98f4('0x29')]+_0x531786['limit'],_0x30bc28;if(_0xdb7b19>=_0x54be8f){_0xdb7b19=_0x54be8f;_0x30bc28=0xc8;}else{_0x30bc28=0xce;}_0x2c681f[_0x98f4('0x25')](_0x30bc28);return _0x2c681f[_0x98f4('0x2a')]('Content-Range',_0x4ff6f6+'-'+_0xdb7b19+'/'+_0x54be8f)[_0x98f4('0x27')](_0x65f641);}return null;};}function patchUpdates(_0x534cc6){return function(_0x38adf0){try{jsonpatch[_0x98f4('0x2b')](_0x38adf0,_0x534cc6,!![]);}catch(_0x27a7a3){return BPromise[_0x98f4('0x2c')](_0x27a7a3);}return _0x38adf0['save']();};}function saveUpdates(_0x1976f1,_0x28537f){return function(_0x47147e){if(_0x47147e){return _0x47147e[_0x98f4('0x2d')](_0x1976f1)[_0x98f4('0x1b')](function(_0x120533){return _0x120533;});}return null;};}function removeEntity(_0x1b13a7,_0x4f079b){return function(_0x6a089e){if(_0x6a089e){return _0x6a089e['destroy']()['then'](function(){_0x1b13a7[_0x98f4('0x25')](0xcc)[_0x98f4('0x26')]();});}};}function handleEntityNotFound(_0x378523,_0x23a192){return function(_0x177b75){if(!_0x177b75){_0x378523['sendStatus'](0x194);}return _0x177b75;};}function handleError(_0xed1ce2,_0x246756){_0x246756=_0x246756||0x1f4;return function(_0xc59d47){logger[_0x98f4('0x22')](_0xc59d47[_0x98f4('0x2e')]);if(_0xc59d47['name']){delete _0xc59d47[_0x98f4('0x2f')];}_0xed1ce2[_0x98f4('0x25')](_0x246756)['send'](_0xc59d47);};}exports['index']=function(_0x276552,_0x4df417){var _0x58e3c7={},_0x787e91={},_0x80bee9={'count':0x0,'rows':[]};var _0x225aa0=_['map'](db[_0x98f4('0x30')][_0x98f4('0x31')],function(_0x4dd66c){return{'name':_0x4dd66c[_0x98f4('0x32')],'type':_0x4dd66c[_0x98f4('0x33')][_0x98f4('0x34')]};});_0x787e91[_0x98f4('0x35')]=_[_0x98f4('0x36')](_0x225aa0,'name');_0x787e91[_0x98f4('0x37')]=_['keys'](_0x276552[_0x98f4('0x37')]);_0x787e91[_0x98f4('0x38')]=_[_0x98f4('0x39')](_0x787e91[_0x98f4('0x35')],_0x787e91[_0x98f4('0x37')]);_0x58e3c7[_0x98f4('0x3a')]=_[_0x98f4('0x39')](_0x787e91[_0x98f4('0x35')],qs[_0x98f4('0x3b')](_0x276552['query'][_0x98f4('0x3b')]));_0x58e3c7[_0x98f4('0x3a')]=_0x58e3c7['attributes'][_0x98f4('0x3c')]?_0x58e3c7[_0x98f4('0x3a')]:_0x787e91[_0x98f4('0x35')];if(!_0x276552[_0x98f4('0x37')][_0x98f4('0x3d')](_0x98f4('0x3e'))){_0x58e3c7[_0x98f4('0x3f')]=qs[_0x98f4('0x3f')](_0x276552['query'][_0x98f4('0x3f')]);_0x58e3c7[_0x98f4('0x29')]=qs[_0x98f4('0x29')](_0x276552['query'][_0x98f4('0x29')]);}_0x58e3c7['order']=qs[_0x98f4('0x40')](_0x276552['query']['sort']);_0x58e3c7[_0x98f4('0x41')]=qs['filters'](_[_0x98f4('0x42')](_0x276552[_0x98f4('0x37')],_0x787e91[_0x98f4('0x38')]),_0x225aa0);if(_0x276552[_0x98f4('0x37')][_0x98f4('0x43')]){_0x58e3c7['where']=_[_0x98f4('0x44')](_0x58e3c7[_0x98f4('0x41')],{'$or':_[_0x98f4('0x36')](_0x225aa0,function(_0x4b44c9){if(_0x4b44c9[_0x98f4('0x33')]!=='VIRTUAL'){var _0x55aa81={};_0x55aa81[_0x4b44c9[_0x98f4('0x2f')]]={'$like':'%'+_0x276552[_0x98f4('0x37')]['filter']+'%'};return _0x55aa81;}})});}_0x58e3c7=_[_0x98f4('0x44')]({},_0x58e3c7,_0x276552['options']);var _0x3cf4cc={'where':_0x58e3c7[_0x98f4('0x41')]};return db['FreshsalesAccount'][_0x98f4('0x28')](_0x3cf4cc)['then'](function(_0x1e74fa){_0x80bee9[_0x98f4('0x28')]=_0x1e74fa;if(_0x276552[_0x98f4('0x37')][_0x98f4('0x45')]){_0x58e3c7[_0x98f4('0x46')]=[{'all':!![]}];}return db[_0x98f4('0x30')][_0x98f4('0x47')](_0x58e3c7);})[_0x98f4('0x1b')](function(_0x263c72){_0x80bee9['rows']=_0x263c72;return _0x80bee9;})['then'](respondWithFilteredResult(_0x4df417,_0x58e3c7))['catch'](handleError(_0x4df417,null));};exports['show']=function(_0x46703d,_0x1fc96f){var _0x384cb4={'raw':![],'where':{'id':_0x46703d[_0x98f4('0x48')]['id']}},_0x26cd6f={};_0x26cd6f[_0x98f4('0x35')]=_['keys'](db[_0x98f4('0x30')][_0x98f4('0x31')]);_0x26cd6f[_0x98f4('0x37')]=_['keys'](_0x46703d['query']);_0x26cd6f['filters']=_[_0x98f4('0x39')](_0x26cd6f[_0x98f4('0x35')],_0x26cd6f[_0x98f4('0x37')]);_0x384cb4[_0x98f4('0x3a')]=_['intersection'](_0x26cd6f['model'],qs[_0x98f4('0x3b')](_0x46703d[_0x98f4('0x37')][_0x98f4('0x3b')]));_0x384cb4[_0x98f4('0x3a')]=_0x384cb4[_0x98f4('0x3a')]['length']?_0x384cb4[_0x98f4('0x3a')]:_0x26cd6f[_0x98f4('0x35')];if(_0x46703d['query']['includeAll']){_0x384cb4[_0x98f4('0x46')]=[{'all':!![]}];}_0x384cb4=_[_0x98f4('0x44')]({},_0x384cb4,_0x46703d['options']);return db[_0x98f4('0x30')][_0x98f4('0x49')](_0x384cb4)['then'](handleEntityNotFound(_0x1fc96f,null))[_0x98f4('0x1b')](respondWithResult(_0x1fc96f,null))[_0x98f4('0x4a')](handleError(_0x1fc96f,null));};exports[_0x98f4('0x4b')]=function(_0x45ad6a,_0x1ddd3e){return db[_0x98f4('0x30')]['create'](_0x45ad6a[_0x98f4('0x4c')],{})['then'](respondWithResult(_0x1ddd3e,0xc9))[_0x98f4('0x4a')](handleError(_0x1ddd3e,null));};exports[_0x98f4('0x2d')]=function(_0x252794,_0x3247ea){if(_0x252794['body']['id']){delete _0x252794[_0x98f4('0x4c')]['id'];}return db[_0x98f4('0x30')][_0x98f4('0x49')]({'where':{'id':_0x252794[_0x98f4('0x48')]['id']}})['then'](handleEntityNotFound(_0x3247ea,null))[_0x98f4('0x1b')](saveUpdates(_0x252794[_0x98f4('0x4c')],null))[_0x98f4('0x1b')](respondWithResult(_0x3247ea,null))['catch'](handleError(_0x3247ea,null));};exports[_0x98f4('0x4d')]=function(_0xdb506,_0x488c3a){return db['FreshsalesAccount']['find']({'where':{'id':_0xdb506[_0x98f4('0x48')]['id']}})[_0x98f4('0x1b')](handleEntityNotFound(_0x488c3a,null))['then'](removeEntity(_0x488c3a,null))['catch'](handleError(_0x488c3a,null));};exports[_0x98f4('0x4e')]=function(_0x39c975,_0x450ca1,_0x1e0f3d){var _0x4ca876={};var _0x5f4c67={};var _0x2e133c;var _0x1ce047;return db[_0x98f4('0x30')][_0x98f4('0x4f')]({'where':{'id':_0x39c975[_0x98f4('0x48')]['id']}})['then'](handleEntityNotFound(_0x450ca1,null))[_0x98f4('0x1b')](function(_0x5e9eea){if(_0x5e9eea){_0x2e133c=_0x5e9eea;_0x5f4c67['model']=_[_0x98f4('0x50')](db['FreshsalesConfiguration'][_0x98f4('0x31')]);_0x5f4c67[_0x98f4('0x37')]=_['keys'](_0x39c975[_0x98f4('0x37')]);_0x5f4c67[_0x98f4('0x38')]=_[_0x98f4('0x39')](_0x5f4c67[_0x98f4('0x35')],_0x5f4c67[_0x98f4('0x37')]);_0x4ca876[_0x98f4('0x3a')]=_[_0x98f4('0x39')](_0x5f4c67['model'],qs[_0x98f4('0x3b')](_0x39c975[_0x98f4('0x37')][_0x98f4('0x3b')]));_0x4ca876[_0x98f4('0x3a')]=_0x4ca876[_0x98f4('0x3a')]['length']?_0x4ca876[_0x98f4('0x3a')]:_0x5f4c67['model'];_0x4ca876['order']=qs[_0x98f4('0x40')](_0x39c975[_0x98f4('0x37')][_0x98f4('0x40')]);_0x4ca876[_0x98f4('0x41')]=qs[_0x98f4('0x38')](_[_0x98f4('0x42')](_0x39c975[_0x98f4('0x37')],_0x5f4c67[_0x98f4('0x38')]));if(_0x39c975[_0x98f4('0x37')][_0x98f4('0x43')]){_0x4ca876[_0x98f4('0x41')]=_[_0x98f4('0x44')](_0x4ca876[_0x98f4('0x41')],{'$or':_[_0x98f4('0x36')](_0x4ca876[_0x98f4('0x3a')],function(_0x485a99){var _0x4b3575={};_0x4b3575[_0x485a99]={'$like':'%'+_0x39c975[_0x98f4('0x37')]['filter']+'%'};return _0x4b3575;})});}_0x4ca876=_[_0x98f4('0x44')]({},_0x4ca876,_0x39c975[_0x98f4('0x51')]);return _0x2e133c[_0x98f4('0x4e')](_0x4ca876);}})[_0x98f4('0x1b')](function(_0x3dc39a){if(_0x3dc39a){_0x1ce047=_0x3dc39a[_0x98f4('0x3c')];if(!_0x39c975['query'][_0x98f4('0x3d')]('nolimit')){_0x4ca876[_0x98f4('0x3f')]=qs[_0x98f4('0x3f')](_0x39c975[_0x98f4('0x37')]['limit']);_0x4ca876['offset']=qs[_0x98f4('0x29')](_0x39c975[_0x98f4('0x37')]['offset']);}return _0x2e133c['getConfigurations'](_0x4ca876);}})[_0x98f4('0x1b')](function(_0x4784bf){if(_0x4784bf){return _0x4784bf?{'count':_0x1ce047,'rows':_0x4784bf}:null;}})[_0x98f4('0x1b')](respondWithResult(_0x450ca1,null))[_0x98f4('0x4a')](handleError(_0x450ca1,null));};exports[_0x98f4('0x52')]=function(_0xf108b,_0x49cfa3,_0xa48f7c){if(_0xf108b[_0x98f4('0x4c')]['id']){delete _0xf108b[_0x98f4('0x4c')]['id'];}return db['FreshsalesAccount']['findOne']({'where':{'id':_0xf108b['params']['id']}})[_0x98f4('0x1b')](handleEntityNotFound(_0x49cfa3,null))['then'](function(_0xdda68a){if(_0xdda68a){_0xf108b[_0x98f4('0x4c')][_0x98f4('0x53')]=_0xdda68a['id'];_0xf108b[_0x98f4('0x4c')][_0x98f4('0x54')]=integrations['getSubjects'](_0xf108b[_0x98f4('0x4c')][_0x98f4('0x55')],_0xf108b['body'][_0x98f4('0x33')]);_0xf108b[_0x98f4('0x4c')][_0x98f4('0x56')]=integrations[_0x98f4('0x57')](_0xf108b[_0x98f4('0x4c')][_0x98f4('0x55')],_0xf108b[_0x98f4('0x4c')][_0x98f4('0x33')]);return db[_0x98f4('0x58')]['create'](_0xf108b[_0x98f4('0x4c')],{'include':[{'model':db[_0x98f4('0x59')],'as':_0x98f4('0x54')},{'model':db['FreshsalesField'],'as':_0x98f4('0x56')}]});}return null;})['then'](respondWithResult(_0x49cfa3,null))['catch'](handleError(_0x49cfa3,null));};exports[_0x98f4('0x5a')]=function(_0x2525d4,_0xa973a3,_0xbee54b){var _0x4f3207='';var _0x517cc4='';return db[_0x98f4('0x30')][_0x98f4('0x4f')]({'where':{'id':_0x2525d4['params']['id']},'attributes':['id',_0x98f4('0x5b'),_0x98f4('0x5c'),_0x98f4('0x5d')]})[_0x98f4('0x1b')](handleEntityNotFound(_0xa973a3,null))[_0x98f4('0x1b')](function(_0x588e01){if(_0x588e01){_0x517cc4=_0x588e01['username'];_0x4f3207=_0x588e01[_0x98f4('0x5c')];var _0x3617ab=_0x588e01['remoteUri']['slice'](-0x1);if(_0x3617ab==='/'){_0x4f3207=_0x4f3207[_0x98f4('0x5e')](0x0,_0x4f3207[_0x98f4('0x5f')](_0x3617ab));}return rp({'method':_0x98f4('0x60'),'uri':util['format'](_0x98f4('0x61'),_0x4f3207,_0x98f4('0x62')),'headers':{'Authorization':_0x98f4('0x63')+_0x588e01['apiKey']},'json':!![]});}})[_0x98f4('0x1b')](function(_0x40d74d){if(_0x40d74d){var _0x1e7f90=_0x40d74d[_0x98f4('0x64')];var _0x112d86=![];var _0x32bc5f=null;for(_0x32bc5f=0x0;_0x32bc5f<_0x1e7f90[_0x98f4('0x3c')];_0x32bc5f++){if(_0x1e7f90[_0x32bc5f][_0x98f4('0x65')]===_0x517cc4){_0x112d86=!![];}}if(_0x112d86){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x98f4('0x66')});}}})[_0x98f4('0x1b')](respondWithResult(_0xa973a3,null))[_0x98f4('0x4a')](function(_0x24962b){var _0x544053=_0x2525d4[_0x98f4('0x37')][_0x98f4('0x19')]?0x1f4:_0x24962b['statusCode']||0x1f4;logger[_0x98f4('0x22')](_0x98f4('0x67'),_0x98f4('0x5a'),_0x544053,JSON['stringify'](_0x24962b));delete _0x24962b[_0x98f4('0x2f')];if(_0x544053===0x191){_0x544053=0x190;}_0xa973a3['status'](_0x544053)[_0x98f4('0x68')](_0x2525d4[_0x98f4('0x37')][_0x98f4('0x19')]?{'message':_0x98f4('0x69'),'statusCode':_0x24962b['statusCode']}:_0x24962b);});};