863d8aa30199a11b384e55d0758587e3ba19b573
[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 _0xedae=['Content-Range','json','save','update','destroy','stack','name','send','map','FreshsalesAccount','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','show','params','find','create','body','getConfigurations','findOne','FreshsalesConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','apiKey','slice','substring','GET','/api/selector/owners','Token\x20token=','email','Requested\x20Resource\x20not\x20Found','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','html-pdf','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../components/integrations/configuration','http','test','Sequelize','ValidationError','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','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','error','code','message','catch','sendStatus','status','end','count','offset','limit','set'];(function(_0x237fd1,_0x4fb2da){var _0x3585c2=function(_0x344efa){while(--_0x344efa){_0x237fd1['push'](_0x237fd1['shift']());}};_0x3585c2(++_0x4fb2da);}(_0xedae,0x180));var _0xeeda=function(_0x5b561d,_0x422b7c){_0x5b561d=_0x5b561d-0x0;var _0x431060=_0xedae[_0x5b561d];return _0x431060;};'use strict';var pdf=require(_0xeeda('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xeeda('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xeeda('0x2'));var rp=require('request-promise');var moment=require(_0xeeda('0x3'));var BPromise=require(_0xeeda('0x4'));var Mustache=require(_0xeeda('0x5'));var util=require('util');var path=require(_0xeeda('0x6'));var sox=require(_0xeeda('0x7'));var csv=require('to-csv');var ejs=require(_0xeeda('0x8'));var fs=require('fs');var _=require(_0xeeda('0x9'));var squel=require(_0xeeda('0xa'));var crypto=require(_0xeeda('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xeeda('0xc'));var toCsv=require(_0xeeda('0xd'));var querystring=require(_0xeeda('0xe'));var Papa=require('papaparse');var Redis=require(_0xeeda('0xf'));var authService=require(_0xeeda('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xeeda('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xeeda('0x12'))(_0xeeda('0x13'));var utils=require(_0xeeda('0x14'));var config=require(_0xeeda('0x15'));var db=require('../../mysqldb')['db'];var integrations=require(_0xeeda('0x16'));var jayson=require('jayson/promise');var client=jayson['client'][_0xeeda('0x17')]({'port':0x232a});function checkPasswordPattern(_0x2bcf3f,_0x1352c9,_0xbeedcd){if(_0xbeedcd){var _0x28ee49=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x28ee49[_0xeeda('0x18')](_0x1352c9)){return _0x2bcf3f;}else{throw new db[(_0xeeda('0x19'))][(_0xeeda('0x1a'))](_0xeeda('0x1b'));}}else{return _0x2bcf3f;}}function respondWithRpcPromise(_0x920433,_0x284519,_0xbf4ded,_0x37e13b){return new BPromise(function(_0x3ac3bb,_0x474de0){var _0x24ad4f=_0x37e13b||client;return _0x24ad4f[_0xeeda('0x1c')](_0x920433,_0xbf4ded)[_0xeeda('0x1d')](function(_0x3a4583){logger[_0xeeda('0x1e')](_0xeeda('0x1f'),_0x284519,_0xeeda('0x20'));logger['debug']('FreshsalesAccount,\x20%s,\x20%s,\x20%s',_0x284519,'request\x20sent',JSON['stringify'](_0x3a4583));if(_0x3a4583[_0xeeda('0x21')]){if(_0x3a4583['error'][_0xeeda('0x22')]===0x1f4){logger[_0xeeda('0x21')](_0xeeda('0x1f'),_0x284519,_0x3a4583[_0xeeda('0x21')][_0xeeda('0x23')]);return _0x474de0(_0x3a4583[_0xeeda('0x21')][_0xeeda('0x23')]);}logger[_0xeeda('0x21')](_0xeeda('0x1f'),_0x284519,_0x3a4583[_0xeeda('0x21')][_0xeeda('0x23')]);return _0x3ac3bb(_0x3a4583[_0xeeda('0x21')][_0xeeda('0x23')]);}else{logger[_0xeeda('0x1e')](_0xeeda('0x1f'),_0x284519,'request\x20sent');_0x3ac3bb(_0x3a4583['result']['message']);}})[_0xeeda('0x24')](function(_0x42ca8a){logger['error']('FreshsalesAccount,\x20%s,\x20%s',_0x284519,_0x42ca8a);_0x474de0(_0x42ca8a);});});}function respondWithStatusCode(_0x446b5a,_0x2a68da){_0x2a68da=_0x2a68da||0xcc;return function(_0x5eabe3){if(_0x5eabe3){return _0x446b5a[_0xeeda('0x25')](_0x2a68da);}return _0x446b5a[_0xeeda('0x26')](_0x2a68da)[_0xeeda('0x27')]();};}function respondWithResult(_0x2cdfb3,_0xf3532f){_0xf3532f=_0xf3532f||0xc8;return function(_0x5c30c6){if(_0x5c30c6){return _0x2cdfb3[_0xeeda('0x26')](_0xf3532f)['json'](_0x5c30c6);}};}function respondWithFilteredResult(_0x148c9e,_0xde604f){return function(_0x88aa5c){if(_0x88aa5c){var _0x42c266=_0x88aa5c[_0xeeda('0x28')],_0x3dfb28=_0xde604f[_0xeeda('0x29')],_0x38ec2a=_0xde604f[_0xeeda('0x29')]+_0xde604f[_0xeeda('0x2a')],_0x17f333;if(_0x38ec2a>=_0x42c266){_0x38ec2a=_0x42c266;_0x17f333=0xc8;}else{_0x17f333=0xce;}_0x148c9e[_0xeeda('0x26')](_0x17f333);return _0x148c9e[_0xeeda('0x2b')](_0xeeda('0x2c'),_0x3dfb28+'-'+_0x38ec2a+'/'+_0x42c266)[_0xeeda('0x2d')](_0x88aa5c);}return null;};}function patchUpdates(_0x52b3ed){return function(_0x442e6c){try{jsonpatch['apply'](_0x442e6c,_0x52b3ed,!![]);}catch(_0x58851f){return BPromise['reject'](_0x58851f);}return _0x442e6c[_0xeeda('0x2e')]();};}function saveUpdates(_0x5df798,_0x4496a6){return function(_0x5a15ca){if(_0x5a15ca){return _0x5a15ca[_0xeeda('0x2f')](_0x5df798)['then'](function(_0x91cd98){return _0x91cd98;});}return null;};}function removeEntity(_0x47a3cd,_0x356bda){return function(_0x42e48d){if(_0x42e48d){return _0x42e48d[_0xeeda('0x30')]()[_0xeeda('0x1d')](function(){_0x47a3cd['status'](0xcc)[_0xeeda('0x27')]();});}};}function handleEntityNotFound(_0x2be935,_0x4db76c){return function(_0x4963e8){if(!_0x4963e8){_0x2be935[_0xeeda('0x25')](0x194);}return _0x4963e8;};}function handleError(_0x2e5f06,_0x4f7c4f){_0x4f7c4f=_0x4f7c4f||0x1f4;return function(_0x530441){logger['error'](_0x530441[_0xeeda('0x31')]);if(_0x530441[_0xeeda('0x32')]){delete _0x530441[_0xeeda('0x32')];}_0x2e5f06[_0xeeda('0x26')](_0x4f7c4f)[_0xeeda('0x33')](_0x530441);};}exports['index']=function(_0x5da4cc,_0x58352c){var _0x2c0fb1={},_0x3e2703={},_0x3c82ed={'count':0x0,'rows':[]};var _0x4db7f2=_[_0xeeda('0x34')](db[_0xeeda('0x35')][_0xeeda('0x36')],function(_0x946280){return{'name':_0x946280['fieldName'],'type':_0x946280[_0xeeda('0x37')][_0xeeda('0x38')]};});_0x3e2703[_0xeeda('0x39')]=_[_0xeeda('0x34')](_0x4db7f2,_0xeeda('0x32'));_0x3e2703[_0xeeda('0x3a')]=_[_0xeeda('0x3b')](_0x5da4cc[_0xeeda('0x3a')]);_0x3e2703[_0xeeda('0x3c')]=_[_0xeeda('0x3d')](_0x3e2703[_0xeeda('0x39')],_0x3e2703[_0xeeda('0x3a')]);_0x2c0fb1[_0xeeda('0x3e')]=_[_0xeeda('0x3d')](_0x3e2703[_0xeeda('0x39')],qs[_0xeeda('0x3f')](_0x5da4cc[_0xeeda('0x3a')][_0xeeda('0x3f')]));_0x2c0fb1[_0xeeda('0x3e')]=_0x2c0fb1['attributes'][_0xeeda('0x40')]?_0x2c0fb1[_0xeeda('0x3e')]:_0x3e2703[_0xeeda('0x39')];if(!_0x5da4cc['query'][_0xeeda('0x41')](_0xeeda('0x42'))){_0x2c0fb1[_0xeeda('0x2a')]=qs[_0xeeda('0x2a')](_0x5da4cc[_0xeeda('0x3a')][_0xeeda('0x2a')]);_0x2c0fb1['offset']=qs['offset'](_0x5da4cc[_0xeeda('0x3a')][_0xeeda('0x29')]);}_0x2c0fb1[_0xeeda('0x43')]=qs[_0xeeda('0x44')](_0x5da4cc[_0xeeda('0x3a')][_0xeeda('0x44')]);_0x2c0fb1[_0xeeda('0x45')]=qs[_0xeeda('0x3c')](_[_0xeeda('0x46')](_0x5da4cc[_0xeeda('0x3a')],_0x3e2703[_0xeeda('0x3c')]),_0x4db7f2);if(_0x5da4cc[_0xeeda('0x3a')][_0xeeda('0x47')]){_0x2c0fb1['where']=_[_0xeeda('0x48')](_0x2c0fb1[_0xeeda('0x45')],{'$or':_[_0xeeda('0x34')](_0x4db7f2,function(_0x16023f){if(_0x16023f[_0xeeda('0x37')]!=='VIRTUAL'){var _0x45189d={};_0x45189d[_0x16023f[_0xeeda('0x32')]]={'$like':'%'+_0x5da4cc[_0xeeda('0x3a')][_0xeeda('0x47')]+'%'};return _0x45189d;}})});}_0x2c0fb1=_[_0xeeda('0x48')]({},_0x2c0fb1,_0x5da4cc[_0xeeda('0x49')]);var _0x52a7e1={'where':_0x2c0fb1[_0xeeda('0x45')]};return db[_0xeeda('0x35')]['count'](_0x52a7e1)[_0xeeda('0x1d')](function(_0x3ee45c){_0x3c82ed['count']=_0x3ee45c;if(_0x5da4cc[_0xeeda('0x3a')][_0xeeda('0x4a')]){_0x2c0fb1[_0xeeda('0x4b')]=[{'all':!![]}];}return db[_0xeeda('0x35')]['findAll'](_0x2c0fb1);})[_0xeeda('0x1d')](function(_0x24336){_0x3c82ed[_0xeeda('0x4c')]=_0x24336;return _0x3c82ed;})['then'](respondWithFilteredResult(_0x58352c,_0x2c0fb1))[_0xeeda('0x24')](handleError(_0x58352c,null));};exports[_0xeeda('0x4d')]=function(_0x19bc30,_0xccde87){var _0x87e378={'raw':![],'where':{'id':_0x19bc30[_0xeeda('0x4e')]['id']}},_0x29d98a={};_0x29d98a[_0xeeda('0x39')]=_[_0xeeda('0x3b')](db[_0xeeda('0x35')][_0xeeda('0x36')]);_0x29d98a[_0xeeda('0x3a')]=_[_0xeeda('0x3b')](_0x19bc30[_0xeeda('0x3a')]);_0x29d98a['filters']=_[_0xeeda('0x3d')](_0x29d98a['model'],_0x29d98a['query']);_0x87e378[_0xeeda('0x3e')]=_[_0xeeda('0x3d')](_0x29d98a[_0xeeda('0x39')],qs[_0xeeda('0x3f')](_0x19bc30[_0xeeda('0x3a')][_0xeeda('0x3f')]));_0x87e378['attributes']=_0x87e378[_0xeeda('0x3e')]['length']?_0x87e378['attributes']:_0x29d98a['model'];if(_0x19bc30[_0xeeda('0x3a')][_0xeeda('0x4a')]){_0x87e378[_0xeeda('0x4b')]=[{'all':!![]}];}_0x87e378=_[_0xeeda('0x48')]({},_0x87e378,_0x19bc30['options']);return db[_0xeeda('0x35')][_0xeeda('0x4f')](_0x87e378)['then'](handleEntityNotFound(_0xccde87,null))['then'](respondWithResult(_0xccde87,null))[_0xeeda('0x24')](handleError(_0xccde87,null));};exports[_0xeeda('0x50')]=function(_0x100fa0,_0x47d17d){return db[_0xeeda('0x35')]['create'](_0x100fa0['body'],{})['then'](respondWithResult(_0x47d17d,0xc9))[_0xeeda('0x24')](handleError(_0x47d17d,null));};exports[_0xeeda('0x2f')]=function(_0x4e9382,_0x1730d0){if(_0x4e9382['body']['id']){delete _0x4e9382['body']['id'];}return db['FreshsalesAccount'][_0xeeda('0x4f')]({'where':{'id':_0x4e9382['params']['id']}})[_0xeeda('0x1d')](handleEntityNotFound(_0x1730d0,null))[_0xeeda('0x1d')](saveUpdates(_0x4e9382[_0xeeda('0x51')],null))[_0xeeda('0x1d')](respondWithResult(_0x1730d0,null))[_0xeeda('0x24')](handleError(_0x1730d0,null));};exports[_0xeeda('0x30')]=function(_0x3479a4,_0xd068e4){return db[_0xeeda('0x35')][_0xeeda('0x4f')]({'where':{'id':_0x3479a4[_0xeeda('0x4e')]['id']}})['then'](handleEntityNotFound(_0xd068e4,null))[_0xeeda('0x1d')](removeEntity(_0xd068e4,null))[_0xeeda('0x24')](handleError(_0xd068e4,null));};exports[_0xeeda('0x52')]=function(_0x368b2f,_0x28e464,_0xc16a4c){var _0x10c044={};var _0x30e215={};var _0x17aeb5;var _0x3030fc;return db['FreshsalesAccount'][_0xeeda('0x53')]({'where':{'id':_0x368b2f[_0xeeda('0x4e')]['id']}})[_0xeeda('0x1d')](handleEntityNotFound(_0x28e464,null))[_0xeeda('0x1d')](function(_0x505a34){if(_0x505a34){_0x17aeb5=_0x505a34;_0x30e215[_0xeeda('0x39')]=_[_0xeeda('0x3b')](db[_0xeeda('0x54')][_0xeeda('0x36')]);_0x30e215['query']=_[_0xeeda('0x3b')](_0x368b2f[_0xeeda('0x3a')]);_0x30e215[_0xeeda('0x3c')]=_[_0xeeda('0x3d')](_0x30e215[_0xeeda('0x39')],_0x30e215[_0xeeda('0x3a')]);_0x10c044[_0xeeda('0x3e')]=_[_0xeeda('0x3d')](_0x30e215[_0xeeda('0x39')],qs[_0xeeda('0x3f')](_0x368b2f[_0xeeda('0x3a')][_0xeeda('0x3f')]));_0x10c044['attributes']=_0x10c044['attributes'][_0xeeda('0x40')]?_0x10c044[_0xeeda('0x3e')]:_0x30e215[_0xeeda('0x39')];_0x10c044['order']=qs[_0xeeda('0x44')](_0x368b2f[_0xeeda('0x3a')][_0xeeda('0x44')]);_0x10c044['where']=qs[_0xeeda('0x3c')](_[_0xeeda('0x46')](_0x368b2f[_0xeeda('0x3a')],_0x30e215[_0xeeda('0x3c')]));if(_0x368b2f['query'][_0xeeda('0x47')]){_0x10c044['where']=_[_0xeeda('0x48')](_0x10c044[_0xeeda('0x45')],{'$or':_[_0xeeda('0x34')](_0x10c044[_0xeeda('0x3e')],function(_0x886b43){var _0x38c4e1={};_0x38c4e1[_0x886b43]={'$like':'%'+_0x368b2f[_0xeeda('0x3a')]['filter']+'%'};return _0x38c4e1;})});}_0x10c044=_[_0xeeda('0x48')]({},_0x10c044,_0x368b2f['options']);return _0x17aeb5[_0xeeda('0x52')](_0x10c044);}})[_0xeeda('0x1d')](function(_0x2317fd){if(_0x2317fd){_0x3030fc=_0x2317fd[_0xeeda('0x40')];if(!_0x368b2f['query']['hasOwnProperty'](_0xeeda('0x42'))){_0x10c044[_0xeeda('0x2a')]=qs['limit'](_0x368b2f[_0xeeda('0x3a')][_0xeeda('0x2a')]);_0x10c044['offset']=qs[_0xeeda('0x29')](_0x368b2f[_0xeeda('0x3a')][_0xeeda('0x29')]);}return _0x17aeb5[_0xeeda('0x52')](_0x10c044);}})[_0xeeda('0x1d')](function(_0x393738){if(_0x393738){return _0x393738?{'count':_0x3030fc,'rows':_0x393738}:null;}})['then'](respondWithResult(_0x28e464,null))['catch'](handleError(_0x28e464,null));};exports[_0xeeda('0x55')]=function(_0x5cecf8,_0x4d82a0,_0x1bd352){if(_0x5cecf8[_0xeeda('0x51')]['id']){delete _0x5cecf8[_0xeeda('0x51')]['id'];}return db[_0xeeda('0x35')][_0xeeda('0x53')]({'where':{'id':_0x5cecf8[_0xeeda('0x4e')]['id']}})[_0xeeda('0x1d')](handleEntityNotFound(_0x4d82a0,null))['then'](function(_0x24ea4f){if(_0x24ea4f){_0x5cecf8[_0xeeda('0x51')][_0xeeda('0x56')]=_0x24ea4f['id'];_0x5cecf8[_0xeeda('0x51')][_0xeeda('0x57')]=integrations[_0xeeda('0x58')](_0x5cecf8[_0xeeda('0x51')][_0xeeda('0x59')],_0x5cecf8[_0xeeda('0x51')][_0xeeda('0x37')]);_0x5cecf8[_0xeeda('0x51')][_0xeeda('0x5a')]=integrations[_0xeeda('0x5b')](_0x5cecf8['body'][_0xeeda('0x59')],_0x5cecf8[_0xeeda('0x51')]['type']);return db['FreshsalesConfiguration'][_0xeeda('0x50')](_0x5cecf8[_0xeeda('0x51')],{'include':[{'model':db[_0xeeda('0x5c')],'as':_0xeeda('0x57')},{'model':db[_0xeeda('0x5c')],'as':'Descriptions'}]});}return null;})[_0xeeda('0x1d')](respondWithResult(_0x4d82a0,null))[_0xeeda('0x24')](handleError(_0x4d82a0,null));};exports[_0xeeda('0x5d')]=function(_0x5c90d2,_0x1da621,_0x20cafd){var _0x27bde2='';var _0x5845eb='';return db[_0xeeda('0x35')][_0xeeda('0x53')]({'where':{'id':_0x5c90d2[_0xeeda('0x4e')]['id']},'attributes':['id',_0xeeda('0x5e'),_0xeeda('0x5f'),_0xeeda('0x60')]})[_0xeeda('0x1d')](handleEntityNotFound(_0x1da621,null))[_0xeeda('0x1d')](function(_0x177679){if(_0x177679){_0x5845eb=_0x177679[_0xeeda('0x5e')];_0x27bde2=_0x177679['remoteUri'];var _0x345078=_0x177679[_0xeeda('0x5f')][_0xeeda('0x61')](-0x1);if(_0x345078==='/'){_0x27bde2=_0x27bde2[_0xeeda('0x62')](0x0,_0x27bde2['lastIndexOf'](_0x345078));}return rp({'method':_0xeeda('0x63'),'uri':util['format']('%s%s',_0x27bde2,_0xeeda('0x64')),'headers':{'Authorization':_0xeeda('0x65')+_0x177679[_0xeeda('0x60')]},'json':!![]});}})[_0xeeda('0x1d')](function(_0xd58280){if(_0xd58280){var _0x3bf640=_0xd58280['users'];var _0x253ff4=![];var _0x5e2934=null;for(_0x5e2934=0x0;_0x5e2934<_0x3bf640[_0xeeda('0x40')];_0x5e2934++){if(_0x3bf640[_0x5e2934][_0xeeda('0x66')]===_0x5845eb){_0x253ff4=!![];}}if(_0x253ff4){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xeeda('0x67')});}}})['then'](respondWithResult(_0x1da621,null))[_0xeeda('0x24')](function(_0xf372a6){var _0x41752a=_0x5c90d2['query'][_0xeeda('0x18')]?0x1f4:_0xf372a6[_0xeeda('0x68')]||0x1f4;logger[_0xeeda('0x21')](_0xeeda('0x69'),_0xeeda('0x5d'),_0x41752a,JSON['stringify'](_0xf372a6));delete _0xf372a6[_0xeeda('0x32')];if(_0x41752a===0x191){_0x41752a=0x190;}_0x1da621[_0xeeda('0x26')](_0x41752a)[_0xeeda('0x33')](_0x5c90d2[_0xeeda('0x3a')][_0xeeda('0x18')]?{'message':_0xeeda('0x6a'),'statusCode':_0xf372a6[_0xeeda('0x68')]}:_0xf372a6);});};