0e39ca2988a6d46a034ec8eeb39683d024678ac2
[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 _0x164e=['util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','type','key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','FreshsalesConfiguration','includeAll','include','show','rawAttributes','options','catch','create','body','find','params','getSubjects','findOne','FreshsalesField','getDescriptions','getFields','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache'];(function(_0x373756,_0x123262){var _0x420ba3=function(_0x2e3a24){while(--_0x2e3a24){_0x373756['push'](_0x373756['shift']());}};_0x420ba3(++_0x123262);}(_0x164e,0x136));var _0xe164=function(_0x5afb77,_0xdad1e1){_0x5afb77=_0x5afb77-0x0;var _0x477268=_0x164e[_0x5afb77];return _0x477268;};'use strict';var emlformat=require(_0xe164('0x0'));var rimraf=require(_0xe164('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe164('0x2'));var rp=require(_0xe164('0x3'));var moment=require(_0xe164('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe164('0x5'));var util=require(_0xe164('0x6'));var path=require(_0xe164('0x7'));var sox=require(_0xe164('0x8'));var csv=require(_0xe164('0x9'));var ejs=require(_0xe164('0xa'));var fs=require('fs');var fs_extra=require(_0xe164('0xb'));var _=require(_0xe164('0xc'));var squel=require(_0xe164('0xd'));var crypto=require(_0xe164('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xe164('0xf'));var toCsv=require(_0xe164('0x9'));var querystring=require('querystring');var Papa=require(_0xe164('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xe164('0x11'));var as=require(_0xe164('0x12'));var hardwareService=require(_0xe164('0x13'));var logger=require('../../config/logger')(_0xe164('0x14'));var utils=require(_0xe164('0x15'));var config=require(_0xe164('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x10dd67,_0xe81a29){_0xe81a29=_0xe81a29||0xcc;return function(_0x4110d6){if(_0x4110d6){return _0x10dd67[_0xe164('0x17')](_0xe81a29);}return _0x10dd67[_0xe164('0x18')](_0xe81a29)[_0xe164('0x19')]();};}function respondWithResult(_0x4dfcd3,_0x3f5ad6){_0x3f5ad6=_0x3f5ad6||0xc8;return function(_0x2a910a){if(_0x2a910a){return _0x4dfcd3['status'](_0x3f5ad6)[_0xe164('0x1a')](_0x2a910a);}};}function respondWithFilteredResult(_0x1087cb,_0x5a1014){return function(_0x47a547){if(_0x47a547){var _0x1a9bb3=typeof _0x5a1014['offset']===_0xe164('0x1b')&&typeof _0x5a1014['limit']===_0xe164('0x1b');var _0xd59489=_0x47a547[_0xe164('0x1c')];var _0x5f5db6=_0x1a9bb3?0x0:_0x5a1014[_0xe164('0x1d')];var _0x16001f=_0x1a9bb3?_0x47a547[_0xe164('0x1c')]:_0x5a1014[_0xe164('0x1d')]+_0x5a1014[_0xe164('0x1e')];var _0x2e4e2e;if(_0x16001f>=_0xd59489){_0x16001f=_0xd59489;_0x2e4e2e=0xc8;}else{_0x2e4e2e=0xce;}_0x1087cb[_0xe164('0x18')](_0x2e4e2e);return _0x1087cb[_0xe164('0x1f')](_0xe164('0x20'),_0x5f5db6+'-'+_0x16001f+'/'+_0xd59489)[_0xe164('0x1a')](_0x47a547);}return null;};}function patchUpdates(_0x185172){return function(_0x36941f){try{jsonpatch[_0xe164('0x21')](_0x36941f,_0x185172,!![]);}catch(_0x45977a){return BPromise[_0xe164('0x22')](_0x45977a);}return _0x36941f[_0xe164('0x23')]();};}function saveUpdates(_0x3e9a49,_0x14070d){return function(_0x3097fe){if(_0x3097fe){return _0x3097fe[_0xe164('0x24')](_0x3e9a49)[_0xe164('0x25')](function(_0x33bca4){return _0x33bca4;});}return null;};}function removeEntity(_0x1c9825,_0x57ca02){return function(_0x41829a){if(_0x41829a){return _0x41829a[_0xe164('0x26')]()['then'](function(){_0x1c9825[_0xe164('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d11e2,_0x4c4f1b){return function(_0x33a995){if(!_0x33a995){_0x4d11e2[_0xe164('0x17')](0x194);}return _0x33a995;};}function handleError(_0x4ccd7a,_0x1860fe){_0x1860fe=_0x1860fe||0x1f4;return function(_0x528e97){logger[_0xe164('0x27')](_0x528e97[_0xe164('0x28')]);if(_0x528e97[_0xe164('0x29')]){delete _0x528e97['name'];}_0x4ccd7a[_0xe164('0x18')](_0x1860fe)['send'](_0x528e97);};}exports[_0xe164('0x2a')]=function(_0x41614c,_0x584ff1){var _0x134a89={},_0x49fa16={},_0x58b40a={'count':0x0,'rows':[]};var _0x1a82f9=_['map'](db['FreshsalesConfiguration']['rawAttributes'],function(_0x41fe11){return{'name':_0x41fe11['fieldName'],'type':_0x41fe11[_0xe164('0x2b')][_0xe164('0x2c')]};});_0x49fa16['model']=_[_0xe164('0x2d')](_0x1a82f9,_0xe164('0x29'));_0x49fa16[_0xe164('0x2e')]=_[_0xe164('0x2f')](_0x41614c['query']);_0x49fa16[_0xe164('0x30')]=_[_0xe164('0x31')](_0x49fa16[_0xe164('0x32')],_0x49fa16[_0xe164('0x2e')]);_0x134a89[_0xe164('0x33')]=_['intersection'](_0x49fa16[_0xe164('0x32')],qs[_0xe164('0x34')](_0x41614c[_0xe164('0x2e')][_0xe164('0x34')]));_0x134a89[_0xe164('0x33')]=_0x134a89[_0xe164('0x33')][_0xe164('0x35')]?_0x134a89[_0xe164('0x33')]:_0x49fa16['model'];if(!_0x41614c[_0xe164('0x2e')][_0xe164('0x36')](_0xe164('0x37'))){_0x134a89[_0xe164('0x1e')]=qs[_0xe164('0x1e')](_0x41614c[_0xe164('0x2e')][_0xe164('0x1e')]);_0x134a89[_0xe164('0x1d')]=qs[_0xe164('0x1d')](_0x41614c[_0xe164('0x2e')][_0xe164('0x1d')]);}_0x134a89[_0xe164('0x38')]=qs[_0xe164('0x39')](_0x41614c[_0xe164('0x2e')][_0xe164('0x39')]);_0x134a89[_0xe164('0x3a')]=qs[_0xe164('0x30')](_[_0xe164('0x3b')](_0x41614c[_0xe164('0x2e')],_0x49fa16[_0xe164('0x30')]),_0x1a82f9);if(_0x41614c[_0xe164('0x2e')][_0xe164('0x3c')]){_0x134a89['where']=_[_0xe164('0x3d')](_0x134a89[_0xe164('0x3a')],{'$or':_[_0xe164('0x2d')](_0x1a82f9,function(_0x2a502c){if(_0x2a502c[_0xe164('0x2b')]!==_0xe164('0x3e')){var _0x5bd2b3={};_0x5bd2b3[_0x2a502c['name']]={'$like':'%'+_0x41614c['query'][_0xe164('0x3c')]+'%'};return _0x5bd2b3;}})});}_0x134a89=_[_0xe164('0x3d')]({},_0x134a89,_0x41614c['options']);var _0x1284f0={'where':_0x134a89[_0xe164('0x3a')]};return db[_0xe164('0x3f')][_0xe164('0x1c')](_0x1284f0)[_0xe164('0x25')](function(_0x28e776){_0x58b40a['count']=_0x28e776;if(_0x41614c[_0xe164('0x2e')][_0xe164('0x40')]){_0x134a89[_0xe164('0x41')]=[{'all':!![]}];}return db[_0xe164('0x3f')]['findAll'](_0x134a89);})[_0xe164('0x25')](function(_0x2676c0){_0x58b40a['rows']=_0x2676c0;return _0x58b40a;})[_0xe164('0x25')](respondWithFilteredResult(_0x584ff1,_0x134a89))['catch'](handleError(_0x584ff1,null));};exports[_0xe164('0x42')]=function(_0x7ed8f3,_0xf89e6){var _0x4210c3={'raw':![],'where':{'id':_0x7ed8f3['params']['id']}},_0x1d8bb7={};_0x1d8bb7[_0xe164('0x32')]=_[_0xe164('0x2f')](db[_0xe164('0x3f')][_0xe164('0x43')]);_0x1d8bb7[_0xe164('0x2e')]=_[_0xe164('0x2f')](_0x7ed8f3[_0xe164('0x2e')]);_0x1d8bb7[_0xe164('0x30')]=_[_0xe164('0x31')](_0x1d8bb7[_0xe164('0x32')],_0x1d8bb7[_0xe164('0x2e')]);_0x4210c3[_0xe164('0x33')]=_[_0xe164('0x31')](_0x1d8bb7[_0xe164('0x32')],qs[_0xe164('0x34')](_0x7ed8f3['query']['fields']));_0x4210c3[_0xe164('0x33')]=_0x4210c3[_0xe164('0x33')]['length']?_0x4210c3['attributes']:_0x1d8bb7[_0xe164('0x32')];if(_0x7ed8f3[_0xe164('0x2e')]['includeAll']){_0x4210c3[_0xe164('0x41')]=[{'all':!![]}];}_0x4210c3=_['merge']({},_0x4210c3,_0x7ed8f3[_0xe164('0x44')]);return db[_0xe164('0x3f')]['find'](_0x4210c3)[_0xe164('0x25')](handleEntityNotFound(_0xf89e6,null))[_0xe164('0x25')](respondWithResult(_0xf89e6,null))[_0xe164('0x45')](handleError(_0xf89e6,null));};exports['create']=function(_0x39b56f,_0x56f3be){return db[_0xe164('0x3f')][_0xe164('0x46')](_0x39b56f[_0xe164('0x47')],{})[_0xe164('0x25')](respondWithResult(_0x56f3be,0xc9))[_0xe164('0x45')](handleError(_0x56f3be,null));};exports['update']=function(_0x139475,_0x537577){if(_0x139475[_0xe164('0x47')]['id']){delete _0x139475['body']['id'];}return db[_0xe164('0x3f')][_0xe164('0x48')]({'where':{'id':_0x139475['params']['id']}})[_0xe164('0x25')](handleEntityNotFound(_0x537577,null))[_0xe164('0x25')](saveUpdates(_0x139475[_0xe164('0x47')],null))[_0xe164('0x25')](respondWithResult(_0x537577,null))['catch'](handleError(_0x537577,null));};exports[_0xe164('0x26')]=function(_0x53a8fd,_0x3c93c9){return db[_0xe164('0x3f')][_0xe164('0x48')]({'where':{'id':_0x53a8fd[_0xe164('0x49')]['id']}})[_0xe164('0x25')](handleEntityNotFound(_0x3c93c9,null))['then'](removeEntity(_0x3c93c9,null))[_0xe164('0x45')](handleError(_0x3c93c9,null));};exports[_0xe164('0x4a')]=function(_0x306bc8,_0x2a9b9b,_0x174e81){var _0x141173={};var _0x4b4354={};var _0x5e72aa;var _0x3f74e3;return db[_0xe164('0x3f')][_0xe164('0x4b')]({'where':{'id':_0x306bc8[_0xe164('0x49')]['id']}})[_0xe164('0x25')](handleEntityNotFound(_0x2a9b9b,null))[_0xe164('0x25')](function(_0x136380){if(_0x136380){_0x5e72aa=_0x136380;_0x4b4354[_0xe164('0x32')]=_[_0xe164('0x2f')](db[_0xe164('0x4c')][_0xe164('0x43')]);_0x4b4354[_0xe164('0x2e')]=_[_0xe164('0x2f')](_0x306bc8[_0xe164('0x2e')]);_0x4b4354[_0xe164('0x30')]=_['intersection'](_0x4b4354['model'],_0x4b4354[_0xe164('0x2e')]);_0x141173[_0xe164('0x33')]=_[_0xe164('0x31')](_0x4b4354['model'],qs['fields'](_0x306bc8['query'][_0xe164('0x34')]));_0x141173['attributes']=_0x141173['attributes'][_0xe164('0x35')]?_0x141173[_0xe164('0x33')]:_0x4b4354[_0xe164('0x32')];_0x141173[_0xe164('0x38')]=qs[_0xe164('0x39')](_0x306bc8[_0xe164('0x2e')][_0xe164('0x39')]);_0x141173['where']=qs[_0xe164('0x30')](_[_0xe164('0x3b')](_0x306bc8[_0xe164('0x2e')],_0x4b4354[_0xe164('0x30')]));if(_0x306bc8['query']['filter']){_0x141173['where']=_[_0xe164('0x3d')](_0x141173[_0xe164('0x3a')],{'$or':_['map'](_0x141173[_0xe164('0x33')],function(_0x322c2d){var _0x2f7bff={};_0x2f7bff[_0x322c2d]={'$like':'%'+_0x306bc8[_0xe164('0x2e')][_0xe164('0x3c')]+'%'};return _0x2f7bff;})});}_0x141173=_[_0xe164('0x3d')]({},_0x141173,_0x306bc8[_0xe164('0x44')]);return _0x5e72aa[_0xe164('0x4a')](_0x141173);}})[_0xe164('0x25')](function(_0x15d325){if(_0x15d325){_0x3f74e3=_0x15d325[_0xe164('0x35')];if(!_0x306bc8[_0xe164('0x2e')][_0xe164('0x36')](_0xe164('0x37'))){_0x141173[_0xe164('0x1e')]=qs[_0xe164('0x1e')](_0x306bc8[_0xe164('0x2e')][_0xe164('0x1e')]);_0x141173[_0xe164('0x1d')]=qs[_0xe164('0x1d')](_0x306bc8['query'][_0xe164('0x1d')]);}return _0x5e72aa[_0xe164('0x4a')](_0x141173);}})[_0xe164('0x25')](function(_0x319a21){if(_0x319a21){return _0x319a21?{'count':_0x3f74e3,'rows':_0x319a21}:null;}})['then'](respondWithResult(_0x2a9b9b,null))[_0xe164('0x45')](handleError(_0x2a9b9b,null));};exports[_0xe164('0x4d')]=function(_0x4fdabc,_0x5ee886,_0x1a12c7){var _0x2d111d={};var _0xc5b2bb={};var _0x4507d7;var _0x3fe243;return db[_0xe164('0x3f')][_0xe164('0x4b')]({'where':{'id':_0x4fdabc[_0xe164('0x49')]['id']}})[_0xe164('0x25')](handleEntityNotFound(_0x5ee886,null))['then'](function(_0x236254){if(_0x236254){_0x4507d7=_0x236254;_0xc5b2bb['model']=_['keys'](db[_0xe164('0x4c')]['rawAttributes']);_0xc5b2bb['query']=_[_0xe164('0x2f')](_0x4fdabc[_0xe164('0x2e')]);_0xc5b2bb[_0xe164('0x30')]=_[_0xe164('0x31')](_0xc5b2bb[_0xe164('0x32')],_0xc5b2bb[_0xe164('0x2e')]);_0x2d111d[_0xe164('0x33')]=_[_0xe164('0x31')](_0xc5b2bb[_0xe164('0x32')],qs['fields'](_0x4fdabc[_0xe164('0x2e')][_0xe164('0x34')]));_0x2d111d['attributes']=_0x2d111d['attributes'][_0xe164('0x35')]?_0x2d111d['attributes']:_0xc5b2bb[_0xe164('0x32')];_0x2d111d[_0xe164('0x38')]=qs['sort'](_0x4fdabc['query'][_0xe164('0x39')]);_0x2d111d['where']=qs[_0xe164('0x30')](_[_0xe164('0x3b')](_0x4fdabc[_0xe164('0x2e')],_0xc5b2bb[_0xe164('0x30')]));if(_0x4fdabc[_0xe164('0x2e')][_0xe164('0x3c')]){_0x2d111d['where']=_['merge'](_0x2d111d[_0xe164('0x3a')],{'$or':_[_0xe164('0x2d')](_0x2d111d[_0xe164('0x33')],function(_0x194ae3){var _0x2b08c7={};_0x2b08c7[_0x194ae3]={'$like':'%'+_0x4fdabc['query'][_0xe164('0x3c')]+'%'};return _0x2b08c7;})});}_0x2d111d=_[_0xe164('0x3d')]({},_0x2d111d,_0x4fdabc[_0xe164('0x44')]);return _0x4507d7[_0xe164('0x4d')](_0x2d111d);}})[_0xe164('0x25')](function(_0x17d359){if(_0x17d359){_0x3fe243=_0x17d359['length'];if(!_0x4fdabc[_0xe164('0x2e')][_0xe164('0x36')](_0xe164('0x37'))){_0x2d111d[_0xe164('0x1e')]=qs[_0xe164('0x1e')](_0x4fdabc['query'][_0xe164('0x1e')]);_0x2d111d[_0xe164('0x1d')]=qs['offset'](_0x4fdabc[_0xe164('0x2e')][_0xe164('0x1d')]);}return _0x4507d7['getDescriptions'](_0x2d111d);}})['then'](function(_0x3a9f0b){if(_0x3a9f0b){return _0x3a9f0b?{'count':_0x3fe243,'rows':_0x3a9f0b}:null;}})['then'](respondWithResult(_0x5ee886,null))[_0xe164('0x45')](handleError(_0x5ee886,null));};exports['getFields']=function(_0x3dd355,_0x558810,_0x5a458d){var _0x459e85={};var _0x24e3d2={};var _0x389ab9;var _0x5a344d;return db[_0xe164('0x3f')][_0xe164('0x4b')]({'where':{'id':_0x3dd355[_0xe164('0x49')]['id']}})[_0xe164('0x25')](handleEntityNotFound(_0x558810,null))['then'](function(_0x3982cc){if(_0x3982cc){_0x389ab9=_0x3982cc;_0x24e3d2['model']=_[_0xe164('0x2f')](db[_0xe164('0x4c')][_0xe164('0x43')]);_0x24e3d2[_0xe164('0x2e')]=_['keys'](_0x3dd355['query']);_0x24e3d2[_0xe164('0x30')]=_['intersection'](_0x24e3d2[_0xe164('0x32')],_0x24e3d2['query']);_0x459e85[_0xe164('0x33')]=_['intersection'](_0x24e3d2[_0xe164('0x32')],qs[_0xe164('0x34')](_0x3dd355[_0xe164('0x2e')][_0xe164('0x34')]));_0x459e85[_0xe164('0x33')]=_0x459e85['attributes']['length']?_0x459e85[_0xe164('0x33')]:_0x24e3d2[_0xe164('0x32')];_0x459e85['order']=qs[_0xe164('0x39')](_0x3dd355[_0xe164('0x2e')][_0xe164('0x39')]);_0x459e85[_0xe164('0x3a')]=qs[_0xe164('0x30')](_['pick'](_0x3dd355[_0xe164('0x2e')],_0x24e3d2[_0xe164('0x30')]));if(_0x3dd355[_0xe164('0x2e')][_0xe164('0x3c')]){_0x459e85[_0xe164('0x3a')]=_[_0xe164('0x3d')](_0x459e85[_0xe164('0x3a')],{'$or':_[_0xe164('0x2d')](_0x459e85['attributes'],function(_0x520065){var _0x5263ce={};_0x5263ce[_0x520065]={'$like':'%'+_0x3dd355[_0xe164('0x2e')][_0xe164('0x3c')]+'%'};return _0x5263ce;})});}_0x459e85=_['merge']({},_0x459e85,_0x3dd355['options']);return _0x389ab9[_0xe164('0x4e')](_0x459e85);}})[_0xe164('0x25')](function(_0x2f9134){if(_0x2f9134){_0x5a344d=_0x2f9134[_0xe164('0x35')];if(!_0x3dd355['query'][_0xe164('0x36')]('nolimit')){_0x459e85['limit']=qs[_0xe164('0x1e')](_0x3dd355[_0xe164('0x2e')]['limit']);_0x459e85['offset']=qs[_0xe164('0x1d')](_0x3dd355['query'][_0xe164('0x1d')]);}return _0x389ab9[_0xe164('0x4e')](_0x459e85);}})[_0xe164('0x25')](function(_0x594ea5){if(_0x594ea5){return _0x594ea5?{'count':_0x5a344d,'rows':_0x594ea5}:null;}})[_0xe164('0x25')](respondWithResult(_0x558810,null))['catch'](handleError(_0x558810,null));};