b23ff71fe4d28b44aef7567324a4c4ba5d725501
[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 _0xc788=['../../config/logger','../../config/utils','../../config/environment','../../mysqldb','client','http','request','info','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','FreshsalesAccount,\x20%s,\x20%s','catch','sendStatus','end','status','count','offset','limit','set','json','apply','save','update','then','stack','name','send','index','FreshsalesAccount','rawAttributes','fieldName','key','model','map','keys','filters','intersection','fields','query','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','show','params','find','create','body','destroy','findOne','FreshsalesConfiguration','getConfigurations','Subjects','channel','Descriptions','FreshsalesField','username','remoteUri','apiKey','slice','substring','GET','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','getFields,\x20%s,\x20%s,\x20%s','getFields','test','Wrong\x20credentials','statusCode','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware'];(function(_0x3f8273,_0x52efc4){var _0x335850=function(_0x556b95){while(--_0x556b95){_0x3f8273['push'](_0x3f8273['shift']());}};_0x335850(++_0x52efc4);}(_0xc788,0xc4));var _0x8c78=function(_0x216bdd,_0x22e02b){_0x216bdd=_0x216bdd-0x0;var _0x3422b0=_0xc788[_0x216bdd];return _0x3422b0;};'use strict';var pdf=require(_0x8c78('0x0'));var emlformat=require(_0x8c78('0x1'));var rimraf=require(_0x8c78('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8c78('0x3'));var moment=require(_0x8c78('0x4'));var BPromise=require(_0x8c78('0x5'));var Mustache=require(_0x8c78('0x6'));var util=require(_0x8c78('0x7'));var path=require('path');var sox=require(_0x8c78('0x8'));var csv=require(_0x8c78('0x9'));var ejs=require(_0x8c78('0xa'));var fs=require('fs');var _=require(_0x8c78('0xb'));var squel=require(_0x8c78('0xc'));var crypto=require('crypto');var jsforce=require(_0x8c78('0xd'));var deskjs=require(_0x8c78('0xe'));var toCsv=require(_0x8c78('0x9'));var querystring=require(_0x8c78('0xf'));var Papa=require(_0x8c78('0x10'));var Redis=require(_0x8c78('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8c78('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8c78('0x13'));var logger=require(_0x8c78('0x14'))('api');var utils=require(_0x8c78('0x15'));var config=require(_0x8c78('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x8c78('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require('jayson/promise');var client=jayson[_0x8c78('0x18')][_0x8c78('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x26178c,_0x106bf2,_0x2eedff,_0x3d1306){return new BPromise(function(_0xe5f8ae,_0x930233){var _0x2f44af=_0x3d1306||client;return _0x2f44af[_0x8c78('0x1a')](_0x26178c,_0x2eedff)['then'](function(_0x1fa78e){logger[_0x8c78('0x1b')]('FreshsalesAccount,\x20%s,\x20%s',_0x106bf2,_0x8c78('0x1c'));logger[_0x8c78('0x1d')](_0x8c78('0x1e'),_0x106bf2,_0x8c78('0x1c'),JSON[_0x8c78('0x1f')](_0x1fa78e));if(_0x1fa78e[_0x8c78('0x20')]){if(_0x1fa78e['error']['code']===0x1f4){logger[_0x8c78('0x20')]('FreshsalesAccount,\x20%s,\x20%s',_0x106bf2,_0x1fa78e['error'][_0x8c78('0x21')]);return _0x930233(_0x1fa78e['error'][_0x8c78('0x21')]);}logger[_0x8c78('0x20')]('FreshsalesAccount,\x20%s,\x20%s',_0x106bf2,_0x1fa78e[_0x8c78('0x20')]['message']);return _0xe5f8ae(_0x1fa78e[_0x8c78('0x20')][_0x8c78('0x21')]);}else{logger['info'](_0x8c78('0x22'),_0x106bf2,_0x8c78('0x1c'));_0xe5f8ae(_0x1fa78e['result'][_0x8c78('0x21')]);}})[_0x8c78('0x23')](function(_0x3cda9a){logger[_0x8c78('0x20')](_0x8c78('0x22'),_0x106bf2,_0x3cda9a);_0x930233(_0x3cda9a);});});}function respondWithStatusCode(_0x20f483,_0xbfdf6f){_0xbfdf6f=_0xbfdf6f||0xcc;return function(_0x1958f1){if(_0x1958f1){return _0x20f483[_0x8c78('0x24')](_0xbfdf6f);}return _0x20f483['status'](_0xbfdf6f)[_0x8c78('0x25')]();};}function respondWithResult(_0x458763,_0x1d1cef){_0x1d1cef=_0x1d1cef||0xc8;return function(_0x49cccb){if(_0x49cccb){return _0x458763[_0x8c78('0x26')](_0x1d1cef)['json'](_0x49cccb);}};}function respondWithFilteredResult(_0xe85d05,_0x24f9a7){return function(_0x8d9ff9){if(_0x8d9ff9){var _0x496c51=_0x8d9ff9[_0x8c78('0x27')],_0x583a74=_0x24f9a7[_0x8c78('0x28')],_0x2568d5=_0x24f9a7[_0x8c78('0x28')]+_0x24f9a7[_0x8c78('0x29')],_0x4be49d;if(_0x2568d5>=_0x496c51){_0x2568d5=_0x496c51;_0x4be49d=0xc8;}else{_0x4be49d=0xce;}_0xe85d05[_0x8c78('0x26')](_0x4be49d);return _0xe85d05[_0x8c78('0x2a')]('Content-Range',_0x583a74+'-'+_0x2568d5+'/'+_0x496c51)[_0x8c78('0x2b')](_0x8d9ff9);}return null;};}function patchUpdates(_0x51add6){return function(_0xfa5e7b){try{jsonpatch[_0x8c78('0x2c')](_0xfa5e7b,_0x51add6,!![]);}catch(_0xb69c52){return BPromise['reject'](_0xb69c52);}return _0xfa5e7b[_0x8c78('0x2d')]();};}function saveUpdates(_0x3816d2,_0x4f0005){return function(_0x42d4bb){if(_0x42d4bb){return _0x42d4bb[_0x8c78('0x2e')](_0x3816d2)[_0x8c78('0x2f')](function(_0x487a4c){return _0x487a4c;});}return null;};}function removeEntity(_0x36ece0,_0x63307e){return function(_0x373d52){if(_0x373d52){return _0x373d52['destroy']()[_0x8c78('0x2f')](function(){_0x36ece0[_0x8c78('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x331938,_0x3203b5){return function(_0x3a9372){if(!_0x3a9372){_0x331938[_0x8c78('0x24')](0x194);}return _0x3a9372;};}function handleError(_0x3c8c6c,_0x5b5429){_0x5b5429=_0x5b5429||0x1f4;return function(_0x1218f4){logger[_0x8c78('0x20')](_0x1218f4[_0x8c78('0x30')]);if(_0x1218f4[_0x8c78('0x31')]){delete _0x1218f4['name'];}_0x3c8c6c[_0x8c78('0x26')](_0x5b5429)[_0x8c78('0x32')](_0x1218f4);};}exports[_0x8c78('0x33')]=function(_0xc503ab,_0x34481a){var _0x51e188={},_0x3a7803={},_0xc4d0cf={'count':0x0,'rows':[]};var _0x1312ca=_['map'](db[_0x8c78('0x34')][_0x8c78('0x35')],function(_0x58d7b8){return{'name':_0x58d7b8[_0x8c78('0x36')],'type':_0x58d7b8['type'][_0x8c78('0x37')]};});_0x3a7803[_0x8c78('0x38')]=_[_0x8c78('0x39')](_0x1312ca,_0x8c78('0x31'));_0x3a7803['query']=_[_0x8c78('0x3a')](_0xc503ab['query']);_0x3a7803[_0x8c78('0x3b')]=_[_0x8c78('0x3c')](_0x3a7803[_0x8c78('0x38')],_0x3a7803['query']);_0x51e188['attributes']=_[_0x8c78('0x3c')](_0x3a7803[_0x8c78('0x38')],qs[_0x8c78('0x3d')](_0xc503ab[_0x8c78('0x3e')][_0x8c78('0x3d')]));_0x51e188[_0x8c78('0x3f')]=_0x51e188[_0x8c78('0x3f')][_0x8c78('0x40')]?_0x51e188[_0x8c78('0x3f')]:_0x3a7803[_0x8c78('0x38')];if(!_0xc503ab[_0x8c78('0x3e')][_0x8c78('0x41')](_0x8c78('0x42'))){_0x51e188['limit']=qs[_0x8c78('0x29')](_0xc503ab[_0x8c78('0x3e')]['limit']);_0x51e188['offset']=qs[_0x8c78('0x28')](_0xc503ab[_0x8c78('0x3e')]['offset']);}_0x51e188[_0x8c78('0x43')]=qs[_0x8c78('0x44')](_0xc503ab['query'][_0x8c78('0x44')]);_0x51e188[_0x8c78('0x45')]=qs['filters'](_[_0x8c78('0x46')](_0xc503ab[_0x8c78('0x3e')],_0x3a7803[_0x8c78('0x3b')]),_0x1312ca);if(_0xc503ab[_0x8c78('0x3e')][_0x8c78('0x47')]){_0x51e188['where']=_['merge'](_0x51e188[_0x8c78('0x45')],{'$or':_[_0x8c78('0x39')](_0x1312ca,function(_0xac60f9){if(_0xac60f9[_0x8c78('0x48')]!==_0x8c78('0x49')){var _0x460821={};_0x460821[_0xac60f9[_0x8c78('0x31')]]={'$like':'%'+_0xc503ab[_0x8c78('0x3e')][_0x8c78('0x47')]+'%'};return _0x460821;}})});}_0x51e188=_[_0x8c78('0x4a')]({},_0x51e188,_0xc503ab[_0x8c78('0x4b')]);var _0x4e1e94={'where':_0x51e188[_0x8c78('0x45')]};return db[_0x8c78('0x34')][_0x8c78('0x27')](_0x4e1e94)[_0x8c78('0x2f')](function(_0x2a4786){_0xc4d0cf['count']=_0x2a4786;if(_0xc503ab[_0x8c78('0x3e')][_0x8c78('0x4c')]){_0x51e188[_0x8c78('0x4d')]=[{'all':!![]}];}return db[_0x8c78('0x34')][_0x8c78('0x4e')](_0x51e188);})['then'](function(_0x2148bb){_0xc4d0cf['rows']=_0x2148bb;return _0xc4d0cf;})['then'](respondWithFilteredResult(_0x34481a,_0x51e188))[_0x8c78('0x23')](handleError(_0x34481a,null));};exports[_0x8c78('0x4f')]=function(_0x61e20,_0x5a5f3b){var _0x1d78a0={'raw':![],'where':{'id':_0x61e20[_0x8c78('0x50')]['id']}},_0xc6ba23={};_0xc6ba23[_0x8c78('0x38')]=_[_0x8c78('0x3a')](db[_0x8c78('0x34')][_0x8c78('0x35')]);_0xc6ba23[_0x8c78('0x3e')]=_[_0x8c78('0x3a')](_0x61e20['query']);_0xc6ba23[_0x8c78('0x3b')]=_[_0x8c78('0x3c')](_0xc6ba23[_0x8c78('0x38')],_0xc6ba23[_0x8c78('0x3e')]);_0x1d78a0['attributes']=_[_0x8c78('0x3c')](_0xc6ba23[_0x8c78('0x38')],qs[_0x8c78('0x3d')](_0x61e20[_0x8c78('0x3e')]['fields']));_0x1d78a0[_0x8c78('0x3f')]=_0x1d78a0[_0x8c78('0x3f')][_0x8c78('0x40')]?_0x1d78a0['attributes']:_0xc6ba23[_0x8c78('0x38')];if(_0x61e20['query'][_0x8c78('0x4c')]){_0x1d78a0[_0x8c78('0x4d')]=[{'all':!![]}];}_0x1d78a0=_[_0x8c78('0x4a')]({},_0x1d78a0,_0x61e20[_0x8c78('0x4b')]);return db[_0x8c78('0x34')][_0x8c78('0x51')](_0x1d78a0)[_0x8c78('0x2f')](handleEntityNotFound(_0x5a5f3b,null))[_0x8c78('0x2f')](respondWithResult(_0x5a5f3b,null))[_0x8c78('0x23')](handleError(_0x5a5f3b,null));};exports[_0x8c78('0x52')]=function(_0x23e568,_0x2b2c16){return db[_0x8c78('0x34')][_0x8c78('0x52')](_0x23e568['body'],{})[_0x8c78('0x2f')](respondWithResult(_0x2b2c16,0xc9))[_0x8c78('0x23')](handleError(_0x2b2c16,null));};exports[_0x8c78('0x2e')]=function(_0x31558b,_0x5d046f){if(_0x31558b[_0x8c78('0x53')]['id']){delete _0x31558b[_0x8c78('0x53')]['id'];}return db[_0x8c78('0x34')][_0x8c78('0x51')]({'where':{'id':_0x31558b[_0x8c78('0x50')]['id']}})[_0x8c78('0x2f')](handleEntityNotFound(_0x5d046f,null))['then'](saveUpdates(_0x31558b[_0x8c78('0x53')],null))[_0x8c78('0x2f')](respondWithResult(_0x5d046f,null))['catch'](handleError(_0x5d046f,null));};exports[_0x8c78('0x54')]=function(_0x568ad0,_0x338503){return db[_0x8c78('0x34')][_0x8c78('0x51')]({'where':{'id':_0x568ad0[_0x8c78('0x50')]['id']}})[_0x8c78('0x2f')](handleEntityNotFound(_0x338503,null))[_0x8c78('0x2f')](removeEntity(_0x338503,null))[_0x8c78('0x23')](handleError(_0x338503,null));};exports['getConfigurations']=function(_0x1c8d79,_0x3e7e32,_0x4e77a9){var _0x110e7b={};var _0x3529aa={};var _0x577361;var _0x425994;return db[_0x8c78('0x34')][_0x8c78('0x55')]({'where':{'id':_0x1c8d79[_0x8c78('0x50')]['id']}})[_0x8c78('0x2f')](handleEntityNotFound(_0x3e7e32,null))[_0x8c78('0x2f')](function(_0x43f403){if(_0x43f403){_0x577361=_0x43f403;_0x3529aa[_0x8c78('0x38')]=_[_0x8c78('0x3a')](db[_0x8c78('0x56')][_0x8c78('0x35')]);_0x3529aa[_0x8c78('0x3e')]=_[_0x8c78('0x3a')](_0x1c8d79[_0x8c78('0x3e')]);_0x3529aa['filters']=_[_0x8c78('0x3c')](_0x3529aa['model'],_0x3529aa[_0x8c78('0x3e')]);_0x110e7b['attributes']=_['intersection'](_0x3529aa['model'],qs[_0x8c78('0x3d')](_0x1c8d79['query']['fields']));_0x110e7b['attributes']=_0x110e7b[_0x8c78('0x3f')][_0x8c78('0x40')]?_0x110e7b[_0x8c78('0x3f')]:_0x3529aa[_0x8c78('0x38')];_0x110e7b['order']=qs[_0x8c78('0x44')](_0x1c8d79[_0x8c78('0x3e')][_0x8c78('0x44')]);_0x110e7b[_0x8c78('0x45')]=qs[_0x8c78('0x3b')](_[_0x8c78('0x46')](_0x1c8d79[_0x8c78('0x3e')],_0x3529aa[_0x8c78('0x3b')]));if(_0x1c8d79[_0x8c78('0x3e')][_0x8c78('0x47')]){_0x110e7b[_0x8c78('0x45')]=_[_0x8c78('0x4a')](_0x110e7b[_0x8c78('0x45')],{'$or':_[_0x8c78('0x39')](_0x110e7b['attributes'],function(_0x46f57b){var _0x4ed66c={};_0x4ed66c[_0x46f57b]={'$like':'%'+_0x1c8d79[_0x8c78('0x3e')][_0x8c78('0x47')]+'%'};return _0x4ed66c;})});}_0x110e7b=_[_0x8c78('0x4a')]({},_0x110e7b,_0x1c8d79['options']);return _0x577361[_0x8c78('0x57')](_0x110e7b);}})[_0x8c78('0x2f')](function(_0x3f3aff){if(_0x3f3aff){_0x425994=_0x3f3aff['length'];if(!_0x1c8d79[_0x8c78('0x3e')][_0x8c78('0x41')]('nolimit')){_0x110e7b[_0x8c78('0x29')]=qs[_0x8c78('0x29')](_0x1c8d79[_0x8c78('0x3e')]['limit']);_0x110e7b[_0x8c78('0x28')]=qs[_0x8c78('0x28')](_0x1c8d79[_0x8c78('0x3e')][_0x8c78('0x28')]);}return _0x577361[_0x8c78('0x57')](_0x110e7b);}})[_0x8c78('0x2f')](function(_0x259d43){if(_0x259d43){return _0x259d43?{'count':_0x425994,'rows':_0x259d43}:null;}})[_0x8c78('0x2f')](respondWithResult(_0x3e7e32,null))[_0x8c78('0x23')](handleError(_0x3e7e32,null));};exports['addConfiguration']=function(_0x1f2b8f,_0x21b400,_0x3c6886){if(_0x1f2b8f[_0x8c78('0x53')]['id']){delete _0x1f2b8f[_0x8c78('0x53')]['id'];}return db[_0x8c78('0x34')][_0x8c78('0x55')]({'where':{'id':_0x1f2b8f[_0x8c78('0x50')]['id']}})[_0x8c78('0x2f')](handleEntityNotFound(_0x21b400,null))['then'](function(_0x3dcee2){if(_0x3dcee2){_0x1f2b8f[_0x8c78('0x53')]['AccountId']=_0x3dcee2['id'];_0x1f2b8f['body'][_0x8c78('0x58')]=integrations['getSubjects'](_0x1f2b8f[_0x8c78('0x53')][_0x8c78('0x59')],_0x1f2b8f[_0x8c78('0x53')][_0x8c78('0x48')]);_0x1f2b8f[_0x8c78('0x53')][_0x8c78('0x5a')]=integrations['getDescriptions'](_0x1f2b8f['body'][_0x8c78('0x59')],_0x1f2b8f[_0x8c78('0x53')][_0x8c78('0x48')]);return db[_0x8c78('0x56')][_0x8c78('0x52')](_0x1f2b8f['body'],{'include':[{'model':db[_0x8c78('0x5b')],'as':_0x8c78('0x58')},{'model':db[_0x8c78('0x5b')],'as':_0x8c78('0x5a')}]});}return null;})[_0x8c78('0x2f')](respondWithResult(_0x21b400,null))[_0x8c78('0x23')](handleError(_0x21b400,null));};exports['getFields']=function(_0x3a4c7a,_0x155725,_0x5a0a7e){var _0x3f6ae5='';var _0x13205e='';return db[_0x8c78('0x34')][_0x8c78('0x55')]({'where':{'id':_0x3a4c7a[_0x8c78('0x50')]['id']},'attributes':['id',_0x8c78('0x5c'),_0x8c78('0x5d'),_0x8c78('0x5e')]})[_0x8c78('0x2f')](handleEntityNotFound(_0x155725,null))[_0x8c78('0x2f')](function(_0x280a8b){if(_0x280a8b){_0x13205e=_0x280a8b[_0x8c78('0x5c')];_0x3f6ae5=_0x280a8b[_0x8c78('0x5d')];var _0x3ed782=_0x280a8b[_0x8c78('0x5d')][_0x8c78('0x5f')](-0x1);if(_0x3ed782==='/'){_0x3f6ae5=_0x3f6ae5[_0x8c78('0x60')](0x0,_0x3f6ae5['lastIndexOf'](_0x3ed782));}return rp({'method':_0x8c78('0x61'),'uri':util['format']('%s%s',_0x3f6ae5,_0x8c78('0x62')),'headers':{'Authorization':_0x8c78('0x63')+_0x280a8b[_0x8c78('0x5e')]},'json':!![]});}})[_0x8c78('0x2f')](function(_0x49fd34){if(_0x49fd34){var _0x2779ad=_0x49fd34[_0x8c78('0x64')];var _0x3f32c6=![];var _0x52cf81=null;for(_0x52cf81=0x0;_0x52cf81<_0x2779ad[_0x8c78('0x40')];_0x52cf81++){if(_0x2779ad[_0x52cf81][_0x8c78('0x65')]===_0x13205e){_0x3f32c6=!![];}}if(_0x3f32c6){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x8c78('0x66')});}}})[_0x8c78('0x2f')](respondWithResult(_0x155725,null))['catch'](function(_0xfff9a5){var _0x837c68=_0x3a4c7a['query']['test']?0x1f4:_0xfff9a5['statusCode']||0x1f4;logger[_0x8c78('0x20')](_0x8c78('0x67'),_0x8c78('0x68'),_0x837c68,JSON[_0x8c78('0x1f')](_0xfff9a5));delete _0xfff9a5['name'];if(_0x837c68===0x191){_0x837c68=0x190;}_0x155725[_0x8c78('0x26')](_0x837c68)['send'](_0x3a4c7a[_0x8c78('0x3e')][_0x8c78('0x69')]?{'message':_0x8c78('0x6a'),'statusCode':_0xfff9a5[_0x8c78('0x6b')]}:_0xfff9a5);});};