Built motion from commit 775e2a94.|2.6.3
[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 _0xbae3=['key','model','keys','query','filters','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','findAll','rows','catch','show','params','rawAttributes','intersection','fields','include','options','find','create','body','findOne','getSubjects','FreshsalesField','getDescriptions','getFields','rimraf','fast-json-patch','mustache','util','path','ejs','fs-extra','lodash','squel','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','apply','reject','update','then','destroy','sendStatus','stack','name','send','index','map','FreshsalesConfiguration','fieldName','type'];(function(_0xd31621,_0x17b567){var _0x2e7ac0=function(_0x3c5a8d){while(--_0x3c5a8d){_0xd31621['push'](_0xd31621['shift']());}};_0x2e7ac0(++_0x17b567);}(_0xbae3,0x19a));var _0x3bae=function(_0x26db91,_0x5dd131){_0x26db91=_0x26db91-0x0;var _0x2a9476=_0xbae3[_0x26db91];return _0x2a9476;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3bae('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3bae('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3bae('0x2'));var util=require(_0x3bae('0x3'));var path=require(_0x3bae('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x3bae('0x5'));var fs=require('fs');var fs_extra=require(_0x3bae('0x6'));var _=require(_0x3bae('0x7'));var squel=require(_0x3bae('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3bae('0x9'));var toCsv=require('to-csv');var querystring=require(_0x3bae('0xa'));var Papa=require('papaparse');var Redis=require(_0x3bae('0xb'));var authService=require(_0x3bae('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x3bae('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3bae('0xe'))(_0x3bae('0xf'));var utils=require('../../config/utils');var config=require(_0x3bae('0x10'));var licenseUtil=require(_0x3bae('0x11'));var db=require(_0x3bae('0x12'))['db'];function respondWithStatusCode(_0x19b5c7,_0x12b5f0){_0x12b5f0=_0x12b5f0||0xcc;return function(_0x250959){if(_0x250959){return _0x19b5c7['sendStatus'](_0x12b5f0);}return _0x19b5c7[_0x3bae('0x13')](_0x12b5f0)[_0x3bae('0x14')]();};}function respondWithResult(_0xee2fa7,_0x5c6ea2){_0x5c6ea2=_0x5c6ea2||0xc8;return function(_0x3d3668){if(_0x3d3668){return _0xee2fa7['status'](_0x5c6ea2)[_0x3bae('0x15')](_0x3d3668);}};}function respondWithFilteredResult(_0x2d67da,_0xa6c418){return function(_0x3b1b00){if(_0x3b1b00){var _0x62c0b9=typeof _0xa6c418[_0x3bae('0x16')]===_0x3bae('0x17')&&typeof _0xa6c418['limit']===_0x3bae('0x17');var _0x2ebfc6=_0x3b1b00['count'];var _0xc8a49=_0x62c0b9?0x0:_0xa6c418[_0x3bae('0x16')];var _0x1696e7=_0x62c0b9?_0x3b1b00[_0x3bae('0x18')]:_0xa6c418[_0x3bae('0x16')]+_0xa6c418[_0x3bae('0x19')];var _0x326723;if(_0x1696e7>=_0x2ebfc6){_0x1696e7=_0x2ebfc6;_0x326723=0xc8;}else{_0x326723=0xce;}_0x2d67da['status'](_0x326723);return _0x2d67da['set']('Content-Range',_0xc8a49+'-'+_0x1696e7+'/'+_0x2ebfc6)[_0x3bae('0x15')](_0x3b1b00);}return null;};}function patchUpdates(_0x42e051){return function(_0x20a16f){try{jsonpatch[_0x3bae('0x1a')](_0x20a16f,_0x42e051,!![]);}catch(_0x98a080){return BPromise[_0x3bae('0x1b')](_0x98a080);}return _0x20a16f['save']();};}function saveUpdates(_0x353d15,_0xee910c){return function(_0x378ae4){if(_0x378ae4){return _0x378ae4[_0x3bae('0x1c')](_0x353d15)[_0x3bae('0x1d')](function(_0x483a01){return _0x483a01;});}return null;};}function removeEntity(_0x58ab7b,_0x2b1068){return function(_0xb9117b){if(_0xb9117b){return _0xb9117b[_0x3bae('0x1e')]()[_0x3bae('0x1d')](function(){_0x58ab7b[_0x3bae('0x13')](0xcc)[_0x3bae('0x14')]();});}};}function handleEntityNotFound(_0x2336ff,_0xa82235){return function(_0x1ff7c4){if(!_0x1ff7c4){_0x2336ff[_0x3bae('0x1f')](0x194);}return _0x1ff7c4;};}function handleError(_0x4c7cc1,_0x546a01){_0x546a01=_0x546a01||0x1f4;return function(_0x1a1320){logger['error'](_0x1a1320[_0x3bae('0x20')]);if(_0x1a1320['name']){delete _0x1a1320[_0x3bae('0x21')];}_0x4c7cc1[_0x3bae('0x13')](_0x546a01)[_0x3bae('0x22')](_0x1a1320);};}exports[_0x3bae('0x23')]=function(_0x262981,_0x15bd40){var _0x3bc56f={},_0x306968={},_0x328860={'count':0x0,'rows':[]};var _0x4df544=_[_0x3bae('0x24')](db[_0x3bae('0x25')]['rawAttributes'],function(_0x2a468f){return{'name':_0x2a468f[_0x3bae('0x26')],'type':_0x2a468f[_0x3bae('0x27')][_0x3bae('0x28')]};});_0x306968[_0x3bae('0x29')]=_['map'](_0x4df544,_0x3bae('0x21'));_0x306968['query']=_[_0x3bae('0x2a')](_0x262981[_0x3bae('0x2b')]);_0x306968[_0x3bae('0x2c')]=_['intersection'](_0x306968[_0x3bae('0x29')],_0x306968['query']);_0x3bc56f[_0x3bae('0x2d')]=_['intersection'](_0x306968[_0x3bae('0x29')],qs['fields'](_0x262981[_0x3bae('0x2b')]['fields']));_0x3bc56f['attributes']=_0x3bc56f[_0x3bae('0x2d')][_0x3bae('0x2e')]?_0x3bc56f['attributes']:_0x306968[_0x3bae('0x29')];if(!_0x262981[_0x3bae('0x2b')][_0x3bae('0x2f')](_0x3bae('0x30'))){_0x3bc56f['limit']=qs['limit'](_0x262981[_0x3bae('0x2b')][_0x3bae('0x19')]);_0x3bc56f[_0x3bae('0x16')]=qs['offset'](_0x262981[_0x3bae('0x2b')][_0x3bae('0x16')]);}_0x3bc56f[_0x3bae('0x31')]=qs['sort'](_0x262981[_0x3bae('0x2b')][_0x3bae('0x32')]);_0x3bc56f[_0x3bae('0x33')]=qs[_0x3bae('0x2c')](_[_0x3bae('0x34')](_0x262981[_0x3bae('0x2b')],_0x306968[_0x3bae('0x2c')]),_0x4df544);if(_0x262981[_0x3bae('0x2b')]['filter']){_0x3bc56f[_0x3bae('0x33')]=_[_0x3bae('0x35')](_0x3bc56f[_0x3bae('0x33')],{'$or':_['map'](_0x4df544,function(_0x58fec2){if(_0x58fec2['type']!==_0x3bae('0x36')){var _0x27ce96={};_0x27ce96[_0x58fec2[_0x3bae('0x21')]]={'$like':'%'+_0x262981['query'][_0x3bae('0x37')]+'%'};return _0x27ce96;}})});}_0x3bc56f=_[_0x3bae('0x35')]({},_0x3bc56f,_0x262981['options']);var _0x100ec6={'where':_0x3bc56f['where']};return db[_0x3bae('0x25')][_0x3bae('0x18')](_0x100ec6)[_0x3bae('0x1d')](function(_0x16d966){_0x328860['count']=_0x16d966;if(_0x262981[_0x3bae('0x2b')][_0x3bae('0x38')]){_0x3bc56f['include']=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0x3bae('0x39')](_0x3bc56f);})[_0x3bae('0x1d')](function(_0x159c33){_0x328860[_0x3bae('0x3a')]=_0x159c33;return _0x328860;})[_0x3bae('0x1d')](respondWithFilteredResult(_0x15bd40,_0x3bc56f))[_0x3bae('0x3b')](handleError(_0x15bd40,null));};exports[_0x3bae('0x3c')]=function(_0x4fcd4e,_0x253348){var _0xa27bdd={'raw':![],'where':{'id':_0x4fcd4e[_0x3bae('0x3d')]['id']}},_0x18c443={};_0x18c443['model']=_[_0x3bae('0x2a')](db[_0x3bae('0x25')][_0x3bae('0x3e')]);_0x18c443[_0x3bae('0x2b')]=_[_0x3bae('0x2a')](_0x4fcd4e['query']);_0x18c443[_0x3bae('0x2c')]=_[_0x3bae('0x3f')](_0x18c443[_0x3bae('0x29')],_0x18c443['query']);_0xa27bdd[_0x3bae('0x2d')]=_[_0x3bae('0x3f')](_0x18c443[_0x3bae('0x29')],qs[_0x3bae('0x40')](_0x4fcd4e[_0x3bae('0x2b')][_0x3bae('0x40')]));_0xa27bdd['attributes']=_0xa27bdd[_0x3bae('0x2d')]['length']?_0xa27bdd[_0x3bae('0x2d')]:_0x18c443['model'];if(_0x4fcd4e[_0x3bae('0x2b')][_0x3bae('0x38')]){_0xa27bdd[_0x3bae('0x41')]=[{'all':!![]}];}_0xa27bdd=_[_0x3bae('0x35')]({},_0xa27bdd,_0x4fcd4e[_0x3bae('0x42')]);return db[_0x3bae('0x25')][_0x3bae('0x43')](_0xa27bdd)[_0x3bae('0x1d')](handleEntityNotFound(_0x253348,null))['then'](respondWithResult(_0x253348,null))['catch'](handleError(_0x253348,null));};exports[_0x3bae('0x44')]=function(_0x1ca824,_0x4ae9b8){return db['FreshsalesConfiguration'][_0x3bae('0x44')](_0x1ca824[_0x3bae('0x45')],{})[_0x3bae('0x1d')](respondWithResult(_0x4ae9b8,0xc9))[_0x3bae('0x3b')](handleError(_0x4ae9b8,null));};exports['update']=function(_0x22c923,_0xb542a0){if(_0x22c923['body']['id']){delete _0x22c923['body']['id'];}return db[_0x3bae('0x25')][_0x3bae('0x43')]({'where':{'id':_0x22c923[_0x3bae('0x3d')]['id']}})[_0x3bae('0x1d')](handleEntityNotFound(_0xb542a0,null))[_0x3bae('0x1d')](saveUpdates(_0x22c923['body'],null))[_0x3bae('0x1d')](respondWithResult(_0xb542a0,null))[_0x3bae('0x3b')](handleError(_0xb542a0,null));};exports['destroy']=function(_0x25af53,_0x4ac9d2){return db['FreshsalesConfiguration']['find']({'where':{'id':_0x25af53[_0x3bae('0x3d')]['id']}})[_0x3bae('0x1d')](handleEntityNotFound(_0x4ac9d2,null))[_0x3bae('0x1d')](removeEntity(_0x4ac9d2,null))['catch'](handleError(_0x4ac9d2,null));};exports['getSubjects']=function(_0x19bf64,_0x1d612a,_0x43c952){var _0x352e47={};var _0x270ce8={};var _0x568c99;var _0xda5ba4;return db[_0x3bae('0x25')][_0x3bae('0x46')]({'where':{'id':_0x19bf64[_0x3bae('0x3d')]['id']}})[_0x3bae('0x1d')](handleEntityNotFound(_0x1d612a,null))[_0x3bae('0x1d')](function(_0x1c70dd){if(_0x1c70dd){_0x568c99=_0x1c70dd;_0x270ce8[_0x3bae('0x29')]=_[_0x3bae('0x2a')](db['FreshsalesField'][_0x3bae('0x3e')]);_0x270ce8[_0x3bae('0x2b')]=_[_0x3bae('0x2a')](_0x19bf64[_0x3bae('0x2b')]);_0x270ce8[_0x3bae('0x2c')]=_[_0x3bae('0x3f')](_0x270ce8['model'],_0x270ce8[_0x3bae('0x2b')]);_0x352e47['attributes']=_[_0x3bae('0x3f')](_0x270ce8[_0x3bae('0x29')],qs[_0x3bae('0x40')](_0x19bf64[_0x3bae('0x2b')][_0x3bae('0x40')]));_0x352e47['attributes']=_0x352e47[_0x3bae('0x2d')]['length']?_0x352e47[_0x3bae('0x2d')]:_0x270ce8[_0x3bae('0x29')];_0x352e47['order']=qs['sort'](_0x19bf64['query'][_0x3bae('0x32')]);_0x352e47['where']=qs[_0x3bae('0x2c')](_['pick'](_0x19bf64[_0x3bae('0x2b')],_0x270ce8[_0x3bae('0x2c')]));if(_0x19bf64[_0x3bae('0x2b')][_0x3bae('0x37')]){_0x352e47[_0x3bae('0x33')]=_['merge'](_0x352e47[_0x3bae('0x33')],{'$or':_[_0x3bae('0x24')](_0x352e47[_0x3bae('0x2d')],function(_0x284b1e){var _0x2c92fb={};_0x2c92fb[_0x284b1e]={'$like':'%'+_0x19bf64['query']['filter']+'%'};return _0x2c92fb;})});}_0x352e47=_[_0x3bae('0x35')]({},_0x352e47,_0x19bf64[_0x3bae('0x42')]);return _0x568c99[_0x3bae('0x47')](_0x352e47);}})['then'](function(_0x35ab7e){if(_0x35ab7e){_0xda5ba4=_0x35ab7e['length'];if(!_0x19bf64[_0x3bae('0x2b')][_0x3bae('0x2f')](_0x3bae('0x30'))){_0x352e47[_0x3bae('0x19')]=qs['limit'](_0x19bf64[_0x3bae('0x2b')][_0x3bae('0x19')]);_0x352e47[_0x3bae('0x16')]=qs[_0x3bae('0x16')](_0x19bf64['query'][_0x3bae('0x16')]);}return _0x568c99[_0x3bae('0x47')](_0x352e47);}})[_0x3bae('0x1d')](function(_0x4112a9){if(_0x4112a9){return _0x4112a9?{'count':_0xda5ba4,'rows':_0x4112a9}:null;}})[_0x3bae('0x1d')](respondWithResult(_0x1d612a,null))['catch'](handleError(_0x1d612a,null));};exports['getDescriptions']=function(_0x14f8fa,_0x9b3ebe,_0x708964){var _0x113289={};var _0x161e9d={};var _0x2c87d6;var _0x53cc96;return db[_0x3bae('0x25')][_0x3bae('0x46')]({'where':{'id':_0x14f8fa[_0x3bae('0x3d')]['id']}})[_0x3bae('0x1d')](handleEntityNotFound(_0x9b3ebe,null))[_0x3bae('0x1d')](function(_0x17de8a){if(_0x17de8a){_0x2c87d6=_0x17de8a;_0x161e9d['model']=_[_0x3bae('0x2a')](db[_0x3bae('0x48')]['rawAttributes']);_0x161e9d[_0x3bae('0x2b')]=_[_0x3bae('0x2a')](_0x14f8fa['query']);_0x161e9d[_0x3bae('0x2c')]=_[_0x3bae('0x3f')](_0x161e9d['model'],_0x161e9d['query']);_0x113289[_0x3bae('0x2d')]=_[_0x3bae('0x3f')](_0x161e9d[_0x3bae('0x29')],qs[_0x3bae('0x40')](_0x14f8fa['query'][_0x3bae('0x40')]));_0x113289[_0x3bae('0x2d')]=_0x113289[_0x3bae('0x2d')][_0x3bae('0x2e')]?_0x113289[_0x3bae('0x2d')]:_0x161e9d[_0x3bae('0x29')];_0x113289['order']=qs[_0x3bae('0x32')](_0x14f8fa['query'][_0x3bae('0x32')]);_0x113289[_0x3bae('0x33')]=qs[_0x3bae('0x2c')](_['pick'](_0x14f8fa[_0x3bae('0x2b')],_0x161e9d['filters']));if(_0x14f8fa[_0x3bae('0x2b')][_0x3bae('0x37')]){_0x113289['where']=_[_0x3bae('0x35')](_0x113289[_0x3bae('0x33')],{'$or':_[_0x3bae('0x24')](_0x113289['attributes'],function(_0x150e44){var _0x379f0e={};_0x379f0e[_0x150e44]={'$like':'%'+_0x14f8fa[_0x3bae('0x2b')]['filter']+'%'};return _0x379f0e;})});}_0x113289=_[_0x3bae('0x35')]({},_0x113289,_0x14f8fa[_0x3bae('0x42')]);return _0x2c87d6[_0x3bae('0x49')](_0x113289);}})[_0x3bae('0x1d')](function(_0x500fd3){if(_0x500fd3){_0x53cc96=_0x500fd3[_0x3bae('0x2e')];if(!_0x14f8fa[_0x3bae('0x2b')]['hasOwnProperty'](_0x3bae('0x30'))){_0x113289[_0x3bae('0x19')]=qs[_0x3bae('0x19')](_0x14f8fa[_0x3bae('0x2b')]['limit']);_0x113289[_0x3bae('0x16')]=qs[_0x3bae('0x16')](_0x14f8fa[_0x3bae('0x2b')][_0x3bae('0x16')]);}return _0x2c87d6[_0x3bae('0x49')](_0x113289);}})[_0x3bae('0x1d')](function(_0x2380e9){if(_0x2380e9){return _0x2380e9?{'count':_0x53cc96,'rows':_0x2380e9}:null;}})[_0x3bae('0x1d')](respondWithResult(_0x9b3ebe,null))[_0x3bae('0x3b')](handleError(_0x9b3ebe,null));};exports[_0x3bae('0x4a')]=function(_0x53ae13,_0x2eb7b3,_0x2c5468){var _0x64e438={};var _0x1969fa={};var _0x1d04ca;var _0x10d0d3;return db['FreshsalesConfiguration'][_0x3bae('0x46')]({'where':{'id':_0x53ae13['params']['id']}})[_0x3bae('0x1d')](handleEntityNotFound(_0x2eb7b3,null))['then'](function(_0x7feb2a){if(_0x7feb2a){_0x1d04ca=_0x7feb2a;_0x1969fa[_0x3bae('0x29')]=_['keys'](db[_0x3bae('0x48')]['rawAttributes']);_0x1969fa[_0x3bae('0x2b')]=_[_0x3bae('0x2a')](_0x53ae13[_0x3bae('0x2b')]);_0x1969fa[_0x3bae('0x2c')]=_[_0x3bae('0x3f')](_0x1969fa['model'],_0x1969fa[_0x3bae('0x2b')]);_0x64e438[_0x3bae('0x2d')]=_[_0x3bae('0x3f')](_0x1969fa[_0x3bae('0x29')],qs[_0x3bae('0x40')](_0x53ae13['query'][_0x3bae('0x40')]));_0x64e438[_0x3bae('0x2d')]=_0x64e438[_0x3bae('0x2d')][_0x3bae('0x2e')]?_0x64e438['attributes']:_0x1969fa[_0x3bae('0x29')];_0x64e438['order']=qs[_0x3bae('0x32')](_0x53ae13[_0x3bae('0x2b')][_0x3bae('0x32')]);_0x64e438[_0x3bae('0x33')]=qs[_0x3bae('0x2c')](_[_0x3bae('0x34')](_0x53ae13['query'],_0x1969fa[_0x3bae('0x2c')]));if(_0x53ae13[_0x3bae('0x2b')][_0x3bae('0x37')]){_0x64e438[_0x3bae('0x33')]=_[_0x3bae('0x35')](_0x64e438['where'],{'$or':_[_0x3bae('0x24')](_0x64e438[_0x3bae('0x2d')],function(_0x30683e){var _0x35822b={};_0x35822b[_0x30683e]={'$like':'%'+_0x53ae13[_0x3bae('0x2b')][_0x3bae('0x37')]+'%'};return _0x35822b;})});}_0x64e438=_[_0x3bae('0x35')]({},_0x64e438,_0x53ae13[_0x3bae('0x42')]);return _0x1d04ca[_0x3bae('0x4a')](_0x64e438);}})['then'](function(_0x28de81){if(_0x28de81){_0x10d0d3=_0x28de81[_0x3bae('0x2e')];if(!_0x53ae13[_0x3bae('0x2b')][_0x3bae('0x2f')](_0x3bae('0x30'))){_0x64e438[_0x3bae('0x19')]=qs['limit'](_0x53ae13[_0x3bae('0x2b')][_0x3bae('0x19')]);_0x64e438[_0x3bae('0x16')]=qs[_0x3bae('0x16')](_0x53ae13[_0x3bae('0x2b')]['offset']);}return _0x1d04ca[_0x3bae('0x4a')](_0x64e438);}})['then'](function(_0x24d7f5){if(_0x24d7f5){return _0x24d7f5?{'count':_0x10d0d3,'rows':_0x24d7f5}:null;}})[_0x3bae('0x1d')](respondWithResult(_0x2eb7b3,null))[_0x3bae('0x3b')](handleError(_0x2eb7b3,null));};