842e898e30287ee866505ff0551486f9bc7478f7
[motion2.git] / server / api / intFreshsalesConfiguration / intFreshsalesConfiguration.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 _0x20be=['destroy','error','name','send','map','FreshsalesConfiguration','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','getSubjects','findOne','nolimit','getDescriptions','FreshsalesField','getFields','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','apply','reject','save','update','then'];(function(_0x20c8f5,_0x290b4f){var _0x42127c=function(_0x347097){while(--_0x347097){_0x20c8f5['push'](_0x20c8f5['shift']());}};_0x42127c(++_0x290b4f);}(_0x20be,0x11e));var _0xe20b=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x20be[_0xfae23b];return _0x200640;};'use strict';var emlformat=require(_0xe20b('0x0'));var rimraf=require(_0xe20b('0x1'));var zipdir=require(_0xe20b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe20b('0x3'));var moment=require(_0xe20b('0x4'));var BPromise=require(_0xe20b('0x5'));var Mustache=require(_0xe20b('0x6'));var util=require(_0xe20b('0x7'));var path=require(_0xe20b('0x8'));var sox=require(_0xe20b('0x9'));var csv=require(_0xe20b('0xa'));var ejs=require(_0xe20b('0xb'));var fs=require('fs');var fs_extra=require(_0xe20b('0xc'));var _=require(_0xe20b('0xd'));var squel=require('squel');var crypto=require(_0xe20b('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xe20b('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe20b('0x10'));var Redis=require(_0xe20b('0x11'));var authService=require(_0xe20b('0x12'));var qs=require(_0xe20b('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe20b('0x14'));var logger=require(_0xe20b('0x15'))('api');var utils=require(_0xe20b('0x16'));var config=require(_0xe20b('0x17'));var licenseUtil=require(_0xe20b('0x18'));var db=require(_0xe20b('0x19'))['db'];function respondWithStatusCode(_0x298f12,_0xf911e5){_0xf911e5=_0xf911e5||0xcc;return function(_0xf2b3ab){if(_0xf2b3ab){return _0x298f12[_0xe20b('0x1a')](_0xf911e5);}return _0x298f12['status'](_0xf911e5)[_0xe20b('0x1b')]();};}function respondWithResult(_0x5cdf5e,_0x291ebf){_0x291ebf=_0x291ebf||0xc8;return function(_0x2143a5){if(_0x2143a5){return _0x5cdf5e[_0xe20b('0x1c')](_0x291ebf)[_0xe20b('0x1d')](_0x2143a5);}};}function respondWithFilteredResult(_0x183888,_0x3b0125){return function(_0x16fbc8){if(_0x16fbc8){var _0x354fa6=typeof _0x3b0125[_0xe20b('0x1e')]===_0xe20b('0x1f')&&typeof _0x3b0125['limit']===_0xe20b('0x1f');var _0x18488c=_0x16fbc8[_0xe20b('0x20')];var _0x4748b8=_0x354fa6?0x0:_0x3b0125[_0xe20b('0x1e')];var _0x25c880=_0x354fa6?_0x16fbc8[_0xe20b('0x20')]:_0x3b0125[_0xe20b('0x1e')]+_0x3b0125['limit'];var _0x324d16;if(_0x25c880>=_0x18488c){_0x25c880=_0x18488c;_0x324d16=0xc8;}else{_0x324d16=0xce;}_0x183888['status'](_0x324d16);return _0x183888['set']('Content-Range',_0x4748b8+'-'+_0x25c880+'/'+_0x18488c)['json'](_0x16fbc8);}return null;};}function patchUpdates(_0x3da08){return function(_0x430140){try{jsonpatch[_0xe20b('0x21')](_0x430140,_0x3da08,!![]);}catch(_0x2fcd99){return BPromise[_0xe20b('0x22')](_0x2fcd99);}return _0x430140[_0xe20b('0x23')]();};}function saveUpdates(_0x2996a8,_0xc7987e){return function(_0x48d247){if(_0x48d247){return _0x48d247[_0xe20b('0x24')](_0x2996a8)[_0xe20b('0x25')](function(_0x3a066d){return _0x3a066d;});}return null;};}function removeEntity(_0x440ae6,_0x4f2e95){return function(_0x3fbeea){if(_0x3fbeea){return _0x3fbeea[_0xe20b('0x26')]()[_0xe20b('0x25')](function(){_0x440ae6[_0xe20b('0x1c')](0xcc)[_0xe20b('0x1b')]();});}};}function handleEntityNotFound(_0x3a436e,_0x32e2b4){return function(_0x15e1f0){if(!_0x15e1f0){_0x3a436e[_0xe20b('0x1a')](0x194);}return _0x15e1f0;};}function handleError(_0x155115,_0x222c23){_0x222c23=_0x222c23||0x1f4;return function(_0x52bdee){logger[_0xe20b('0x27')](_0x52bdee['stack']);if(_0x52bdee['name']){delete _0x52bdee[_0xe20b('0x28')];}_0x155115[_0xe20b('0x1c')](_0x222c23)[_0xe20b('0x29')](_0x52bdee);};}exports['index']=function(_0x37657f,_0x257e73){var _0x1580b5={},_0x2d639e={},_0x52177a={'count':0x0,'rows':[]};var _0x3f4a52=_[_0xe20b('0x2a')](db[_0xe20b('0x2b')][_0xe20b('0x2c')],function(_0x54433b){return{'name':_0x54433b[_0xe20b('0x2d')],'type':_0x54433b[_0xe20b('0x2e')]['key']};});_0x2d639e[_0xe20b('0x2f')]=_[_0xe20b('0x2a')](_0x3f4a52,_0xe20b('0x28'));_0x2d639e[_0xe20b('0x30')]=_['keys'](_0x37657f[_0xe20b('0x30')]);_0x2d639e[_0xe20b('0x31')]=_[_0xe20b('0x32')](_0x2d639e['model'],_0x2d639e[_0xe20b('0x30')]);_0x1580b5[_0xe20b('0x33')]=_[_0xe20b('0x32')](_0x2d639e[_0xe20b('0x2f')],qs[_0xe20b('0x34')](_0x37657f[_0xe20b('0x30')]['fields']));_0x1580b5[_0xe20b('0x33')]=_0x1580b5[_0xe20b('0x33')][_0xe20b('0x35')]?_0x1580b5['attributes']:_0x2d639e[_0xe20b('0x2f')];if(!_0x37657f[_0xe20b('0x30')][_0xe20b('0x36')]('nolimit')){_0x1580b5[_0xe20b('0x37')]=qs[_0xe20b('0x37')](_0x37657f['query'][_0xe20b('0x37')]);_0x1580b5['offset']=qs['offset'](_0x37657f[_0xe20b('0x30')][_0xe20b('0x1e')]);}_0x1580b5[_0xe20b('0x38')]=qs[_0xe20b('0x39')](_0x37657f[_0xe20b('0x30')][_0xe20b('0x39')]);_0x1580b5['where']=qs[_0xe20b('0x31')](_[_0xe20b('0x3a')](_0x37657f[_0xe20b('0x30')],_0x2d639e[_0xe20b('0x31')]),_0x3f4a52);if(_0x37657f[_0xe20b('0x30')][_0xe20b('0x3b')]){_0x1580b5[_0xe20b('0x3c')]=_[_0xe20b('0x3d')](_0x1580b5[_0xe20b('0x3c')],{'$or':_[_0xe20b('0x2a')](_0x3f4a52,function(_0x1b4a61){if(_0x1b4a61[_0xe20b('0x2e')]!==_0xe20b('0x3e')){var _0x22345b={};_0x22345b[_0x1b4a61['name']]={'$like':'%'+_0x37657f['query'][_0xe20b('0x3b')]+'%'};return _0x22345b;}})});}_0x1580b5=_['merge']({},_0x1580b5,_0x37657f[_0xe20b('0x3f')]);var _0x7f8451={'where':_0x1580b5[_0xe20b('0x3c')]};return db[_0xe20b('0x2b')]['count'](_0x7f8451)[_0xe20b('0x25')](function(_0x174277){_0x52177a['count']=_0x174277;if(_0x37657f['query'][_0xe20b('0x40')]){_0x1580b5[_0xe20b('0x41')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0xe20b('0x42')](_0x1580b5);})[_0xe20b('0x25')](function(_0x3b6d55){_0x52177a[_0xe20b('0x43')]=_0x3b6d55;return _0x52177a;})['then'](respondWithFilteredResult(_0x257e73,_0x1580b5))[_0xe20b('0x44')](handleError(_0x257e73,null));};exports[_0xe20b('0x45')]=function(_0xdc1021,_0x106c4f){var _0x5d780b={'raw':![],'where':{'id':_0xdc1021[_0xe20b('0x46')]['id']}},_0x5b2847={};_0x5b2847[_0xe20b('0x2f')]=_[_0xe20b('0x47')](db[_0xe20b('0x2b')][_0xe20b('0x2c')]);_0x5b2847[_0xe20b('0x30')]=_[_0xe20b('0x47')](_0xdc1021[_0xe20b('0x30')]);_0x5b2847[_0xe20b('0x31')]=_['intersection'](_0x5b2847['model'],_0x5b2847[_0xe20b('0x30')]);_0x5d780b[_0xe20b('0x33')]=_[_0xe20b('0x32')](_0x5b2847['model'],qs[_0xe20b('0x34')](_0xdc1021[_0xe20b('0x30')]['fields']));_0x5d780b[_0xe20b('0x33')]=_0x5d780b[_0xe20b('0x33')][_0xe20b('0x35')]?_0x5d780b[_0xe20b('0x33')]:_0x5b2847[_0xe20b('0x2f')];if(_0xdc1021[_0xe20b('0x30')][_0xe20b('0x40')]){_0x5d780b[_0xe20b('0x41')]=[{'all':!![]}];}_0x5d780b=_[_0xe20b('0x3d')]({},_0x5d780b,_0xdc1021[_0xe20b('0x3f')]);return db[_0xe20b('0x2b')][_0xe20b('0x48')](_0x5d780b)['then'](handleEntityNotFound(_0x106c4f,null))[_0xe20b('0x25')](respondWithResult(_0x106c4f,null))[_0xe20b('0x44')](handleError(_0x106c4f,null));};exports[_0xe20b('0x49')]=function(_0x27bee0,_0x3e873e){return db['FreshsalesConfiguration']['create'](_0x27bee0['body'],{})['then'](respondWithResult(_0x3e873e,0xc9))['catch'](handleError(_0x3e873e,null));};exports[_0xe20b('0x24')]=function(_0x5ae4ef,_0x56064b){if(_0x5ae4ef[_0xe20b('0x4a')]['id']){delete _0x5ae4ef[_0xe20b('0x4a')]['id'];}return db[_0xe20b('0x2b')]['find']({'where':{'id':_0x5ae4ef[_0xe20b('0x46')]['id']}})[_0xe20b('0x25')](handleEntityNotFound(_0x56064b,null))['then'](saveUpdates(_0x5ae4ef['body'],null))[_0xe20b('0x25')](respondWithResult(_0x56064b,null))['catch'](handleError(_0x56064b,null));};exports['destroy']=function(_0xe034ee,_0x2a203d){return db[_0xe20b('0x2b')][_0xe20b('0x48')]({'where':{'id':_0xe034ee[_0xe20b('0x46')]['id']}})[_0xe20b('0x25')](handleEntityNotFound(_0x2a203d,null))[_0xe20b('0x25')](removeEntity(_0x2a203d,null))[_0xe20b('0x44')](handleError(_0x2a203d,null));};exports[_0xe20b('0x4b')]=function(_0x47b79d,_0x2cb6cb,_0x4c5243){var _0x1847d5={};var _0x42d21d={};var _0x3a40e5;var _0xb05f58;return db['FreshsalesConfiguration'][_0xe20b('0x4c')]({'where':{'id':_0x47b79d[_0xe20b('0x46')]['id']}})[_0xe20b('0x25')](handleEntityNotFound(_0x2cb6cb,null))[_0xe20b('0x25')](function(_0x474d86){if(_0x474d86){_0x3a40e5=_0x474d86;_0x42d21d[_0xe20b('0x2f')]=_[_0xe20b('0x47')](db['FreshsalesField'][_0xe20b('0x2c')]);_0x42d21d[_0xe20b('0x30')]=_['keys'](_0x47b79d[_0xe20b('0x30')]);_0x42d21d[_0xe20b('0x31')]=_[_0xe20b('0x32')](_0x42d21d[_0xe20b('0x2f')],_0x42d21d[_0xe20b('0x30')]);_0x1847d5[_0xe20b('0x33')]=_[_0xe20b('0x32')](_0x42d21d[_0xe20b('0x2f')],qs[_0xe20b('0x34')](_0x47b79d[_0xe20b('0x30')][_0xe20b('0x34')]));_0x1847d5[_0xe20b('0x33')]=_0x1847d5[_0xe20b('0x33')][_0xe20b('0x35')]?_0x1847d5['attributes']:_0x42d21d[_0xe20b('0x2f')];_0x1847d5[_0xe20b('0x38')]=qs[_0xe20b('0x39')](_0x47b79d[_0xe20b('0x30')][_0xe20b('0x39')]);_0x1847d5[_0xe20b('0x3c')]=qs[_0xe20b('0x31')](_[_0xe20b('0x3a')](_0x47b79d[_0xe20b('0x30')],_0x42d21d[_0xe20b('0x31')]));if(_0x47b79d['query'][_0xe20b('0x3b')]){_0x1847d5['where']=_['merge'](_0x1847d5[_0xe20b('0x3c')],{'$or':_[_0xe20b('0x2a')](_0x1847d5[_0xe20b('0x33')],function(_0x18ebcf){var _0x554e57={};_0x554e57[_0x18ebcf]={'$like':'%'+_0x47b79d[_0xe20b('0x30')][_0xe20b('0x3b')]+'%'};return _0x554e57;})});}_0x1847d5=_[_0xe20b('0x3d')]({},_0x1847d5,_0x47b79d[_0xe20b('0x3f')]);return _0x3a40e5['getSubjects'](_0x1847d5);}})[_0xe20b('0x25')](function(_0x4cbab3){if(_0x4cbab3){_0xb05f58=_0x4cbab3[_0xe20b('0x35')];if(!_0x47b79d[_0xe20b('0x30')][_0xe20b('0x36')](_0xe20b('0x4d'))){_0x1847d5[_0xe20b('0x37')]=qs['limit'](_0x47b79d[_0xe20b('0x30')][_0xe20b('0x37')]);_0x1847d5[_0xe20b('0x1e')]=qs[_0xe20b('0x1e')](_0x47b79d[_0xe20b('0x30')][_0xe20b('0x1e')]);}return _0x3a40e5['getSubjects'](_0x1847d5);}})['then'](function(_0x5b1c3d){if(_0x5b1c3d){return _0x5b1c3d?{'count':_0xb05f58,'rows':_0x5b1c3d}:null;}})[_0xe20b('0x25')](respondWithResult(_0x2cb6cb,null))[_0xe20b('0x44')](handleError(_0x2cb6cb,null));};exports[_0xe20b('0x4e')]=function(_0x666d2a,_0x3039c9,_0x5aa00a){var _0x3baadf={};var _0x15002b={};var _0x1cead6;var _0x49f9aa;return db['FreshsalesConfiguration'][_0xe20b('0x4c')]({'where':{'id':_0x666d2a[_0xe20b('0x46')]['id']}})[_0xe20b('0x25')](handleEntityNotFound(_0x3039c9,null))[_0xe20b('0x25')](function(_0xd7d4d9){if(_0xd7d4d9){_0x1cead6=_0xd7d4d9;_0x15002b[_0xe20b('0x2f')]=_[_0xe20b('0x47')](db[_0xe20b('0x4f')][_0xe20b('0x2c')]);_0x15002b[_0xe20b('0x30')]=_[_0xe20b('0x47')](_0x666d2a['query']);_0x15002b[_0xe20b('0x31')]=_[_0xe20b('0x32')](_0x15002b['model'],_0x15002b[_0xe20b('0x30')]);_0x3baadf[_0xe20b('0x33')]=_[_0xe20b('0x32')](_0x15002b[_0xe20b('0x2f')],qs[_0xe20b('0x34')](_0x666d2a[_0xe20b('0x30')]['fields']));_0x3baadf[_0xe20b('0x33')]=_0x3baadf['attributes']['length']?_0x3baadf['attributes']:_0x15002b[_0xe20b('0x2f')];_0x3baadf[_0xe20b('0x38')]=qs[_0xe20b('0x39')](_0x666d2a[_0xe20b('0x30')][_0xe20b('0x39')]);_0x3baadf[_0xe20b('0x3c')]=qs[_0xe20b('0x31')](_[_0xe20b('0x3a')](_0x666d2a[_0xe20b('0x30')],_0x15002b[_0xe20b('0x31')]));if(_0x666d2a[_0xe20b('0x30')]['filter']){_0x3baadf['where']=_[_0xe20b('0x3d')](_0x3baadf[_0xe20b('0x3c')],{'$or':_[_0xe20b('0x2a')](_0x3baadf[_0xe20b('0x33')],function(_0x4a1665){var _0x1c72b5={};_0x1c72b5[_0x4a1665]={'$like':'%'+_0x666d2a['query'][_0xe20b('0x3b')]+'%'};return _0x1c72b5;})});}_0x3baadf=_[_0xe20b('0x3d')]({},_0x3baadf,_0x666d2a['options']);return _0x1cead6[_0xe20b('0x4e')](_0x3baadf);}})[_0xe20b('0x25')](function(_0x2ab2f5){if(_0x2ab2f5){_0x49f9aa=_0x2ab2f5[_0xe20b('0x35')];if(!_0x666d2a['query']['hasOwnProperty'](_0xe20b('0x4d'))){_0x3baadf[_0xe20b('0x37')]=qs[_0xe20b('0x37')](_0x666d2a[_0xe20b('0x30')][_0xe20b('0x37')]);_0x3baadf['offset']=qs[_0xe20b('0x1e')](_0x666d2a[_0xe20b('0x30')][_0xe20b('0x1e')]);}return _0x1cead6[_0xe20b('0x4e')](_0x3baadf);}})[_0xe20b('0x25')](function(_0x50e1f3){if(_0x50e1f3){return _0x50e1f3?{'count':_0x49f9aa,'rows':_0x50e1f3}:null;}})['then'](respondWithResult(_0x3039c9,null))[_0xe20b('0x44')](handleError(_0x3039c9,null));};exports['getFields']=function(_0x52536b,_0x4a0725,_0x48c021){var _0x1d61df={};var _0x108dad={};var _0x396392;var _0x903a32;return db[_0xe20b('0x2b')][_0xe20b('0x4c')]({'where':{'id':_0x52536b[_0xe20b('0x46')]['id']}})[_0xe20b('0x25')](handleEntityNotFound(_0x4a0725,null))[_0xe20b('0x25')](function(_0x217d00){if(_0x217d00){_0x396392=_0x217d00;_0x108dad[_0xe20b('0x2f')]=_['keys'](db[_0xe20b('0x4f')][_0xe20b('0x2c')]);_0x108dad[_0xe20b('0x30')]=_['keys'](_0x52536b[_0xe20b('0x30')]);_0x108dad[_0xe20b('0x31')]=_['intersection'](_0x108dad[_0xe20b('0x2f')],_0x108dad[_0xe20b('0x30')]);_0x1d61df['attributes']=_['intersection'](_0x108dad[_0xe20b('0x2f')],qs['fields'](_0x52536b[_0xe20b('0x30')]['fields']));_0x1d61df[_0xe20b('0x33')]=_0x1d61df[_0xe20b('0x33')]['length']?_0x1d61df['attributes']:_0x108dad[_0xe20b('0x2f')];_0x1d61df[_0xe20b('0x38')]=qs[_0xe20b('0x39')](_0x52536b[_0xe20b('0x30')][_0xe20b('0x39')]);_0x1d61df[_0xe20b('0x3c')]=qs[_0xe20b('0x31')](_[_0xe20b('0x3a')](_0x52536b[_0xe20b('0x30')],_0x108dad['filters']));if(_0x52536b[_0xe20b('0x30')][_0xe20b('0x3b')]){_0x1d61df[_0xe20b('0x3c')]=_[_0xe20b('0x3d')](_0x1d61df[_0xe20b('0x3c')],{'$or':_[_0xe20b('0x2a')](_0x1d61df[_0xe20b('0x33')],function(_0x380a1a){var _0x1deb7c={};_0x1deb7c[_0x380a1a]={'$like':'%'+_0x52536b[_0xe20b('0x30')]['filter']+'%'};return _0x1deb7c;})});}_0x1d61df=_[_0xe20b('0x3d')]({},_0x1d61df,_0x52536b[_0xe20b('0x3f')]);return _0x396392[_0xe20b('0x50')](_0x1d61df);}})[_0xe20b('0x25')](function(_0x7e9757){if(_0x7e9757){_0x903a32=_0x7e9757[_0xe20b('0x35')];if(!_0x52536b[_0xe20b('0x30')][_0xe20b('0x36')](_0xe20b('0x4d'))){_0x1d61df[_0xe20b('0x37')]=qs[_0xe20b('0x37')](_0x52536b[_0xe20b('0x30')][_0xe20b('0x37')]);_0x1d61df[_0xe20b('0x1e')]=qs['offset'](_0x52536b['query'][_0xe20b('0x1e')]);}return _0x396392[_0xe20b('0x50')](_0x1d61df);}})[_0xe20b('0x25')](function(_0x4a9d46){if(_0x4a9d46){return _0x4a9d46?{'count':_0x903a32,'rows':_0x4a9d46}:null;}})[_0xe20b('0x25')](respondWithResult(_0x4a0725,null))[_0xe20b('0x44')](handleError(_0x4a0725,null));};