260227feec7e06e31a13e8afc5746e4ecb657ef7
[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 _0x4e67=['name','send','FreshsalesAccount','rawAttributes','type','model','map','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','include','params','keys','find','create','body','destroy','getConfigurations','findOne','FreshsalesConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','getFields','username','apiKey','remoteUri','slice','GET','%s%s','users','email','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','rimraf','zip-dir','request-promise','mustache','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','jayson/promise','http','request','then','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','sendStatus','status','json','offset','limit','Content-Range','apply','reject','save','update','end','stack'];(function(_0x129c49,_0x2c2242){var _0x1794c7=function(_0x32c0f6){while(--_0x32c0f6){_0x129c49['push'](_0x129c49['shift']());}};_0x1794c7(++_0x2c2242);}(_0x4e67,0xfb));var _0x74e6=function(_0x1876b2,_0x5d0225){_0x1876b2=_0x1876b2-0x0;var _0x9fb1e0=_0x4e67[_0x1876b2];return _0x9fb1e0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x74e6('0x0'));var zipdir=require(_0x74e6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x74e6('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x74e6('0x3'));var util=require('util');var path=require(_0x74e6('0x4'));var sox=require('sox');var csv=require(_0x74e6('0x5'));var ejs=require(_0x74e6('0x6'));var fs=require('fs');var fs_extra=require(_0x74e6('0x7'));var _=require(_0x74e6('0x8'));var squel=require(_0x74e6('0x9'));var crypto=require('crypto');var jsforce=require(_0x74e6('0xa'));var deskjs=require(_0x74e6('0xb'));var toCsv=require(_0x74e6('0x5'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x74e6('0xc'));var qs=require(_0x74e6('0xd'));var as=require(_0x74e6('0xe'));var hardwareService=require(_0x74e6('0xf'));var logger=require(_0x74e6('0x10'))(_0x74e6('0x11'));var utils=require('../../config/utils');var config=require(_0x74e6('0x12'));var licenseUtil=require(_0x74e6('0x13'));var db=require('../../mysqldb')['db'];var integrations=require(_0x74e6('0x14'));var jayson=require(_0x74e6('0x15'));var client=jayson['client'][_0x74e6('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x372aa9,_0x2baba1,_0x3bb291,_0x4d74c1){return new BPromise(function(_0xf234b0,_0x5b2bf4){var _0x2bc26e=_0x4d74c1||client;return _0x2bc26e[_0x74e6('0x17')](_0x372aa9,_0x3bb291)[_0x74e6('0x18')](function(_0x37d910){logger[_0x74e6('0x19')](_0x74e6('0x1a'),_0x2baba1,_0x74e6('0x1b'));logger[_0x74e6('0x1c')]('FreshsalesAccount,\x20%s,\x20%s,\x20%s',_0x2baba1,_0x74e6('0x1b'),JSON['stringify'](_0x37d910));if(_0x37d910[_0x74e6('0x1d')]){if(_0x37d910['error'][_0x74e6('0x1e')]===0x1f4){logger[_0x74e6('0x1d')](_0x74e6('0x1a'),_0x2baba1,_0x37d910[_0x74e6('0x1d')][_0x74e6('0x1f')]);return _0x5b2bf4(_0x37d910['error'][_0x74e6('0x1f')]);}logger['error'](_0x74e6('0x1a'),_0x2baba1,_0x37d910['error']['message']);return _0xf234b0(_0x37d910[_0x74e6('0x1d')][_0x74e6('0x1f')]);}else{logger['info'](_0x74e6('0x1a'),_0x2baba1,_0x74e6('0x1b'));_0xf234b0(_0x37d910[_0x74e6('0x20')][_0x74e6('0x1f')]);}})[_0x74e6('0x21')](function(_0x2b1ea4){logger[_0x74e6('0x1d')](_0x74e6('0x1a'),_0x2baba1,_0x2b1ea4);_0x5b2bf4(_0x2b1ea4);});});}function respondWithStatusCode(_0x5c581b,_0x45a4e9){_0x45a4e9=_0x45a4e9||0xcc;return function(_0xcbb8c0){if(_0xcbb8c0){return _0x5c581b[_0x74e6('0x22')](_0x45a4e9);}return _0x5c581b['status'](_0x45a4e9)['end']();};}function respondWithResult(_0x211e32,_0x4cb3fc){_0x4cb3fc=_0x4cb3fc||0xc8;return function(_0x465a2b){if(_0x465a2b){return _0x211e32[_0x74e6('0x23')](_0x4cb3fc)[_0x74e6('0x24')](_0x465a2b);}};}function respondWithFilteredResult(_0x597c17,_0x28b01c){return function(_0x42c404){if(_0x42c404){var _0x337ede=_0x42c404['count'],_0x3a975d=_0x28b01c[_0x74e6('0x25')],_0x2b47ad=_0x28b01c[_0x74e6('0x25')]+_0x28b01c[_0x74e6('0x26')],_0x1ea6af;if(_0x2b47ad>=_0x337ede){_0x2b47ad=_0x337ede;_0x1ea6af=0xc8;}else{_0x1ea6af=0xce;}_0x597c17[_0x74e6('0x23')](_0x1ea6af);return _0x597c17['set'](_0x74e6('0x27'),_0x3a975d+'-'+_0x2b47ad+'/'+_0x337ede)[_0x74e6('0x24')](_0x42c404);}return null;};}function patchUpdates(_0x476819){return function(_0x521721){try{jsonpatch[_0x74e6('0x28')](_0x521721,_0x476819,!![]);}catch(_0x476a1e){return BPromise[_0x74e6('0x29')](_0x476a1e);}return _0x521721[_0x74e6('0x2a')]();};}function saveUpdates(_0x2613da,_0x503517){return function(_0x98e8c0){if(_0x98e8c0){return _0x98e8c0[_0x74e6('0x2b')](_0x2613da)[_0x74e6('0x18')](function(_0x5a89b2){return _0x5a89b2;});}return null;};}function removeEntity(_0x19f8c7,_0x53f697){return function(_0x3abb37){if(_0x3abb37){return _0x3abb37['destroy']()[_0x74e6('0x18')](function(){_0x19f8c7[_0x74e6('0x23')](0xcc)[_0x74e6('0x2c')]();});}};}function handleEntityNotFound(_0x39c178,_0x4d57e){return function(_0x63e394){if(!_0x63e394){_0x39c178[_0x74e6('0x22')](0x194);}return _0x63e394;};}function handleError(_0xb8d109,_0x1a2d5a){_0x1a2d5a=_0x1a2d5a||0x1f4;return function(_0x47acfd){logger[_0x74e6('0x1d')](_0x47acfd[_0x74e6('0x2d')]);if(_0x47acfd[_0x74e6('0x2e')]){delete _0x47acfd[_0x74e6('0x2e')];}_0xb8d109[_0x74e6('0x23')](_0x1a2d5a)[_0x74e6('0x2f')](_0x47acfd);};}exports['index']=function(_0x50f7fd,_0x50c708){var _0xc4b4ce={},_0x3fd62f={},_0x59b7b8={'count':0x0,'rows':[]};var _0x477521=_['map'](db[_0x74e6('0x30')][_0x74e6('0x31')],function(_0x9095b6){return{'name':_0x9095b6['fieldName'],'type':_0x9095b6[_0x74e6('0x32')]['key']};});_0x3fd62f[_0x74e6('0x33')]=_[_0x74e6('0x34')](_0x477521,'name');_0x3fd62f[_0x74e6('0x35')]=_['keys'](_0x50f7fd[_0x74e6('0x35')]);_0x3fd62f['filters']=_['intersection'](_0x3fd62f['model'],_0x3fd62f['query']);_0xc4b4ce[_0x74e6('0x36')]=_[_0x74e6('0x37')](_0x3fd62f[_0x74e6('0x33')],qs[_0x74e6('0x38')](_0x50f7fd['query'][_0x74e6('0x38')]));_0xc4b4ce[_0x74e6('0x36')]=_0xc4b4ce[_0x74e6('0x36')][_0x74e6('0x39')]?_0xc4b4ce[_0x74e6('0x36')]:_0x3fd62f['model'];if(!_0x50f7fd[_0x74e6('0x35')][_0x74e6('0x3a')](_0x74e6('0x3b'))){_0xc4b4ce[_0x74e6('0x26')]=qs[_0x74e6('0x26')](_0x50f7fd[_0x74e6('0x35')][_0x74e6('0x26')]);_0xc4b4ce['offset']=qs[_0x74e6('0x25')](_0x50f7fd[_0x74e6('0x35')][_0x74e6('0x25')]);}_0xc4b4ce[_0x74e6('0x3c')]=qs[_0x74e6('0x3d')](_0x50f7fd['query'][_0x74e6('0x3d')]);_0xc4b4ce[_0x74e6('0x3e')]=qs[_0x74e6('0x3f')](_[_0x74e6('0x40')](_0x50f7fd['query'],_0x3fd62f['filters']),_0x477521);if(_0x50f7fd[_0x74e6('0x35')][_0x74e6('0x41')]){_0xc4b4ce[_0x74e6('0x3e')]=_[_0x74e6('0x42')](_0xc4b4ce[_0x74e6('0x3e')],{'$or':_[_0x74e6('0x34')](_0x477521,function(_0x325f1c){if(_0x325f1c['type']!==_0x74e6('0x43')){var _0x57fbc3={};_0x57fbc3[_0x325f1c[_0x74e6('0x2e')]]={'$like':'%'+_0x50f7fd[_0x74e6('0x35')][_0x74e6('0x41')]+'%'};return _0x57fbc3;}})});}_0xc4b4ce=_['merge']({},_0xc4b4ce,_0x50f7fd[_0x74e6('0x44')]);var _0x45a3e6={'where':_0xc4b4ce[_0x74e6('0x3e')]};return db[_0x74e6('0x30')][_0x74e6('0x45')](_0x45a3e6)[_0x74e6('0x18')](function(_0x34e73b){_0x59b7b8[_0x74e6('0x45')]=_0x34e73b;if(_0x50f7fd[_0x74e6('0x35')][_0x74e6('0x46')]){_0xc4b4ce[_0x74e6('0x47')]=[{'all':!![]}];}return db['FreshsalesAccount']['findAll'](_0xc4b4ce);})[_0x74e6('0x18')](function(_0x23db97){_0x59b7b8['rows']=_0x23db97;return _0x59b7b8;})[_0x74e6('0x18')](respondWithFilteredResult(_0x50c708,_0xc4b4ce))[_0x74e6('0x21')](handleError(_0x50c708,null));};exports['show']=function(_0x541da1,_0x183fa4){var _0x422dfb={'raw':![],'where':{'id':_0x541da1[_0x74e6('0x48')]['id']}},_0x40319b={};_0x40319b[_0x74e6('0x33')]=_[_0x74e6('0x49')](db[_0x74e6('0x30')][_0x74e6('0x31')]);_0x40319b[_0x74e6('0x35')]=_[_0x74e6('0x49')](_0x541da1[_0x74e6('0x35')]);_0x40319b[_0x74e6('0x3f')]=_['intersection'](_0x40319b['model'],_0x40319b[_0x74e6('0x35')]);_0x422dfb[_0x74e6('0x36')]=_[_0x74e6('0x37')](_0x40319b[_0x74e6('0x33')],qs[_0x74e6('0x38')](_0x541da1['query'][_0x74e6('0x38')]));_0x422dfb[_0x74e6('0x36')]=_0x422dfb[_0x74e6('0x36')][_0x74e6('0x39')]?_0x422dfb[_0x74e6('0x36')]:_0x40319b[_0x74e6('0x33')];if(_0x541da1[_0x74e6('0x35')][_0x74e6('0x46')]){_0x422dfb[_0x74e6('0x47')]=[{'all':!![]}];}_0x422dfb=_['merge']({},_0x422dfb,_0x541da1['options']);return db[_0x74e6('0x30')][_0x74e6('0x4a')](_0x422dfb)[_0x74e6('0x18')](handleEntityNotFound(_0x183fa4,null))['then'](respondWithResult(_0x183fa4,null))[_0x74e6('0x21')](handleError(_0x183fa4,null));};exports[_0x74e6('0x4b')]=function(_0x2a1b47,_0x5ce114){return db['FreshsalesAccount'][_0x74e6('0x4b')](_0x2a1b47[_0x74e6('0x4c')],{})[_0x74e6('0x18')](respondWithResult(_0x5ce114,0xc9))[_0x74e6('0x21')](handleError(_0x5ce114,null));};exports['update']=function(_0x30b40c,_0x235b14){if(_0x30b40c[_0x74e6('0x4c')]['id']){delete _0x30b40c[_0x74e6('0x4c')]['id'];}return db[_0x74e6('0x30')][_0x74e6('0x4a')]({'where':{'id':_0x30b40c[_0x74e6('0x48')]['id']}})[_0x74e6('0x18')](handleEntityNotFound(_0x235b14,null))[_0x74e6('0x18')](saveUpdates(_0x30b40c[_0x74e6('0x4c')],null))[_0x74e6('0x18')](respondWithResult(_0x235b14,null))[_0x74e6('0x21')](handleError(_0x235b14,null));};exports[_0x74e6('0x4d')]=function(_0x5949ca,_0x3156a0){return db['FreshsalesAccount'][_0x74e6('0x4a')]({'where':{'id':_0x5949ca['params']['id']}})[_0x74e6('0x18')](handleEntityNotFound(_0x3156a0,null))['then'](removeEntity(_0x3156a0,null))[_0x74e6('0x21')](handleError(_0x3156a0,null));};exports[_0x74e6('0x4e')]=function(_0x195dda,_0x1522cd,_0x4961bf){var _0x16553d={};var _0x3b7cdd={};var _0x5e0f18;var _0xc522f4;return db[_0x74e6('0x30')][_0x74e6('0x4f')]({'where':{'id':_0x195dda['params']['id']}})[_0x74e6('0x18')](handleEntityNotFound(_0x1522cd,null))[_0x74e6('0x18')](function(_0x297754){if(_0x297754){_0x5e0f18=_0x297754;_0x3b7cdd['model']=_[_0x74e6('0x49')](db[_0x74e6('0x50')][_0x74e6('0x31')]);_0x3b7cdd[_0x74e6('0x35')]=_['keys'](_0x195dda[_0x74e6('0x35')]);_0x3b7cdd[_0x74e6('0x3f')]=_['intersection'](_0x3b7cdd[_0x74e6('0x33')],_0x3b7cdd['query']);_0x16553d[_0x74e6('0x36')]=_[_0x74e6('0x37')](_0x3b7cdd[_0x74e6('0x33')],qs[_0x74e6('0x38')](_0x195dda[_0x74e6('0x35')][_0x74e6('0x38')]));_0x16553d[_0x74e6('0x36')]=_0x16553d[_0x74e6('0x36')]['length']?_0x16553d['attributes']:_0x3b7cdd[_0x74e6('0x33')];_0x16553d[_0x74e6('0x3c')]=qs[_0x74e6('0x3d')](_0x195dda[_0x74e6('0x35')]['sort']);_0x16553d[_0x74e6('0x3e')]=qs['filters'](_[_0x74e6('0x40')](_0x195dda['query'],_0x3b7cdd[_0x74e6('0x3f')]));if(_0x195dda[_0x74e6('0x35')][_0x74e6('0x41')]){_0x16553d[_0x74e6('0x3e')]=_['merge'](_0x16553d['where'],{'$or':_[_0x74e6('0x34')](_0x16553d[_0x74e6('0x36')],function(_0x282ea9){var _0x3e4781={};_0x3e4781[_0x282ea9]={'$like':'%'+_0x195dda[_0x74e6('0x35')][_0x74e6('0x41')]+'%'};return _0x3e4781;})});}_0x16553d=_[_0x74e6('0x42')]({},_0x16553d,_0x195dda['options']);return _0x5e0f18[_0x74e6('0x4e')](_0x16553d);}})[_0x74e6('0x18')](function(_0x35e5b9){if(_0x35e5b9){_0xc522f4=_0x35e5b9['length'];if(!_0x195dda['query'][_0x74e6('0x3a')](_0x74e6('0x3b'))){_0x16553d[_0x74e6('0x26')]=qs[_0x74e6('0x26')](_0x195dda[_0x74e6('0x35')][_0x74e6('0x26')]);_0x16553d[_0x74e6('0x25')]=qs[_0x74e6('0x25')](_0x195dda[_0x74e6('0x35')][_0x74e6('0x25')]);}return _0x5e0f18[_0x74e6('0x4e')](_0x16553d);}})['then'](function(_0x437cf3){if(_0x437cf3){return _0x437cf3?{'count':_0xc522f4,'rows':_0x437cf3}:null;}})[_0x74e6('0x18')](respondWithResult(_0x1522cd,null))['catch'](handleError(_0x1522cd,null));};exports['addConfiguration']=function(_0x1f080a,_0x39db68,_0x477769){if(_0x1f080a[_0x74e6('0x4c')]['id']){delete _0x1f080a[_0x74e6('0x4c')]['id'];}return db[_0x74e6('0x30')][_0x74e6('0x4f')]({'where':{'id':_0x1f080a[_0x74e6('0x48')]['id']}})[_0x74e6('0x18')](handleEntityNotFound(_0x39db68,null))[_0x74e6('0x18')](function(_0x16dfe9){if(_0x16dfe9){_0x1f080a[_0x74e6('0x4c')][_0x74e6('0x51')]=_0x16dfe9['id'];_0x1f080a[_0x74e6('0x4c')][_0x74e6('0x52')]=integrations[_0x74e6('0x53')](_0x1f080a['body'][_0x74e6('0x54')],_0x1f080a[_0x74e6('0x4c')][_0x74e6('0x32')]);_0x1f080a['body']['Descriptions']=integrations[_0x74e6('0x55')](_0x1f080a[_0x74e6('0x4c')][_0x74e6('0x54')],_0x1f080a['body'][_0x74e6('0x32')]);return db[_0x74e6('0x50')][_0x74e6('0x4b')](_0x1f080a['body'],{'include':[{'model':db['FreshsalesField'],'as':_0x74e6('0x52')},{'model':db['FreshsalesField'],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x39db68,null))['catch'](handleError(_0x39db68,null));};exports[_0x74e6('0x56')]=function(_0x597a5f,_0x52a568,_0x2bfdfe){var _0x1b5ee6='';var _0x72f0a7='';return db['FreshsalesAccount'][_0x74e6('0x4f')]({'where':{'id':_0x597a5f['params']['id']},'attributes':['id',_0x74e6('0x57'),'remoteUri',_0x74e6('0x58')]})[_0x74e6('0x18')](handleEntityNotFound(_0x52a568,null))[_0x74e6('0x18')](function(_0x2d7bdd){if(_0x2d7bdd){_0x72f0a7=_0x2d7bdd[_0x74e6('0x57')];_0x1b5ee6=_0x2d7bdd[_0x74e6('0x59')];var _0x172cb8=_0x2d7bdd[_0x74e6('0x59')][_0x74e6('0x5a')](-0x1);if(_0x172cb8==='/'){_0x1b5ee6=_0x1b5ee6['substring'](0x0,_0x1b5ee6['lastIndexOf'](_0x172cb8));}return rp({'method':_0x74e6('0x5b'),'uri':util['format'](_0x74e6('0x5c'),_0x1b5ee6,'/api/selector/owners'),'headers':{'Authorization':'Token\x20token='+_0x2d7bdd[_0x74e6('0x58')]},'json':!![]});}})['then'](function(_0x4325b1){if(_0x4325b1){var _0x10c950=_0x4325b1[_0x74e6('0x5d')];var _0x444a3b=![];var _0x79acba=null;for(_0x79acba=0x0;_0x79acba<_0x10c950[_0x74e6('0x39')];_0x79acba++){if(_0x10c950[_0x79acba][_0x74e6('0x5e')]===_0x72f0a7){_0x444a3b=!![];}}if(_0x444a3b){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x74e6('0x18')](respondWithResult(_0x52a568,null))[_0x74e6('0x21')](function(_0x1bc119){var _0x11a3d3=_0x597a5f[_0x74e6('0x35')][_0x74e6('0x5f')]?0x1f4:_0x1bc119[_0x74e6('0x60')]||0x1f4;logger['error'](_0x74e6('0x61'),_0x74e6('0x56'),_0x11a3d3,JSON[_0x74e6('0x62')](_0x1bc119));delete _0x1bc119[_0x74e6('0x2e')];if(_0x11a3d3===0x191){_0x11a3d3=0x190;}_0x52a568[_0x74e6('0x23')](_0x11a3d3)[_0x74e6('0x2f')](_0x597a5f[_0x74e6('0x35')][_0x74e6('0x5f')]?{'message':'Wrong\x20credentials','statusCode':_0x1bc119['statusCode']}:_0x1bc119);});};