Built motion from commit (unavailable).|2.5.29
[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 _0x60fd=['key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','pick','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','length','find','create','body','getConfigurations','findOne','FreshsalesConfiguration','filter','AccountId','Subjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','apiKey','slice','lastIndexOf','GET','format','%s%s','Token\x20token=','Requested\x20Resource\x20not\x20Found','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type'];(function(_0xa7d678,_0x3dfdff){var _0x5cc539=function(_0x4393d7){while(--_0x4393d7){_0xa7d678['push'](_0xa7d678['shift']());}};_0x5cc539(++_0x3dfdff);}(_0x60fd,0x18c));var _0xd60f=function(_0x4bc18e,_0x33690b){_0x4bc18e=_0x4bc18e-0x0;var _0x5aaecf=_0x60fd[_0x4bc18e];return _0x5aaecf;};'use strict';var emlformat=require(_0xd60f('0x0'));var rimraf=require(_0xd60f('0x1'));var zipdir=require(_0xd60f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd60f('0x3'));var moment=require(_0xd60f('0x4'));var BPromise=require(_0xd60f('0x5'));var Mustache=require(_0xd60f('0x6'));var util=require('util');var path=require(_0xd60f('0x7'));var sox=require(_0xd60f('0x8'));var csv=require(_0xd60f('0x9'));var ejs=require(_0xd60f('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd60f('0xb'));var squel=require('squel');var crypto=require(_0xd60f('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xd60f('0xd'));var toCsv=require(_0xd60f('0x9'));var querystring=require(_0xd60f('0xe'));var Papa=require(_0xd60f('0xf'));var Redis=require(_0xd60f('0x10'));var authService=require(_0xd60f('0x11'));var qs=require(_0xd60f('0x12'));var as=require(_0xd60f('0x13'));var hardwareService=require(_0xd60f('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xd60f('0x15'));var config=require(_0xd60f('0x16'));var licenseUtil=require(_0xd60f('0x17'));var db=require(_0xd60f('0x18'))['db'];var integrations=require(_0xd60f('0x19'));var jayson=require(_0xd60f('0x1a'));var client=jayson[_0xd60f('0x1b')][_0xd60f('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x4a2799,_0x4b16a6,_0x3d47a9,_0x3a1778){return new BPromise(function(_0x11c4c3,_0x46080c){var _0x5508c0=_0x3a1778||client;return _0x5508c0[_0xd60f('0x1d')](_0x4a2799,_0x3d47a9)[_0xd60f('0x1e')](function(_0xb64171){logger[_0xd60f('0x1f')](_0xd60f('0x20'),_0x4b16a6,_0xd60f('0x21'));logger[_0xd60f('0x22')](_0xd60f('0x23'),_0x4b16a6,_0xd60f('0x21'),JSON[_0xd60f('0x24')](_0xb64171));if(_0xb64171['error']){if(_0xb64171[_0xd60f('0x25')]['code']===0x1f4){logger[_0xd60f('0x25')](_0xd60f('0x20'),_0x4b16a6,_0xb64171[_0xd60f('0x25')][_0xd60f('0x26')]);return _0x46080c(_0xb64171[_0xd60f('0x25')][_0xd60f('0x26')]);}logger[_0xd60f('0x25')](_0xd60f('0x20'),_0x4b16a6,_0xb64171[_0xd60f('0x25')][_0xd60f('0x26')]);return _0x11c4c3(_0xb64171[_0xd60f('0x25')][_0xd60f('0x26')]);}else{logger[_0xd60f('0x1f')](_0xd60f('0x20'),_0x4b16a6,_0xd60f('0x21'));_0x11c4c3(_0xb64171[_0xd60f('0x27')][_0xd60f('0x26')]);}})[_0xd60f('0x28')](function(_0x3354a0){logger[_0xd60f('0x25')](_0xd60f('0x20'),_0x4b16a6,_0x3354a0);_0x46080c(_0x3354a0);});});}function respondWithStatusCode(_0x2bc59a,_0x1a0348){_0x1a0348=_0x1a0348||0xcc;return function(_0x1a3cc9){if(_0x1a3cc9){return _0x2bc59a[_0xd60f('0x29')](_0x1a0348);}return _0x2bc59a[_0xd60f('0x2a')](_0x1a0348)[_0xd60f('0x2b')]();};}function respondWithResult(_0xbd3dde,_0x208eb6){_0x208eb6=_0x208eb6||0xc8;return function(_0x15bce7){if(_0x15bce7){return _0xbd3dde[_0xd60f('0x2a')](_0x208eb6)[_0xd60f('0x2c')](_0x15bce7);}};}function respondWithFilteredResult(_0x42dd78,_0x23bcfe){return function(_0x79c3d0){if(_0x79c3d0){var _0x595639=typeof _0x23bcfe['offset']==='undefined'&&typeof _0x23bcfe[_0xd60f('0x2d')]==='undefined';var _0x992765=_0x79c3d0[_0xd60f('0x2e')];var _0x189015=_0x595639?0x0:_0x23bcfe['offset'];var _0x507859=_0x595639?_0x79c3d0[_0xd60f('0x2e')]:_0x23bcfe[_0xd60f('0x2f')]+_0x23bcfe[_0xd60f('0x2d')];var _0xf9ff5;if(_0x507859>=_0x992765){_0x507859=_0x992765;_0xf9ff5=0xc8;}else{_0xf9ff5=0xce;}_0x42dd78['status'](_0xf9ff5);return _0x42dd78[_0xd60f('0x30')](_0xd60f('0x31'),_0x189015+'-'+_0x507859+'/'+_0x992765)[_0xd60f('0x2c')](_0x79c3d0);}return null;};}function patchUpdates(_0x4ad356){return function(_0x44cccb){try{jsonpatch[_0xd60f('0x32')](_0x44cccb,_0x4ad356,!![]);}catch(_0x385528){return BPromise[_0xd60f('0x33')](_0x385528);}return _0x44cccb[_0xd60f('0x34')]();};}function saveUpdates(_0x457b55,_0x310646){return function(_0x54e770){if(_0x54e770){return _0x54e770[_0xd60f('0x35')](_0x457b55)['then'](function(_0x467421){return _0x467421;});}return null;};}function removeEntity(_0x3416fb,_0x56a8f6){return function(_0x2d1454){if(_0x2d1454){return _0x2d1454[_0xd60f('0x36')]()[_0xd60f('0x1e')](function(){_0x3416fb[_0xd60f('0x2a')](0xcc)[_0xd60f('0x2b')]();});}};}function handleEntityNotFound(_0xbcd567,_0x57908a){return function(_0x25425b){if(!_0x25425b){_0xbcd567[_0xd60f('0x29')](0x194);}return _0x25425b;};}function handleError(_0x1b0474,_0x287e5c){_0x287e5c=_0x287e5c||0x1f4;return function(_0x32fa22){logger[_0xd60f('0x25')](_0x32fa22[_0xd60f('0x37')]);if(_0x32fa22[_0xd60f('0x38')]){delete _0x32fa22[_0xd60f('0x38')];}_0x1b0474[_0xd60f('0x2a')](_0x287e5c)[_0xd60f('0x39')](_0x32fa22);};}exports[_0xd60f('0x3a')]=function(_0x313a79,_0x40ee69){var _0x535f61={},_0x20ee9d={},_0x33e5c4={'count':0x0,'rows':[]};var _0x3d6680=_[_0xd60f('0x3b')](db[_0xd60f('0x3c')][_0xd60f('0x3d')],function(_0x2e2d45){return{'name':_0x2e2d45[_0xd60f('0x3e')],'type':_0x2e2d45[_0xd60f('0x3f')][_0xd60f('0x40')]};});_0x20ee9d[_0xd60f('0x41')]=_[_0xd60f('0x3b')](_0x3d6680,_0xd60f('0x38'));_0x20ee9d[_0xd60f('0x42')]=_[_0xd60f('0x43')](_0x313a79[_0xd60f('0x42')]);_0x20ee9d[_0xd60f('0x44')]=_[_0xd60f('0x45')](_0x20ee9d[_0xd60f('0x41')],_0x20ee9d[_0xd60f('0x42')]);_0x535f61[_0xd60f('0x46')]=_[_0xd60f('0x45')](_0x20ee9d[_0xd60f('0x41')],qs[_0xd60f('0x47')](_0x313a79[_0xd60f('0x42')][_0xd60f('0x47')]));_0x535f61[_0xd60f('0x46')]=_0x535f61[_0xd60f('0x46')]['length']?_0x535f61[_0xd60f('0x46')]:_0x20ee9d[_0xd60f('0x41')];if(!_0x313a79['query']['hasOwnProperty'](_0xd60f('0x48'))){_0x535f61[_0xd60f('0x2d')]=qs[_0xd60f('0x2d')](_0x313a79[_0xd60f('0x42')][_0xd60f('0x2d')]);_0x535f61[_0xd60f('0x2f')]=qs[_0xd60f('0x2f')](_0x313a79[_0xd60f('0x42')]['offset']);}_0x535f61[_0xd60f('0x49')]=qs[_0xd60f('0x4a')](_0x313a79['query'][_0xd60f('0x4a')]);_0x535f61['where']=qs['filters'](_[_0xd60f('0x4b')](_0x313a79[_0xd60f('0x42')],_0x20ee9d[_0xd60f('0x44')]),_0x3d6680);if(_0x313a79['query']['filter']){_0x535f61[_0xd60f('0x4c')]=_[_0xd60f('0x4d')](_0x535f61['where'],{'$or':_['map'](_0x3d6680,function(_0x32f380){if(_0x32f380[_0xd60f('0x3f')]!==_0xd60f('0x4e')){var _0x38034a={};_0x38034a[_0x32f380['name']]={'$like':'%'+_0x313a79['query']['filter']+'%'};return _0x38034a;}})});}_0x535f61=_[_0xd60f('0x4d')]({},_0x535f61,_0x313a79[_0xd60f('0x4f')]);var _0x588b40={'where':_0x535f61[_0xd60f('0x4c')]};return db[_0xd60f('0x3c')][_0xd60f('0x2e')](_0x588b40)[_0xd60f('0x1e')](function(_0x5dc84c){_0x33e5c4['count']=_0x5dc84c;if(_0x313a79[_0xd60f('0x42')][_0xd60f('0x50')]){_0x535f61[_0xd60f('0x51')]=[{'all':!![]}];}return db[_0xd60f('0x3c')][_0xd60f('0x52')](_0x535f61);})['then'](function(_0xaa790c){_0x33e5c4[_0xd60f('0x53')]=_0xaa790c;return _0x33e5c4;})[_0xd60f('0x1e')](respondWithFilteredResult(_0x40ee69,_0x535f61))[_0xd60f('0x28')](handleError(_0x40ee69,null));};exports[_0xd60f('0x54')]=function(_0x18c6a7,_0x2b4cea){var _0x21d7fb={'raw':![],'where':{'id':_0x18c6a7[_0xd60f('0x55')]['id']}},_0x132b6a={};_0x132b6a[_0xd60f('0x41')]=_[_0xd60f('0x43')](db[_0xd60f('0x3c')][_0xd60f('0x3d')]);_0x132b6a[_0xd60f('0x42')]=_[_0xd60f('0x43')](_0x18c6a7[_0xd60f('0x42')]);_0x132b6a[_0xd60f('0x44')]=_[_0xd60f('0x45')](_0x132b6a['model'],_0x132b6a['query']);_0x21d7fb[_0xd60f('0x46')]=_[_0xd60f('0x45')](_0x132b6a[_0xd60f('0x41')],qs[_0xd60f('0x47')](_0x18c6a7[_0xd60f('0x42')][_0xd60f('0x47')]));_0x21d7fb[_0xd60f('0x46')]=_0x21d7fb[_0xd60f('0x46')][_0xd60f('0x56')]?_0x21d7fb[_0xd60f('0x46')]:_0x132b6a['model'];if(_0x18c6a7[_0xd60f('0x42')][_0xd60f('0x50')]){_0x21d7fb['include']=[{'all':!![]}];}_0x21d7fb=_[_0xd60f('0x4d')]({},_0x21d7fb,_0x18c6a7['options']);return db[_0xd60f('0x3c')][_0xd60f('0x57')](_0x21d7fb)[_0xd60f('0x1e')](handleEntityNotFound(_0x2b4cea,null))['then'](respondWithResult(_0x2b4cea,null))[_0xd60f('0x28')](handleError(_0x2b4cea,null));};exports[_0xd60f('0x58')]=function(_0x10450,_0x89a613){return db[_0xd60f('0x3c')][_0xd60f('0x58')](_0x10450[_0xd60f('0x59')],{})[_0xd60f('0x1e')](respondWithResult(_0x89a613,0xc9))['catch'](handleError(_0x89a613,null));};exports[_0xd60f('0x35')]=function(_0x57c3ef,_0x3e27e9){if(_0x57c3ef[_0xd60f('0x59')]['id']){delete _0x57c3ef[_0xd60f('0x59')]['id'];}return db[_0xd60f('0x3c')][_0xd60f('0x57')]({'where':{'id':_0x57c3ef[_0xd60f('0x55')]['id']}})[_0xd60f('0x1e')](handleEntityNotFound(_0x3e27e9,null))[_0xd60f('0x1e')](saveUpdates(_0x57c3ef[_0xd60f('0x59')],null))['then'](respondWithResult(_0x3e27e9,null))[_0xd60f('0x28')](handleError(_0x3e27e9,null));};exports[_0xd60f('0x36')]=function(_0x8cfaff,_0x409f30){return db[_0xd60f('0x3c')][_0xd60f('0x57')]({'where':{'id':_0x8cfaff[_0xd60f('0x55')]['id']}})[_0xd60f('0x1e')](handleEntityNotFound(_0x409f30,null))['then'](removeEntity(_0x409f30,null))['catch'](handleError(_0x409f30,null));};exports[_0xd60f('0x5a')]=function(_0xa2cb61,_0x5ea8c7,_0x366eb9){var _0x2162a5={};var _0x33079a={};var _0x426179;var _0x146169;return db[_0xd60f('0x3c')][_0xd60f('0x5b')]({'where':{'id':_0xa2cb61[_0xd60f('0x55')]['id']}})[_0xd60f('0x1e')](handleEntityNotFound(_0x5ea8c7,null))[_0xd60f('0x1e')](function(_0x1ee43e){if(_0x1ee43e){_0x426179=_0x1ee43e;_0x33079a[_0xd60f('0x41')]=_[_0xd60f('0x43')](db[_0xd60f('0x5c')][_0xd60f('0x3d')]);_0x33079a[_0xd60f('0x42')]=_[_0xd60f('0x43')](_0xa2cb61[_0xd60f('0x42')]);_0x33079a[_0xd60f('0x44')]=_[_0xd60f('0x45')](_0x33079a[_0xd60f('0x41')],_0x33079a[_0xd60f('0x42')]);_0x2162a5[_0xd60f('0x46')]=_[_0xd60f('0x45')](_0x33079a['model'],qs[_0xd60f('0x47')](_0xa2cb61[_0xd60f('0x42')][_0xd60f('0x47')]));_0x2162a5['attributes']=_0x2162a5[_0xd60f('0x46')][_0xd60f('0x56')]?_0x2162a5['attributes']:_0x33079a[_0xd60f('0x41')];_0x2162a5[_0xd60f('0x49')]=qs['sort'](_0xa2cb61[_0xd60f('0x42')]['sort']);_0x2162a5['where']=qs[_0xd60f('0x44')](_[_0xd60f('0x4b')](_0xa2cb61[_0xd60f('0x42')],_0x33079a['filters']));if(_0xa2cb61['query'][_0xd60f('0x5d')]){_0x2162a5[_0xd60f('0x4c')]=_[_0xd60f('0x4d')](_0x2162a5[_0xd60f('0x4c')],{'$or':_[_0xd60f('0x3b')](_0x2162a5[_0xd60f('0x46')],function(_0x3b72d9){var _0x2a3ede={};_0x2a3ede[_0x3b72d9]={'$like':'%'+_0xa2cb61['query'][_0xd60f('0x5d')]+'%'};return _0x2a3ede;})});}_0x2162a5=_['merge']({},_0x2162a5,_0xa2cb61[_0xd60f('0x4f')]);return _0x426179['getConfigurations'](_0x2162a5);}})['then'](function(_0x343910){if(_0x343910){_0x146169=_0x343910[_0xd60f('0x56')];if(!_0xa2cb61[_0xd60f('0x42')]['hasOwnProperty']('nolimit')){_0x2162a5['limit']=qs[_0xd60f('0x2d')](_0xa2cb61[_0xd60f('0x42')][_0xd60f('0x2d')]);_0x2162a5[_0xd60f('0x2f')]=qs['offset'](_0xa2cb61['query'][_0xd60f('0x2f')]);}return _0x426179['getConfigurations'](_0x2162a5);}})['then'](function(_0x28cc59){if(_0x28cc59){return _0x28cc59?{'count':_0x146169,'rows':_0x28cc59}:null;}})[_0xd60f('0x1e')](respondWithResult(_0x5ea8c7,null))['catch'](handleError(_0x5ea8c7,null));};exports['addConfiguration']=function(_0x4ef2d3,_0x4aebd5,_0x4d1830){if(_0x4ef2d3[_0xd60f('0x59')]['id']){delete _0x4ef2d3[_0xd60f('0x59')]['id'];}return db['FreshsalesAccount'][_0xd60f('0x5b')]({'where':{'id':_0x4ef2d3[_0xd60f('0x55')]['id']}})['then'](handleEntityNotFound(_0x4aebd5,null))[_0xd60f('0x1e')](function(_0x345de8){if(_0x345de8){_0x4ef2d3[_0xd60f('0x59')][_0xd60f('0x5e')]=_0x345de8['id'];_0x4ef2d3['body'][_0xd60f('0x5f')]=integrations['getSubjects'](_0x4ef2d3[_0xd60f('0x59')][_0xd60f('0x60')],_0x4ef2d3[_0xd60f('0x59')]['type']);_0x4ef2d3['body'][_0xd60f('0x61')]=integrations[_0xd60f('0x62')](_0x4ef2d3[_0xd60f('0x59')][_0xd60f('0x60')],_0x4ef2d3[_0xd60f('0x59')][_0xd60f('0x3f')]);return db[_0xd60f('0x5c')][_0xd60f('0x58')](_0x4ef2d3[_0xd60f('0x59')],{'include':[{'model':db[_0xd60f('0x63')],'as':_0xd60f('0x5f')},{'model':db['FreshsalesField'],'as':_0xd60f('0x61')}]});}return null;})[_0xd60f('0x1e')](respondWithResult(_0x4aebd5,null))[_0xd60f('0x28')](handleError(_0x4aebd5,null));};exports[_0xd60f('0x64')]=function(_0x36e790,_0x1f1e56,_0x475415){var _0x587535='';var _0x3cf3e3='';return db[_0xd60f('0x3c')][_0xd60f('0x5b')]({'where':{'id':_0x36e790[_0xd60f('0x55')]['id']},'attributes':['id',_0xd60f('0x65'),_0xd60f('0x66'),_0xd60f('0x67')]})[_0xd60f('0x1e')](handleEntityNotFound(_0x1f1e56,null))[_0xd60f('0x1e')](function(_0x298134){if(_0x298134){_0x3cf3e3=_0x298134[_0xd60f('0x65')];_0x587535=_0x298134[_0xd60f('0x66')];var _0x1d553f=_0x298134[_0xd60f('0x66')][_0xd60f('0x68')](-0x1);if(_0x1d553f==='/'){_0x587535=_0x587535['substring'](0x0,_0x587535[_0xd60f('0x69')](_0x1d553f));}return rp({'method':_0xd60f('0x6a'),'uri':util[_0xd60f('0x6b')](_0xd60f('0x6c'),_0x587535,'/api/selector/owners'),'headers':{'Authorization':_0xd60f('0x6d')+_0x298134[_0xd60f('0x67')]},'json':!![]});}})['then'](function(_0x576676){if(_0x576676){var _0x5f432b=_0x576676['users'];var _0x41c41b=![];var _0x597a9d=null;for(_0x597a9d=0x0;_0x597a9d<_0x5f432b[_0xd60f('0x56')];_0x597a9d++){if(_0x5f432b[_0x597a9d]['email']===_0x3cf3e3){_0x41c41b=!![];}}if(_0x41c41b){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xd60f('0x6e')});}}})[_0xd60f('0x1e')](respondWithResult(_0x1f1e56,null))[_0xd60f('0x28')](function(_0x3d93bb){var _0x5091d0=_0x36e790['query']['test']?0x1f4:_0x3d93bb[_0xd60f('0x6f')]||0x1f4;logger[_0xd60f('0x25')](_0xd60f('0x70'),_0xd60f('0x64'),_0x5091d0,JSON[_0xd60f('0x24')](_0x3d93bb));delete _0x3d93bb[_0xd60f('0x38')];if(_0x5091d0===0x191){_0x5091d0=0x190;}_0x1f1e56[_0xd60f('0x2a')](_0x5091d0)[_0xd60f('0x39')](_0x36e790['query'][_0xd60f('0x71')]?{'message':_0xd60f('0x72'),'statusCode':_0x3d93bb[_0xd60f('0x6f')]}:_0x3d93bb);});};