c76b0ee013d415dcc8f014658613c63769d118f8
[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 _0xb25b=['AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','getFields','username','remoteUri','slice','lastIndexOf','GET','%s%s','/api/selector/owners','Token\x20token=','apiKey','users','Requested\x20Resource\x20not\x20Found','getFields,\x20%s,\x20%s,\x20%s','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','ejs','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../components/integrations/configuration','client','http','request','then','info','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','FreshsalesAccount,\x20%s,\x20%s','message','catch','sendStatus','status','json','count','limit','set','Content-Range','apply','reject','save','update','destroy','end','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','params','include','find','create','body','getConfigurations','findOne','FreshsalesConfiguration','addConfiguration'];(function(_0x593327,_0x438272){var _0x46b5d2=function(_0x524f8f){while(--_0x524f8f){_0x593327['push'](_0x593327['shift']());}};_0x46b5d2(++_0x438272);}(_0xb25b,0x80));var _0xbb25=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xb25b[_0x3bf83f];return _0x22c4a9;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xbb25('0x0'));var rimraf=require(_0xbb25('0x1'));var zipdir=require(_0xbb25('0x2'));var jsonpatch=require(_0xbb25('0x3'));var rp=require('request-promise');var moment=require(_0xbb25('0x4'));var BPromise=require(_0xbb25('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xbb25('0x6'));var sox=require(_0xbb25('0x7'));var csv=require(_0xbb25('0x8'));var ejs=require(_0xbb25('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0xbb25('0xa'));var crypto=require(_0xbb25('0xb'));var jsforce=require(_0xbb25('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xbb25('0xd'));var Redis=require(_0xbb25('0xe'));var authService=require(_0xbb25('0xf'));var qs=require(_0xbb25('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xbb25('0x11'))(_0xbb25('0x12'));var utils=require(_0xbb25('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xbb25('0x14'));var jayson=require('jayson/promise');var client=jayson[_0xbb25('0x15')][_0xbb25('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x3db6ea,_0x377da4,_0x2d3f9a,_0x14fee1){return new BPromise(function(_0x5b56ad,_0xf28793){var _0x96abba=_0x14fee1||client;return _0x96abba[_0xbb25('0x17')](_0x3db6ea,_0x2d3f9a)[_0xbb25('0x18')](function(_0x54b9e7){logger[_0xbb25('0x19')]('FreshsalesAccount,\x20%s,\x20%s',_0x377da4,'request\x20sent');logger[_0xbb25('0x1a')](_0xbb25('0x1b'),_0x377da4,_0xbb25('0x1c'),JSON[_0xbb25('0x1d')](_0x54b9e7));if(_0x54b9e7[_0xbb25('0x1e')]){if(_0x54b9e7['error'][_0xbb25('0x1f')]===0x1f4){logger[_0xbb25('0x1e')](_0xbb25('0x20'),_0x377da4,_0x54b9e7[_0xbb25('0x1e')][_0xbb25('0x21')]);return _0xf28793(_0x54b9e7[_0xbb25('0x1e')][_0xbb25('0x21')]);}logger[_0xbb25('0x1e')]('FreshsalesAccount,\x20%s,\x20%s',_0x377da4,_0x54b9e7['error'][_0xbb25('0x21')]);return _0x5b56ad(_0x54b9e7[_0xbb25('0x1e')][_0xbb25('0x21')]);}else{logger[_0xbb25('0x19')](_0xbb25('0x20'),_0x377da4,_0xbb25('0x1c'));_0x5b56ad(_0x54b9e7['result'][_0xbb25('0x21')]);}})[_0xbb25('0x22')](function(_0x206c0b){logger[_0xbb25('0x1e')](_0xbb25('0x20'),_0x377da4,_0x206c0b);_0xf28793(_0x206c0b);});});}function respondWithStatusCode(_0x339ed1,_0x1c01cf){_0x1c01cf=_0x1c01cf||0xcc;return function(_0x561936){if(_0x561936){return _0x339ed1[_0xbb25('0x23')](_0x1c01cf);}return _0x339ed1[_0xbb25('0x24')](_0x1c01cf)['end']();};}function respondWithResult(_0x5ada94,_0x294070){_0x294070=_0x294070||0xc8;return function(_0x174399){if(_0x174399){return _0x5ada94[_0xbb25('0x24')](_0x294070)[_0xbb25('0x25')](_0x174399);}};}function respondWithFilteredResult(_0x37201d,_0x557f7c){return function(_0x40656d){if(_0x40656d){var _0x21d447=_0x40656d[_0xbb25('0x26')],_0x13c274=_0x557f7c['offset'],_0x4f2ccc=_0x557f7c['offset']+_0x557f7c[_0xbb25('0x27')],_0x58fe4c;if(_0x4f2ccc>=_0x21d447){_0x4f2ccc=_0x21d447;_0x58fe4c=0xc8;}else{_0x58fe4c=0xce;}_0x37201d[_0xbb25('0x24')](_0x58fe4c);return _0x37201d[_0xbb25('0x28')](_0xbb25('0x29'),_0x13c274+'-'+_0x4f2ccc+'/'+_0x21d447)[_0xbb25('0x25')](_0x40656d);}return null;};}function patchUpdates(_0x2b6ffd){return function(_0x29a5bb){try{jsonpatch[_0xbb25('0x2a')](_0x29a5bb,_0x2b6ffd,!![]);}catch(_0xf80b0b){return BPromise[_0xbb25('0x2b')](_0xf80b0b);}return _0x29a5bb[_0xbb25('0x2c')]();};}function saveUpdates(_0x238dd8,_0x2c021e){return function(_0x4f5dc7){if(_0x4f5dc7){return _0x4f5dc7[_0xbb25('0x2d')](_0x238dd8)['then'](function(_0x1c36bd){return _0x1c36bd;});}return null;};}function removeEntity(_0x2ede0c,_0x1ad071){return function(_0x26ceec){if(_0x26ceec){return _0x26ceec[_0xbb25('0x2e')]()[_0xbb25('0x18')](function(){_0x2ede0c['status'](0xcc)[_0xbb25('0x2f')]();});}};}function handleEntityNotFound(_0x381aee,_0x19b9d5){return function(_0x426658){if(!_0x426658){_0x381aee[_0xbb25('0x23')](0x194);}return _0x426658;};}function handleError(_0x35edd2,_0x8fca5d){_0x8fca5d=_0x8fca5d||0x1f4;return function(_0x5f0e2d){logger[_0xbb25('0x1e')](_0x5f0e2d['stack']);if(_0x5f0e2d[_0xbb25('0x30')]){delete _0x5f0e2d[_0xbb25('0x30')];}_0x35edd2[_0xbb25('0x24')](_0x8fca5d)[_0xbb25('0x31')](_0x5f0e2d);};}exports[_0xbb25('0x32')]=function(_0x3a5e7a,_0x12f7ea){var _0x823931={},_0x102678={},_0x3e278c={'count':0x0,'rows':[]};var _0x16cd3e=_[_0xbb25('0x33')](db[_0xbb25('0x34')][_0xbb25('0x35')],function(_0x230a54){return{'name':_0x230a54[_0xbb25('0x36')],'type':_0x230a54[_0xbb25('0x37')][_0xbb25('0x38')]};});_0x102678['model']=_['map'](_0x16cd3e,'name');_0x102678[_0xbb25('0x39')]=_[_0xbb25('0x3a')](_0x3a5e7a[_0xbb25('0x39')]);_0x102678[_0xbb25('0x3b')]=_[_0xbb25('0x3c')](_0x102678[_0xbb25('0x3d')],_0x102678['query']);_0x823931[_0xbb25('0x3e')]=_[_0xbb25('0x3c')](_0x102678[_0xbb25('0x3d')],qs['fields'](_0x3a5e7a['query'][_0xbb25('0x3f')]));_0x823931[_0xbb25('0x3e')]=_0x823931[_0xbb25('0x3e')][_0xbb25('0x40')]?_0x823931[_0xbb25('0x3e')]:_0x102678[_0xbb25('0x3d')];if(!_0x3a5e7a[_0xbb25('0x39')][_0xbb25('0x41')](_0xbb25('0x42'))){_0x823931[_0xbb25('0x27')]=qs[_0xbb25('0x27')](_0x3a5e7a[_0xbb25('0x39')][_0xbb25('0x27')]);_0x823931[_0xbb25('0x43')]=qs['offset'](_0x3a5e7a[_0xbb25('0x39')][_0xbb25('0x43')]);}_0x823931[_0xbb25('0x44')]=qs[_0xbb25('0x45')](_0x3a5e7a['query'][_0xbb25('0x45')]);_0x823931[_0xbb25('0x46')]=qs[_0xbb25('0x3b')](_[_0xbb25('0x47')](_0x3a5e7a['query'],_0x102678[_0xbb25('0x3b')]),_0x16cd3e);if(_0x3a5e7a['query']['filter']){_0x823931['where']=_[_0xbb25('0x48')](_0x823931['where'],{'$or':_['map'](_0x16cd3e,function(_0x583401){if(_0x583401['type']!==_0xbb25('0x49')){var _0x198387={};_0x198387[_0x583401[_0xbb25('0x30')]]={'$like':'%'+_0x3a5e7a[_0xbb25('0x39')][_0xbb25('0x4a')]+'%'};return _0x198387;}})});}_0x823931=_[_0xbb25('0x48')]({},_0x823931,_0x3a5e7a[_0xbb25('0x4b')]);var _0x40b0ac={'where':_0x823931[_0xbb25('0x46')]};return db[_0xbb25('0x34')][_0xbb25('0x26')](_0x40b0ac)[_0xbb25('0x18')](function(_0xb8c5d0){_0x3e278c[_0xbb25('0x26')]=_0xb8c5d0;if(_0x3a5e7a[_0xbb25('0x39')][_0xbb25('0x4c')]){_0x823931['include']=[{'all':!![]}];}return db[_0xbb25('0x34')][_0xbb25('0x4d')](_0x823931);})[_0xbb25('0x18')](function(_0x50744b){_0x3e278c[_0xbb25('0x4e')]=_0x50744b;return _0x3e278c;})[_0xbb25('0x18')](respondWithFilteredResult(_0x12f7ea,_0x823931))[_0xbb25('0x22')](handleError(_0x12f7ea,null));};exports['show']=function(_0xac58ee,_0x40a047){var _0x3f21cf={'raw':![],'where':{'id':_0xac58ee[_0xbb25('0x4f')]['id']}},_0x1b05e9={};_0x1b05e9[_0xbb25('0x3d')]=_['keys'](db['FreshsalesAccount'][_0xbb25('0x35')]);_0x1b05e9[_0xbb25('0x39')]=_[_0xbb25('0x3a')](_0xac58ee[_0xbb25('0x39')]);_0x1b05e9['filtears']=_[_0xbb25('0x3c')](_0x1b05e9['model'],_0x1b05e9['query']);_0x3f21cf[_0xbb25('0x3e')]=_[_0xbb25('0x3c')](_0x1b05e9[_0xbb25('0x3d')],qs['fields'](_0xac58ee[_0xbb25('0x39')][_0xbb25('0x3f')]));_0x3f21cf[_0xbb25('0x3e')]=_0x3f21cf[_0xbb25('0x3e')]['length']?_0x3f21cf[_0xbb25('0x3e')]:_0x1b05e9[_0xbb25('0x3d')];if(_0xac58ee[_0xbb25('0x39')][_0xbb25('0x4c')]){_0x3f21cf[_0xbb25('0x50')]=[{'all':!![]}];}_0x3f21cf=_[_0xbb25('0x48')]({},_0x3f21cf,_0xac58ee['options']);return db[_0xbb25('0x34')][_0xbb25('0x51')](_0x3f21cf)['then'](handleEntityNotFound(_0x40a047,null))[_0xbb25('0x18')](respondWithResult(_0x40a047,null))[_0xbb25('0x22')](handleError(_0x40a047,null));};exports[_0xbb25('0x52')]=function(_0x5b74ed,_0x33dd24){return db['FreshsalesAccount'][_0xbb25('0x52')](_0x5b74ed['body'],{})['then'](respondWithResult(_0x33dd24,0xc9))[_0xbb25('0x22')](handleError(_0x33dd24,null));};exports[_0xbb25('0x2d')]=function(_0x373fb3,_0x513498){if(_0x373fb3['body']['id']){delete _0x373fb3['body']['id'];}return db[_0xbb25('0x34')][_0xbb25('0x51')]({'where':{'id':_0x373fb3[_0xbb25('0x4f')]['id']}})[_0xbb25('0x18')](handleEntityNotFound(_0x513498,null))['then'](saveUpdates(_0x373fb3[_0xbb25('0x53')],null))[_0xbb25('0x18')](respondWithResult(_0x513498,null))['catch'](handleError(_0x513498,null));};exports[_0xbb25('0x2e')]=function(_0x4811c2,_0x3df51b){return db[_0xbb25('0x34')][_0xbb25('0x51')]({'where':{'id':_0x4811c2['params']['id']}})[_0xbb25('0x18')](handleEntityNotFound(_0x3df51b,null))[_0xbb25('0x18')](removeEntity(_0x3df51b,null))[_0xbb25('0x22')](handleError(_0x3df51b,null));};exports[_0xbb25('0x54')]=function(_0x59f405,_0x137808,_0x236006){var _0x1a9a14={};var _0x3c7474={};var _0xb117f5;var _0x1eb519;return db['FreshsalesAccount'][_0xbb25('0x55')]({'where':{'id':_0x59f405[_0xbb25('0x4f')]['id']}})[_0xbb25('0x18')](handleEntityNotFound(_0x137808,null))['then'](function(_0x32453b){if(_0x32453b){_0xb117f5=_0x32453b;_0x3c7474[_0xbb25('0x3d')]=_[_0xbb25('0x3a')](db[_0xbb25('0x56')][_0xbb25('0x35')]);_0x3c7474[_0xbb25('0x39')]=_[_0xbb25('0x3a')](_0x59f405[_0xbb25('0x39')]);_0x3c7474[_0xbb25('0x3b')]=_['intersection'](_0x3c7474[_0xbb25('0x3d')],_0x3c7474[_0xbb25('0x39')]);_0x1a9a14['attributes']=_[_0xbb25('0x3c')](_0x3c7474[_0xbb25('0x3d')],qs[_0xbb25('0x3f')](_0x59f405['query'][_0xbb25('0x3f')]));_0x1a9a14[_0xbb25('0x3e')]=_0x1a9a14[_0xbb25('0x3e')][_0xbb25('0x40')]?_0x1a9a14[_0xbb25('0x3e')]:_0x3c7474['model'];_0x1a9a14[_0xbb25('0x44')]=qs['sort'](_0x59f405['query']['sort']);_0x1a9a14[_0xbb25('0x46')]=qs[_0xbb25('0x3b')](_['pick'](_0x59f405[_0xbb25('0x39')],_0x3c7474[_0xbb25('0x3b')]));if(_0x59f405[_0xbb25('0x39')][_0xbb25('0x4a')]){_0x1a9a14['where']=_[_0xbb25('0x48')](_0x1a9a14[_0xbb25('0x46')],{'$or':_['map'](_0x1a9a14['attributes'],function(_0x21e60c){var _0x48b5d7={};_0x48b5d7[_0x21e60c]={'$like':'%'+_0x59f405[_0xbb25('0x39')][_0xbb25('0x4a')]+'%'};return _0x48b5d7;})});}_0x1a9a14=_[_0xbb25('0x48')]({},_0x1a9a14,_0x59f405['options']);return _0xb117f5[_0xbb25('0x54')](_0x1a9a14);}})['then'](function(_0x4cca4f){if(_0x4cca4f){_0x1eb519=_0x4cca4f[_0xbb25('0x40')];if(!_0x59f405[_0xbb25('0x39')][_0xbb25('0x41')](_0xbb25('0x42'))){_0x1a9a14[_0xbb25('0x27')]=qs['limit'](_0x59f405['query'][_0xbb25('0x27')]);_0x1a9a14[_0xbb25('0x43')]=qs[_0xbb25('0x43')](_0x59f405[_0xbb25('0x39')]['offset']);}return _0xb117f5['getConfigurations'](_0x1a9a14);}})[_0xbb25('0x18')](function(_0x57ad25){if(_0x57ad25){return _0x57ad25?{'count':_0x1eb519,'rows':_0x57ad25}:null;}})[_0xbb25('0x18')](respondWithResult(_0x137808,null))[_0xbb25('0x22')](handleError(_0x137808,null));};exports[_0xbb25('0x57')]=function(_0x2ca1c8,_0x576937,_0x8c6def){if(_0x2ca1c8[_0xbb25('0x53')]['id']){delete _0x2ca1c8[_0xbb25('0x53')]['id'];}return db[_0xbb25('0x34')][_0xbb25('0x55')]({'where':{'id':_0x2ca1c8['params']['id']}})['then'](handleEntityNotFound(_0x576937,null))['then'](function(_0x2b573f){if(_0x2b573f){_0x2ca1c8[_0xbb25('0x53')][_0xbb25('0x58')]=_0x2b573f['id'];_0x2ca1c8['body'][_0xbb25('0x59')]=integrations[_0xbb25('0x5a')](_0x2ca1c8[_0xbb25('0x53')][_0xbb25('0x5b')],_0x2ca1c8['body']['type']);_0x2ca1c8[_0xbb25('0x53')][_0xbb25('0x5c')]=integrations[_0xbb25('0x5d')](_0x2ca1c8[_0xbb25('0x53')]['channel'],_0x2ca1c8['body'][_0xbb25('0x37')]);return db[_0xbb25('0x56')][_0xbb25('0x52')](_0x2ca1c8[_0xbb25('0x53')],{'include':[{'model':db['FreshsalesField'],'as':'Subjects'},{'model':db['FreshsalesField'],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x576937,null))[_0xbb25('0x22')](handleError(_0x576937,null));};exports[_0xbb25('0x5e')]=function(_0x934a79,_0x487e49,_0x1366b2){var _0x1d300c='';var _0x1530ab='';return db[_0xbb25('0x34')][_0xbb25('0x55')]({'where':{'id':_0x934a79[_0xbb25('0x4f')]['id']},'attributes':['id',_0xbb25('0x5f'),_0xbb25('0x60'),'apiKey']})[_0xbb25('0x18')](handleEntityNotFound(_0x487e49,null))[_0xbb25('0x18')](function(_0x23f931){if(_0x23f931){_0x1530ab=_0x23f931[_0xbb25('0x5f')];_0x1d300c=_0x23f931[_0xbb25('0x60')];var _0x1cb4ba=_0x23f931[_0xbb25('0x60')][_0xbb25('0x61')](-0x1);if(_0x1cb4ba==='/'){_0x1d300c=_0x1d300c['substring'](0x0,_0x1d300c[_0xbb25('0x62')](_0x1cb4ba));}return rp({'method':_0xbb25('0x63'),'uri':util['format'](_0xbb25('0x64'),_0x1d300c,_0xbb25('0x65')),'headers':{'Authorization':_0xbb25('0x66')+_0x23f931[_0xbb25('0x67')]},'json':!![]});}})['then'](function(_0x307eff){if(_0x307eff){var _0x51e103=_0x307eff[_0xbb25('0x68')];var _0x12721a=![];var _0x3e88d2=null;for(_0x3e88d2=0x0;_0x3e88d2<_0x51e103[_0xbb25('0x40')];_0x3e88d2++){if(_0x51e103[_0x3e88d2]['email']===_0x1530ab){_0x12721a=!![];}}if(_0x12721a){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xbb25('0x69')});}}})[_0xbb25('0x18')](respondWithResult(_0x487e49,null))[_0xbb25('0x22')](function(_0x23ca6f){var _0x548350=_0x934a79[_0xbb25('0x39')]['test']?0x1f4:_0x23ca6f['statusCode']||0x1f4;logger[_0xbb25('0x1e')](_0xbb25('0x6a'),'getFields',_0x548350,JSON[_0xbb25('0x1d')](_0x23ca6f));delete _0x23ca6f[_0xbb25('0x30')];if(_0x548350===0x191){_0x548350=0x190;}_0x487e49[_0xbb25('0x24')](_0x548350)['send'](_0x934a79['query']['test']?{'message':'Wrong\x20credentials','statusCode':_0x23ca6f[_0xbb25('0x6b')]}:_0x23ca6f);});};