abc4af79a15519e4d38cfc8ac767a5df07739e20
[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 _0xa33f=['show','includeAll','merge','create','body','params','destroy','getConfigurations','findOne','keys','filter','nolimit','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','FreshsalesConfiguration','FreshsalesField','getFields','username','remoteUri','apiKey','slice','substring','format','%s%s','/api/selector/owners','Token\x20token=','users','email','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','test','Sequelize','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','FreshsalesAccount,\x20%s,\x20%s','message','result','catch','sendStatus','end','status','json','count','limit','set','Content-Range','apply','save','stack','name','send','index','map','FreshsalesAccount','rawAttributes','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','offset','order','sort','where','pick','type','VIRTUAL','options','include','rows'];(function(_0x371c1b,_0x46e8c7){var _0x2ed0d7=function(_0x24dbf0){while(--_0x24dbf0){_0x371c1b['push'](_0x371c1b['shift']());}};_0x2ed0d7(++_0x46e8c7);}(_0xa33f,0x97));var _0xfa33=function(_0x4f6f8c,_0x5e2778){_0x4f6f8c=_0x4f6f8c-0x0;var _0x245dd9=_0xa33f[_0x4f6f8c];return _0x245dd9;};'use strict';var pdf=require(_0xfa33('0x0'));var emlformat=require(_0xfa33('0x1'));var rimraf=require(_0xfa33('0x2'));var zipdir=require(_0xfa33('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfa33('0x4'));var moment=require(_0xfa33('0x5'));var BPromise=require(_0xfa33('0x6'));var Mustache=require(_0xfa33('0x7'));var util=require(_0xfa33('0x8'));var path=require(_0xfa33('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xfa33('0xa'));var fs=require('fs');var _=require(_0xfa33('0xb'));var squel=require(_0xfa33('0xc'));var crypto=require(_0xfa33('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xfa33('0xe'));var querystring=require(_0xfa33('0xf'));var Papa=require(_0xfa33('0x10'));var Redis=require(_0xfa33('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xfa33('0x12'));var hardwareService=require(_0xfa33('0x13'));var logger=require(_0xfa33('0x14'))(_0xfa33('0x15'));var utils=require(_0xfa33('0x16'));var config=require(_0xfa33('0x17'));var db=require(_0xfa33('0x18'))['db'];var integrations=require(_0xfa33('0x19'));var jayson=require(_0xfa33('0x1a'));var client=jayson[_0xfa33('0x1b')][_0xfa33('0x1c')]({'port':0x232a});function checkPasswordPattern(_0x4c869f,_0x3e0d24,_0x158e19){if(_0x158e19){var _0x5134ff=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5134ff[_0xfa33('0x1d')](_0x3e0d24)){return _0x4c869f;}else{throw new db[(_0xfa33('0x1e'))]['ValidationError'](_0xfa33('0x1f'));}}else{return _0x4c869f;}}function respondWithRpcPromise(_0x4379b4,_0x1d2c29,_0x1c7219,_0x1843c8){return new BPromise(function(_0x521c0c,_0x292dbd){var _0x389f14=_0x1843c8||client;return _0x389f14[_0xfa33('0x20')](_0x4379b4,_0x1c7219)[_0xfa33('0x21')](function(_0x4b4265){logger[_0xfa33('0x22')]('FreshsalesAccount,\x20%s,\x20%s',_0x1d2c29,_0xfa33('0x23'));logger[_0xfa33('0x24')](_0xfa33('0x25'),_0x1d2c29,'request\x20sent',JSON[_0xfa33('0x26')](_0x4b4265));if(_0x4b4265[_0xfa33('0x27')]){if(_0x4b4265['error'][_0xfa33('0x28')]===0x1f4){logger[_0xfa33('0x27')](_0xfa33('0x29'),_0x1d2c29,_0x4b4265[_0xfa33('0x27')][_0xfa33('0x2a')]);return _0x292dbd(_0x4b4265[_0xfa33('0x27')][_0xfa33('0x2a')]);}logger[_0xfa33('0x27')](_0xfa33('0x29'),_0x1d2c29,_0x4b4265['error'][_0xfa33('0x2a')]);return _0x521c0c(_0x4b4265[_0xfa33('0x27')][_0xfa33('0x2a')]);}else{logger[_0xfa33('0x22')](_0xfa33('0x29'),_0x1d2c29,_0xfa33('0x23'));_0x521c0c(_0x4b4265[_0xfa33('0x2b')][_0xfa33('0x2a')]);}})[_0xfa33('0x2c')](function(_0x26481c){logger[_0xfa33('0x27')](_0xfa33('0x29'),_0x1d2c29,_0x26481c);_0x292dbd(_0x26481c);});});}function respondWithStatusCode(_0x25e825,_0x11ed83){_0x11ed83=_0x11ed83||0xcc;return function(_0x580c5c){if(_0x580c5c){return _0x25e825[_0xfa33('0x2d')](_0x11ed83);}return _0x25e825['status'](_0x11ed83)[_0xfa33('0x2e')]();};}function respondWithResult(_0x3e3fb6,_0x1beab0){_0x1beab0=_0x1beab0||0xc8;return function(_0x10580b){if(_0x10580b){return _0x3e3fb6[_0xfa33('0x2f')](_0x1beab0)[_0xfa33('0x30')](_0x10580b);}};}function respondWithFilteredResult(_0x169e34,_0x47dc0e){return function(_0x4dcecc){if(_0x4dcecc){var _0x17db63=_0x4dcecc[_0xfa33('0x31')],_0x3a6f1c=_0x47dc0e['offset'],_0x2b3e9a=_0x47dc0e['offset']+_0x47dc0e[_0xfa33('0x32')],_0x3d0c74;if(_0x2b3e9a>=_0x17db63){_0x2b3e9a=_0x17db63;_0x3d0c74=0xc8;}else{_0x3d0c74=0xce;}_0x169e34[_0xfa33('0x2f')](_0x3d0c74);return _0x169e34[_0xfa33('0x33')](_0xfa33('0x34'),_0x3a6f1c+'-'+_0x2b3e9a+'/'+_0x17db63)[_0xfa33('0x30')](_0x4dcecc);}return null;};}function patchUpdates(_0x580f0a){return function(_0x1a04cd){try{jsonpatch[_0xfa33('0x35')](_0x1a04cd,_0x580f0a,!![]);}catch(_0x8d41a6){return BPromise['reject'](_0x8d41a6);}return _0x1a04cd[_0xfa33('0x36')]();};}function saveUpdates(_0x3a06d1,_0x491340){return function(_0x3e2a63){if(_0x3e2a63){return _0x3e2a63['update'](_0x3a06d1)[_0xfa33('0x21')](function(_0x45793e){return _0x45793e;});}return null;};}function removeEntity(_0x30aaa5,_0x30a5fe){return function(_0x3ff95a){if(_0x3ff95a){return _0x3ff95a['destroy']()[_0xfa33('0x21')](function(){_0x30aaa5[_0xfa33('0x2f')](0xcc)[_0xfa33('0x2e')]();});}};}function handleEntityNotFound(_0x5cd23e,_0x475eac){return function(_0x52974d){if(!_0x52974d){_0x5cd23e[_0xfa33('0x2d')](0x194);}return _0x52974d;};}function handleError(_0x5b04ff,_0x4fab5d){_0x4fab5d=_0x4fab5d||0x1f4;return function(_0x49a9f3){logger['error'](_0x49a9f3[_0xfa33('0x37')]);if(_0x49a9f3[_0xfa33('0x38')]){delete _0x49a9f3[_0xfa33('0x38')];}_0x5b04ff['status'](_0x4fab5d)[_0xfa33('0x39')](_0x49a9f3);};}exports[_0xfa33('0x3a')]=function(_0x429955,_0x7fd8c0){var _0x384575={},_0x24db24={},_0x25846a={'count':0x0,'rows':[]};var _0x3b149f=_[_0xfa33('0x3b')](db[_0xfa33('0x3c')][_0xfa33('0x3d')],function(_0x2bf410){return{'name':_0x2bf410['fieldName'],'type':_0x2bf410['type'][_0xfa33('0x3e')]};});_0x24db24[_0xfa33('0x3f')]=_['map'](_0x3b149f,_0xfa33('0x38'));_0x24db24[_0xfa33('0x40')]=_['keys'](_0x429955[_0xfa33('0x40')]);_0x24db24[_0xfa33('0x41')]=_['intersection'](_0x24db24['model'],_0x24db24[_0xfa33('0x40')]);_0x384575[_0xfa33('0x42')]=_[_0xfa33('0x43')](_0x24db24[_0xfa33('0x3f')],qs[_0xfa33('0x44')](_0x429955[_0xfa33('0x40')]['fields']));_0x384575[_0xfa33('0x42')]=_0x384575[_0xfa33('0x42')][_0xfa33('0x45')]?_0x384575[_0xfa33('0x42')]:_0x24db24['model'];if(!_0x429955[_0xfa33('0x40')][_0xfa33('0x46')]('nolimit')){_0x384575[_0xfa33('0x32')]=qs[_0xfa33('0x32')](_0x429955[_0xfa33('0x40')][_0xfa33('0x32')]);_0x384575['offset']=qs['offset'](_0x429955['query'][_0xfa33('0x47')]);}_0x384575[_0xfa33('0x48')]=qs[_0xfa33('0x49')](_0x429955[_0xfa33('0x40')][_0xfa33('0x49')]);_0x384575[_0xfa33('0x4a')]=qs[_0xfa33('0x41')](_[_0xfa33('0x4b')](_0x429955['query'],_0x24db24[_0xfa33('0x41')]),_0x3b149f);if(_0x429955['query']['filter']){_0x384575[_0xfa33('0x4a')]=_['merge'](_0x384575[_0xfa33('0x4a')],{'$or':_[_0xfa33('0x3b')](_0x3b149f,function(_0x2bec66){if(_0x2bec66[_0xfa33('0x4c')]!==_0xfa33('0x4d')){var _0x156258={};_0x156258[_0x2bec66['name']]={'$like':'%'+_0x429955['query']['filter']+'%'};return _0x156258;}})});}_0x384575=_['merge']({},_0x384575,_0x429955[_0xfa33('0x4e')]);var _0x5ceb60={'where':_0x384575['where']};return db[_0xfa33('0x3c')][_0xfa33('0x31')](_0x5ceb60)[_0xfa33('0x21')](function(_0x20d60d){_0x25846a[_0xfa33('0x31')]=_0x20d60d;if(_0x429955['query']['includeAll']){_0x384575[_0xfa33('0x4f')]=[{'all':!![]}];}return db[_0xfa33('0x3c')]['findAll'](_0x384575);})[_0xfa33('0x21')](function(_0x1e26ee){_0x25846a[_0xfa33('0x50')]=_0x1e26ee;return _0x25846a;})[_0xfa33('0x21')](respondWithFilteredResult(_0x7fd8c0,_0x384575))[_0xfa33('0x2c')](handleError(_0x7fd8c0,null));};exports[_0xfa33('0x51')]=function(_0x4b0cd2,_0x250fc9){var _0x28cd3f={'raw':![],'where':{'id':_0x4b0cd2['params']['id']}},_0x4e1f19={};_0x4e1f19[_0xfa33('0x3f')]=_['keys'](db[_0xfa33('0x3c')][_0xfa33('0x3d')]);_0x4e1f19[_0xfa33('0x40')]=_['keys'](_0x4b0cd2[_0xfa33('0x40')]);_0x4e1f19['filters']=_['intersection'](_0x4e1f19['model'],_0x4e1f19[_0xfa33('0x40')]);_0x28cd3f['attributes']=_[_0xfa33('0x43')](_0x4e1f19[_0xfa33('0x3f')],qs['fields'](_0x4b0cd2['query'][_0xfa33('0x44')]));_0x28cd3f[_0xfa33('0x42')]=_0x28cd3f[_0xfa33('0x42')]['length']?_0x28cd3f[_0xfa33('0x42')]:_0x4e1f19['model'];if(_0x4b0cd2[_0xfa33('0x40')][_0xfa33('0x52')]){_0x28cd3f[_0xfa33('0x4f')]=[{'all':!![]}];}_0x28cd3f=_[_0xfa33('0x53')]({},_0x28cd3f,_0x4b0cd2[_0xfa33('0x4e')]);return db[_0xfa33('0x3c')]['find'](_0x28cd3f)[_0xfa33('0x21')](handleEntityNotFound(_0x250fc9,null))[_0xfa33('0x21')](respondWithResult(_0x250fc9,null))[_0xfa33('0x2c')](handleError(_0x250fc9,null));};exports[_0xfa33('0x54')]=function(_0x489e19,_0x4b19ea){return db[_0xfa33('0x3c')][_0xfa33('0x54')](_0x489e19['body'],{})[_0xfa33('0x21')](respondWithResult(_0x4b19ea,0xc9))[_0xfa33('0x2c')](handleError(_0x4b19ea,null));};exports['update']=function(_0x4eb8f4,_0x2a4d41){if(_0x4eb8f4[_0xfa33('0x55')]['id']){delete _0x4eb8f4['body']['id'];}return db[_0xfa33('0x3c')]['find']({'where':{'id':_0x4eb8f4[_0xfa33('0x56')]['id']}})[_0xfa33('0x21')](handleEntityNotFound(_0x2a4d41,null))[_0xfa33('0x21')](saveUpdates(_0x4eb8f4['body'],null))[_0xfa33('0x21')](respondWithResult(_0x2a4d41,null))['catch'](handleError(_0x2a4d41,null));};exports[_0xfa33('0x57')]=function(_0x32beea,_0x4c6ae0){return db['FreshsalesAccount']['find']({'where':{'id':_0x32beea[_0xfa33('0x56')]['id']}})['then'](handleEntityNotFound(_0x4c6ae0,null))['then'](removeEntity(_0x4c6ae0,null))[_0xfa33('0x2c')](handleError(_0x4c6ae0,null));};exports[_0xfa33('0x58')]=function(_0x5a6db5,_0x32d363,_0x2a6a16){var _0x382dd8={};var _0x2106d4={};var _0x4cd239;var _0x5c5767;return db[_0xfa33('0x3c')][_0xfa33('0x59')]({'where':{'id':_0x5a6db5[_0xfa33('0x56')]['id']}})[_0xfa33('0x21')](handleEntityNotFound(_0x32d363,null))[_0xfa33('0x21')](function(_0x4b9aca){if(_0x4b9aca){_0x4cd239=_0x4b9aca;_0x2106d4[_0xfa33('0x3f')]=_['keys'](db['FreshsalesConfiguration']['rawAttributes']);_0x2106d4[_0xfa33('0x40')]=_[_0xfa33('0x5a')](_0x5a6db5['query']);_0x2106d4[_0xfa33('0x41')]=_['intersection'](_0x2106d4['model'],_0x2106d4[_0xfa33('0x40')]);_0x382dd8[_0xfa33('0x42')]=_[_0xfa33('0x43')](_0x2106d4[_0xfa33('0x3f')],qs[_0xfa33('0x44')](_0x5a6db5[_0xfa33('0x40')][_0xfa33('0x44')]));_0x382dd8[_0xfa33('0x42')]=_0x382dd8[_0xfa33('0x42')][_0xfa33('0x45')]?_0x382dd8[_0xfa33('0x42')]:_0x2106d4[_0xfa33('0x3f')];_0x382dd8[_0xfa33('0x48')]=qs['sort'](_0x5a6db5[_0xfa33('0x40')][_0xfa33('0x49')]);_0x382dd8[_0xfa33('0x4a')]=qs[_0xfa33('0x41')](_[_0xfa33('0x4b')](_0x5a6db5['query'],_0x2106d4[_0xfa33('0x41')]));if(_0x5a6db5[_0xfa33('0x40')][_0xfa33('0x5b')]){_0x382dd8['where']=_[_0xfa33('0x53')](_0x382dd8[_0xfa33('0x4a')],{'$or':_[_0xfa33('0x3b')](_0x382dd8[_0xfa33('0x42')],function(_0x14cd6f){var _0x13b67a={};_0x13b67a[_0x14cd6f]={'$like':'%'+_0x5a6db5['query'][_0xfa33('0x5b')]+'%'};return _0x13b67a;})});}_0x382dd8=_[_0xfa33('0x53')]({},_0x382dd8,_0x5a6db5['options']);return _0x4cd239[_0xfa33('0x58')](_0x382dd8);}})['then'](function(_0x4f8b3c){if(_0x4f8b3c){_0x5c5767=_0x4f8b3c[_0xfa33('0x45')];if(!_0x5a6db5['query'][_0xfa33('0x46')](_0xfa33('0x5c'))){_0x382dd8[_0xfa33('0x32')]=qs[_0xfa33('0x32')](_0x5a6db5['query']['limit']);_0x382dd8[_0xfa33('0x47')]=qs[_0xfa33('0x47')](_0x5a6db5[_0xfa33('0x40')][_0xfa33('0x47')]);}return _0x4cd239[_0xfa33('0x58')](_0x382dd8);}})[_0xfa33('0x21')](function(_0x2d82a4){if(_0x2d82a4){return _0x2d82a4?{'count':_0x5c5767,'rows':_0x2d82a4}:null;}})[_0xfa33('0x21')](respondWithResult(_0x32d363,null))[_0xfa33('0x2c')](handleError(_0x32d363,null));};exports[_0xfa33('0x5d')]=function(_0x3e27a7,_0x3905a3,_0x496952){if(_0x3e27a7[_0xfa33('0x55')]['id']){delete _0x3e27a7[_0xfa33('0x55')]['id'];}return db['FreshsalesAccount'][_0xfa33('0x59')]({'where':{'id':_0x3e27a7[_0xfa33('0x56')]['id']}})['then'](handleEntityNotFound(_0x3905a3,null))[_0xfa33('0x21')](function(_0x2450b8){if(_0x2450b8){_0x3e27a7[_0xfa33('0x55')][_0xfa33('0x5e')]=_0x2450b8['id'];_0x3e27a7[_0xfa33('0x55')][_0xfa33('0x5f')]=integrations[_0xfa33('0x60')](_0x3e27a7[_0xfa33('0x55')]['channel'],_0x3e27a7[_0xfa33('0x55')]['type']);_0x3e27a7[_0xfa33('0x55')][_0xfa33('0x61')]=integrations[_0xfa33('0x62')](_0x3e27a7[_0xfa33('0x55')][_0xfa33('0x63')],_0x3e27a7[_0xfa33('0x55')][_0xfa33('0x4c')]);return db[_0xfa33('0x64')]['create'](_0x3e27a7[_0xfa33('0x55')],{'include':[{'model':db[_0xfa33('0x65')],'as':'Subjects'},{'model':db[_0xfa33('0x65')],'as':'Descriptions'}]});}return null;})[_0xfa33('0x21')](respondWithResult(_0x3905a3,null))['catch'](handleError(_0x3905a3,null));};exports[_0xfa33('0x66')]=function(_0x450046,_0x563556,_0x2329a4){var _0x2dfb3f='';var _0x5bd02d='';return db['FreshsalesAccount'][_0xfa33('0x59')]({'where':{'id':_0x450046['params']['id']},'attributes':['id',_0xfa33('0x67'),_0xfa33('0x68'),_0xfa33('0x69')]})[_0xfa33('0x21')](handleEntityNotFound(_0x563556,null))['then'](function(_0x22c1c6){if(_0x22c1c6){_0x5bd02d=_0x22c1c6[_0xfa33('0x67')];_0x2dfb3f=_0x22c1c6[_0xfa33('0x68')];var _0x1e369f=_0x22c1c6['remoteUri'][_0xfa33('0x6a')](-0x1);if(_0x1e369f==='/'){_0x2dfb3f=_0x2dfb3f[_0xfa33('0x6b')](0x0,_0x2dfb3f['lastIndexOf'](_0x1e369f));}return rp({'method':'GET','uri':util[_0xfa33('0x6c')](_0xfa33('0x6d'),_0x2dfb3f,_0xfa33('0x6e')),'headers':{'Authorization':_0xfa33('0x6f')+_0x22c1c6['apiKey']},'json':!![]});}})[_0xfa33('0x21')](function(_0x14d2e7){if(_0x14d2e7){var _0x431887=_0x14d2e7[_0xfa33('0x70')];var _0x254b3d=![];var _0x42a527=null;for(_0x42a527=0x0;_0x42a527<_0x431887[_0xfa33('0x45')];_0x42a527++){if(_0x431887[_0x42a527][_0xfa33('0x71')]===_0x5bd02d){_0x254b3d=!![];}}if(_0x254b3d){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0xfa33('0x21')](respondWithResult(_0x563556,null))[_0xfa33('0x2c')](function(_0x59138c){var _0x5ab87c=_0x450046[_0xfa33('0x40')][_0xfa33('0x1d')]?0x1f4:_0x59138c[_0xfa33('0x72')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xfa33('0x66'),_0x5ab87c,JSON[_0xfa33('0x26')](_0x59138c));delete _0x59138c[_0xfa33('0x38')];if(_0x5ab87c===0x191){_0x5ab87c=0x190;}_0x563556[_0xfa33('0x2f')](_0x5ab87c)[_0xfa33('0x39')](_0x450046[_0xfa33('0x40')][_0xfa33('0x1d')]?{'message':_0xfa33('0x73'),'statusCode':_0x59138c[_0xfa33('0x72')]}:_0x59138c);});};