Built motion from commit da617fac.|2.6.6
[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 _0x3b65=['count','set','Content-Range','apply','save','then','error','stack','name','send','map','FreshsalesAccount','rawAttributes','type','model','query','keys','attributes','intersection','fields','length','nolimit','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','update','destroy','getConfigurations','order','hasOwnProperty','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','FreshsalesConfiguration','FreshsalesField','getFields','username','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s%s','/api/selector/owners','email','test','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','util','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','limit'];(function(_0x110c22,_0x4be638){var _0x121869=function(_0x2a7468){while(--_0x2a7468){_0x110c22['push'](_0x110c22['shift']());}};_0x121869(++_0x4be638);}(_0x3b65,0x163));var _0x53b6=function(_0x13161b,_0x498638){_0x13161b=_0x13161b-0x0;var _0x396bd1=_0x3b65[_0x13161b];return _0x396bd1;};'use strict';var emlformat=require(_0x53b6('0x0'));var rimraf=require(_0x53b6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x53b6('0x2'));var rp=require(_0x53b6('0x3'));var moment=require(_0x53b6('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x53b6('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x53b6('0x6'));var squel=require(_0x53b6('0x7'));var crypto=require(_0x53b6('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x53b6('0x9'));var toCsv=require(_0x53b6('0xa'));var querystring=require(_0x53b6('0xb'));var Papa=require(_0x53b6('0xc'));var Redis=require(_0x53b6('0xd'));var authService=require(_0x53b6('0xe'));var qs=require(_0x53b6('0xf'));var as=require(_0x53b6('0x10'));var hardwareService=require(_0x53b6('0x11'));var logger=require(_0x53b6('0x12'))(_0x53b6('0x13'));var utils=require(_0x53b6('0x14'));var config=require(_0x53b6('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x53b6('0x16'))['db'];var integrations=require(_0x53b6('0x17'));function respondWithStatusCode(_0x313e19,_0x5a4f48){_0x5a4f48=_0x5a4f48||0xcc;return function(_0xea208a){if(_0xea208a){return _0x313e19['sendStatus'](_0x5a4f48);}return _0x313e19[_0x53b6('0x18')](_0x5a4f48)[_0x53b6('0x19')]();};}function respondWithResult(_0x4ecec9,_0x424e50){_0x424e50=_0x424e50||0xc8;return function(_0x28b453){if(_0x28b453){return _0x4ecec9[_0x53b6('0x18')](_0x424e50)[_0x53b6('0x1a')](_0x28b453);}};}function respondWithFilteredResult(_0xef9dd0,_0x4351eb){return function(_0x21fec3){if(_0x21fec3){var _0x1028c0=typeof _0x4351eb[_0x53b6('0x1b')]==='undefined'&&typeof _0x4351eb[_0x53b6('0x1c')]==='undefined';var _0x3be130=_0x21fec3[_0x53b6('0x1d')];var _0x5abad4=_0x1028c0?0x0:_0x4351eb[_0x53b6('0x1b')];var _0x58e719=_0x1028c0?_0x21fec3[_0x53b6('0x1d')]:_0x4351eb[_0x53b6('0x1b')]+_0x4351eb[_0x53b6('0x1c')];var _0x215773;if(_0x58e719>=_0x3be130){_0x58e719=_0x3be130;_0x215773=0xc8;}else{_0x215773=0xce;}_0xef9dd0['status'](_0x215773);return _0xef9dd0[_0x53b6('0x1e')](_0x53b6('0x1f'),_0x5abad4+'-'+_0x58e719+'/'+_0x3be130)[_0x53b6('0x1a')](_0x21fec3);}return null;};}function patchUpdates(_0x4feea4){return function(_0x5cf60e){try{jsonpatch[_0x53b6('0x20')](_0x5cf60e,_0x4feea4,!![]);}catch(_0x1e5549){return BPromise['reject'](_0x1e5549);}return _0x5cf60e[_0x53b6('0x21')]();};}function saveUpdates(_0x1e3bc8,_0xe61609){return function(_0x437d69){if(_0x437d69){return _0x437d69['update'](_0x1e3bc8)['then'](function(_0x15213c){return _0x15213c;});}return null;};}function removeEntity(_0x220060,_0x26f204){return function(_0x2ad13a){if(_0x2ad13a){return _0x2ad13a['destroy']()[_0x53b6('0x22')](function(){_0x220060[_0x53b6('0x18')](0xcc)[_0x53b6('0x19')]();});}};}function handleEntityNotFound(_0x3be9a8,_0x451430){return function(_0x5c43cd){if(!_0x5c43cd){_0x3be9a8['sendStatus'](0x194);}return _0x5c43cd;};}function handleError(_0x322c58,_0x49f117){_0x49f117=_0x49f117||0x1f4;return function(_0x491a69){logger[_0x53b6('0x23')](_0x491a69[_0x53b6('0x24')]);if(_0x491a69[_0x53b6('0x25')]){delete _0x491a69[_0x53b6('0x25')];}_0x322c58[_0x53b6('0x18')](_0x49f117)[_0x53b6('0x26')](_0x491a69);};}exports['index']=function(_0xa89094,_0x227d00){var _0x405bc4={},_0x49c610={},_0x89286f={'count':0x0,'rows':[]};var _0x572cbd=_[_0x53b6('0x27')](db[_0x53b6('0x28')][_0x53b6('0x29')],function(_0x4b191b){return{'name':_0x4b191b['fieldName'],'type':_0x4b191b[_0x53b6('0x2a')]['key']};});_0x49c610[_0x53b6('0x2b')]=_[_0x53b6('0x27')](_0x572cbd,'name');_0x49c610[_0x53b6('0x2c')]=_[_0x53b6('0x2d')](_0xa89094[_0x53b6('0x2c')]);_0x49c610['filters']=_['intersection'](_0x49c610['model'],_0x49c610['query']);_0x405bc4[_0x53b6('0x2e')]=_[_0x53b6('0x2f')](_0x49c610[_0x53b6('0x2b')],qs['fields'](_0xa89094[_0x53b6('0x2c')][_0x53b6('0x30')]));_0x405bc4[_0x53b6('0x2e')]=_0x405bc4[_0x53b6('0x2e')][_0x53b6('0x31')]?_0x405bc4[_0x53b6('0x2e')]:_0x49c610[_0x53b6('0x2b')];if(!_0xa89094['query']['hasOwnProperty'](_0x53b6('0x32'))){_0x405bc4[_0x53b6('0x1c')]=qs[_0x53b6('0x1c')](_0xa89094[_0x53b6('0x2c')]['limit']);_0x405bc4[_0x53b6('0x1b')]=qs['offset'](_0xa89094[_0x53b6('0x2c')][_0x53b6('0x1b')]);}_0x405bc4['order']=qs[_0x53b6('0x33')](_0xa89094[_0x53b6('0x2c')][_0x53b6('0x33')]);_0x405bc4[_0x53b6('0x34')]=qs[_0x53b6('0x35')](_[_0x53b6('0x36')](_0xa89094['query'],_0x49c610[_0x53b6('0x35')]),_0x572cbd);if(_0xa89094[_0x53b6('0x2c')][_0x53b6('0x37')]){_0x405bc4[_0x53b6('0x34')]=_['merge'](_0x405bc4[_0x53b6('0x34')],{'$or':_[_0x53b6('0x27')](_0x572cbd,function(_0x444170){if(_0x444170['type']!==_0x53b6('0x38')){var _0x146412={};_0x146412[_0x444170[_0x53b6('0x25')]]={'$like':'%'+_0xa89094[_0x53b6('0x2c')]['filter']+'%'};return _0x146412;}})});}_0x405bc4=_[_0x53b6('0x39')]({},_0x405bc4,_0xa89094[_0x53b6('0x3a')]);var _0x5b526b={'where':_0x405bc4[_0x53b6('0x34')]};return db['FreshsalesAccount'][_0x53b6('0x1d')](_0x5b526b)[_0x53b6('0x22')](function(_0x14e516){_0x89286f['count']=_0x14e516;if(_0xa89094['query'][_0x53b6('0x3b')]){_0x405bc4[_0x53b6('0x3c')]=[{'all':!![]}];}return db['FreshsalesAccount'][_0x53b6('0x3d')](_0x405bc4);})[_0x53b6('0x22')](function(_0x1d5150){_0x89286f[_0x53b6('0x3e')]=_0x1d5150;return _0x89286f;})['then'](respondWithFilteredResult(_0x227d00,_0x405bc4))[_0x53b6('0x3f')](handleError(_0x227d00,null));};exports['show']=function(_0x4822f1,_0x1e57a7){var _0xc40c5e={'raw':![],'where':{'id':_0x4822f1[_0x53b6('0x40')]['id']}},_0x33edc6={};_0x33edc6[_0x53b6('0x2b')]=_[_0x53b6('0x2d')](db[_0x53b6('0x28')][_0x53b6('0x29')]);_0x33edc6[_0x53b6('0x2c')]=_['keys'](_0x4822f1[_0x53b6('0x2c')]);_0x33edc6[_0x53b6('0x35')]=_['intersection'](_0x33edc6[_0x53b6('0x2b')],_0x33edc6[_0x53b6('0x2c')]);_0xc40c5e['attributes']=_[_0x53b6('0x2f')](_0x33edc6[_0x53b6('0x2b')],qs[_0x53b6('0x30')](_0x4822f1['query']['fields']));_0xc40c5e[_0x53b6('0x2e')]=_0xc40c5e[_0x53b6('0x2e')][_0x53b6('0x31')]?_0xc40c5e[_0x53b6('0x2e')]:_0x33edc6[_0x53b6('0x2b')];if(_0x4822f1[_0x53b6('0x2c')][_0x53b6('0x3b')]){_0xc40c5e[_0x53b6('0x3c')]=[{'all':!![]}];}_0xc40c5e=_[_0x53b6('0x39')]({},_0xc40c5e,_0x4822f1['options']);return db['FreshsalesAccount'][_0x53b6('0x41')](_0xc40c5e)[_0x53b6('0x22')](handleEntityNotFound(_0x1e57a7,null))[_0x53b6('0x22')](respondWithResult(_0x1e57a7,null))[_0x53b6('0x3f')](handleError(_0x1e57a7,null));};exports[_0x53b6('0x42')]=function(_0x26a796,_0xa3704f){return db[_0x53b6('0x28')][_0x53b6('0x42')](_0x26a796[_0x53b6('0x43')],{})[_0x53b6('0x22')](respondWithResult(_0xa3704f,0xc9))[_0x53b6('0x3f')](handleError(_0xa3704f,null));};exports[_0x53b6('0x44')]=function(_0x478fe3,_0x2d636f){if(_0x478fe3[_0x53b6('0x43')]['id']){delete _0x478fe3[_0x53b6('0x43')]['id'];}return db[_0x53b6('0x28')][_0x53b6('0x41')]({'where':{'id':_0x478fe3[_0x53b6('0x40')]['id']}})[_0x53b6('0x22')](handleEntityNotFound(_0x2d636f,null))[_0x53b6('0x22')](saveUpdates(_0x478fe3[_0x53b6('0x43')],null))[_0x53b6('0x22')](respondWithResult(_0x2d636f,null))['catch'](handleError(_0x2d636f,null));};exports[_0x53b6('0x45')]=function(_0x4f4e11,_0x1f1f4c){return db[_0x53b6('0x28')][_0x53b6('0x41')]({'where':{'id':_0x4f4e11[_0x53b6('0x40')]['id']}})[_0x53b6('0x22')](handleEntityNotFound(_0x1f1f4c,null))[_0x53b6('0x22')](removeEntity(_0x1f1f4c,null))['catch'](handleError(_0x1f1f4c,null));};exports[_0x53b6('0x46')]=function(_0x5c0a89,_0x3a6d83,_0x9157f2){var _0x1f06c1={};var _0x2c7900={};var _0x44969d;var _0x28657b;return db[_0x53b6('0x28')]['findOne']({'where':{'id':_0x5c0a89[_0x53b6('0x40')]['id']}})[_0x53b6('0x22')](handleEntityNotFound(_0x3a6d83,null))['then'](function(_0x39b76b){if(_0x39b76b){_0x44969d=_0x39b76b;_0x2c7900['model']=_[_0x53b6('0x2d')](db['FreshsalesConfiguration'][_0x53b6('0x29')]);_0x2c7900[_0x53b6('0x2c')]=_[_0x53b6('0x2d')](_0x5c0a89[_0x53b6('0x2c')]);_0x2c7900[_0x53b6('0x35')]=_['intersection'](_0x2c7900[_0x53b6('0x2b')],_0x2c7900[_0x53b6('0x2c')]);_0x1f06c1[_0x53b6('0x2e')]=_[_0x53b6('0x2f')](_0x2c7900[_0x53b6('0x2b')],qs[_0x53b6('0x30')](_0x5c0a89[_0x53b6('0x2c')][_0x53b6('0x30')]));_0x1f06c1[_0x53b6('0x2e')]=_0x1f06c1['attributes']['length']?_0x1f06c1['attributes']:_0x2c7900[_0x53b6('0x2b')];_0x1f06c1[_0x53b6('0x47')]=qs[_0x53b6('0x33')](_0x5c0a89[_0x53b6('0x2c')]['sort']);_0x1f06c1['where']=qs[_0x53b6('0x35')](_[_0x53b6('0x36')](_0x5c0a89['query'],_0x2c7900['filters']));if(_0x5c0a89[_0x53b6('0x2c')][_0x53b6('0x37')]){_0x1f06c1[_0x53b6('0x34')]=_[_0x53b6('0x39')](_0x1f06c1[_0x53b6('0x34')],{'$or':_['map'](_0x1f06c1[_0x53b6('0x2e')],function(_0x4c0e75){var _0x112fe7={};_0x112fe7[_0x4c0e75]={'$like':'%'+_0x5c0a89['query']['filter']+'%'};return _0x112fe7;})});}_0x1f06c1=_['merge']({},_0x1f06c1,_0x5c0a89[_0x53b6('0x3a')]);return _0x44969d[_0x53b6('0x46')](_0x1f06c1);}})[_0x53b6('0x22')](function(_0x2004f2){if(_0x2004f2){_0x28657b=_0x2004f2['length'];if(!_0x5c0a89[_0x53b6('0x2c')][_0x53b6('0x48')]('nolimit')){_0x1f06c1[_0x53b6('0x1c')]=qs['limit'](_0x5c0a89['query']['limit']);_0x1f06c1[_0x53b6('0x1b')]=qs['offset'](_0x5c0a89[_0x53b6('0x2c')]['offset']);}return _0x44969d[_0x53b6('0x46')](_0x1f06c1);}})['then'](function(_0x22e9b7){if(_0x22e9b7){return _0x22e9b7?{'count':_0x28657b,'rows':_0x22e9b7}:null;}})[_0x53b6('0x22')](respondWithResult(_0x3a6d83,null))[_0x53b6('0x3f')](handleError(_0x3a6d83,null));};exports[_0x53b6('0x49')]=function(_0x432b59,_0xa8f171,_0x10e683){if(_0x432b59[_0x53b6('0x43')]['id']){delete _0x432b59[_0x53b6('0x43')]['id'];}return db['FreshsalesAccount'][_0x53b6('0x4a')]({'where':{'id':_0x432b59[_0x53b6('0x40')]['id']}})[_0x53b6('0x22')](handleEntityNotFound(_0xa8f171,null))['then'](function(_0x9656e5){if(_0x9656e5){_0x432b59[_0x53b6('0x43')][_0x53b6('0x4b')]=_0x9656e5['id'];_0x432b59[_0x53b6('0x43')][_0x53b6('0x4c')]=integrations['getSubjects'](_0x432b59[_0x53b6('0x43')][_0x53b6('0x4d')],_0x432b59['body'][_0x53b6('0x2a')]);_0x432b59[_0x53b6('0x43')][_0x53b6('0x4e')]=integrations[_0x53b6('0x4f')](_0x432b59['body'][_0x53b6('0x4d')],_0x432b59[_0x53b6('0x43')][_0x53b6('0x2a')]);return db[_0x53b6('0x50')][_0x53b6('0x42')](_0x432b59[_0x53b6('0x43')],{'include':[{'model':db[_0x53b6('0x51')],'as':'Subjects'},{'model':db[_0x53b6('0x51')],'as':'Descriptions'}]});}return null;})[_0x53b6('0x22')](respondWithResult(_0xa8f171,null))[_0x53b6('0x3f')](handleError(_0xa8f171,null));};exports[_0x53b6('0x52')]=function(_0x44bcfc,_0x1ec95e,_0x5d068d){var _0x10fec6='';var _0x19bb3b='';return db['FreshsalesAccount']['findOne']({'where':{'id':_0x44bcfc[_0x53b6('0x40')]['id']},'attributes':['id',_0x53b6('0x53'),_0x53b6('0x54'),_0x53b6('0x55')]})[_0x53b6('0x22')](handleEntityNotFound(_0x1ec95e,null))[_0x53b6('0x22')](function(_0x31e5e0){if(_0x31e5e0){_0x19bb3b=_0x31e5e0[_0x53b6('0x53')];_0x10fec6=_0x31e5e0[_0x53b6('0x54')];var _0x16b9fc=_0x31e5e0[_0x53b6('0x54')][_0x53b6('0x56')](-0x1);if(_0x16b9fc==='/'){_0x10fec6=_0x10fec6[_0x53b6('0x57')](0x0,_0x10fec6[_0x53b6('0x58')](_0x16b9fc));}return rp({'method':_0x53b6('0x59'),'uri':util[_0x53b6('0x5a')](_0x53b6('0x5b'),_0x10fec6,_0x53b6('0x5c')),'headers':{'Authorization':'Token\x20token='+_0x31e5e0['apiKey']},'json':!![]});}})[_0x53b6('0x22')](function(_0x412ee6){if(_0x412ee6){var _0x367cf8=_0x412ee6['users'];var _0x262b80=![];var _0x235864=null;for(_0x235864=0x0;_0x235864<_0x367cf8[_0x53b6('0x31')];_0x235864++){if(_0x367cf8[_0x235864][_0x53b6('0x5d')]===_0x19bb3b){_0x262b80=!![];}}if(_0x262b80){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x53b6('0x22')](respondWithResult(_0x1ec95e,null))[_0x53b6('0x3f')](function(_0x77fba5){var _0x136e82=_0x44bcfc[_0x53b6('0x2c')][_0x53b6('0x5e')]?0x1f4:_0x77fba5['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x53b6('0x52'),_0x136e82,JSON['stringify'](_0x77fba5));delete _0x77fba5[_0x53b6('0x25')];if(_0x136e82===0x191){_0x136e82=0x190;}_0x1ec95e['status'](_0x136e82)['send'](_0x44bcfc['query'][_0x53b6('0x5e')]?{'message':'Wrong\x20credentials','statusCode':_0x77fba5[_0x53b6('0x5f')]}:_0x77fba5);});};