f008dece243df8a79deb7d73abd307569eee04e2
[motion2.git] / server / api / cmCompany / cmCompany.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 _0x11ac=['intersection','attributes','order','sort','where','filter','merge','include','findAll','rows','catch','show','params','fields','length','includeAll','options','find','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','ids','omit','getContacts','CmContact','rawAttributes','pick','map','hasOwnProperty','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','Companies','end','error','name','send','index','CmCompany','describe','model','keys','query','filters'];(function(_0x22a8c4,_0x51c09a){var _0x104c6d=function(_0x4d4d3d){while(--_0x4d4d3d){_0x22a8c4['push'](_0x22a8c4['shift']());}};_0x104c6d(++_0x51c09a);}(_0x11ac,0xcc));var _0xc11a=function(_0x5ac600,_0x12f652){_0x5ac600=_0x5ac600-0x0;var _0x37e050=_0x11ac[_0x5ac600];return _0x37e050;};'use strict';var emlformat=require(_0xc11a('0x0'));var rimraf=require(_0xc11a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc11a('0x2'));var rp=require('request-promise');var moment=require(_0xc11a('0x3'));var BPromise=require(_0xc11a('0x4'));var Mustache=require(_0xc11a('0x5'));var util=require(_0xc11a('0x6'));var path=require('path');var sox=require(_0xc11a('0x7'));var csv=require(_0xc11a('0x8'));var ejs=require(_0xc11a('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xc11a('0xa'));var crypto=require(_0xc11a('0xb'));var jsforce=require(_0xc11a('0xc'));var deskjs=require(_0xc11a('0xd'));var toCsv=require(_0xc11a('0x8'));var querystring=require('querystring');var Papa=require(_0xc11a('0xe'));var Redis=require('ioredis');var authService=require(_0xc11a('0xf'));var qs=require(_0xc11a('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc11a('0x11'));var logger=require(_0xc11a('0x12'))(_0xc11a('0x13'));var utils=require(_0xc11a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xc11a('0x15'));var db=require(_0xc11a('0x16'))['db'];function respondWithStatusCode(_0x183ab4,_0x2c8aae){_0x2c8aae=_0x2c8aae||0xcc;return function(_0x3d3c1e){if(_0x3d3c1e){return _0x183ab4[_0xc11a('0x17')](_0x2c8aae);}return _0x183ab4['status'](_0x2c8aae)['end']();};}function respondWithResult(_0x926356,_0x3acc5c){_0x3acc5c=_0x3acc5c||0xc8;return function(_0x38a17d){if(_0x38a17d){return _0x926356[_0xc11a('0x18')](_0x3acc5c)[_0xc11a('0x19')](_0x38a17d);}};}function respondWithFilteredResult(_0x3b91b4,_0x230c57){return function(_0x351793){if(_0x351793){var _0x2a902b=typeof _0x230c57[_0xc11a('0x1a')]===_0xc11a('0x1b')&&typeof _0x230c57[_0xc11a('0x1c')]===_0xc11a('0x1b');var _0x5775aa=_0x351793[_0xc11a('0x1d')];var _0x32eff4=_0x2a902b?0x0:_0x230c57[_0xc11a('0x1a')];var _0x5196f6=_0x2a902b?_0x351793[_0xc11a('0x1d')]:_0x230c57['offset']+_0x230c57[_0xc11a('0x1c')];var _0x2cd49d;if(_0x5196f6>=_0x5775aa){_0x5196f6=_0x5775aa;_0x2cd49d=0xc8;}else{_0x2cd49d=0xce;}_0x3b91b4[_0xc11a('0x18')](_0x2cd49d);return _0x3b91b4[_0xc11a('0x1e')]('Content-Range',_0x32eff4+'-'+_0x5196f6+'/'+_0x5775aa)[_0xc11a('0x19')](_0x351793);}return null;};}function patchUpdates(_0x5caf02){return function(_0x2379de){try{jsonpatch['apply'](_0x2379de,_0x5caf02,!![]);}catch(_0x14a0d3){return BPromise[_0xc11a('0x1f')](_0x14a0d3);}return _0x2379de[_0xc11a('0x20')]();};}function saveUpdates(_0x32b3f0,_0x4abbc6){return function(_0x48d52a){if(_0x48d52a){return _0x48d52a[_0xc11a('0x21')](_0x32b3f0)[_0xc11a('0x22')](function(_0x4cdb48){return _0x4cdb48;});}return null;};}function removeEntity(_0x1ea22d,_0x4fbc45){return function(_0x33bb3b){if(_0x33bb3b){return _0x33bb3b[_0xc11a('0x23')]()[_0xc11a('0x22')](function(){var _0xdd5666=_0x33bb3b['get']({'plain':!![]});var _0x4ace4c=_0xc11a('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0x4ace4c,'resourceId':_0xdd5666['id']}})[_0xc11a('0x22')](function(){return _0x33bb3b;});})[_0xc11a('0x22')](function(){_0x1ea22d[_0xc11a('0x18')](0xcc)[_0xc11a('0x25')]();});}};}function handleEntityNotFound(_0x34bbd8,_0x4377c3){return function(_0x557cdc){if(!_0x557cdc){_0x34bbd8[_0xc11a('0x17')](0x194);}return _0x557cdc;};}function handleError(_0x535e2f,_0x3093d9){_0x3093d9=_0x3093d9||0x1f4;return function(_0x47d988){logger[_0xc11a('0x26')](_0x47d988['stack']);if(_0x47d988[_0xc11a('0x27')]){delete _0x47d988[_0xc11a('0x27')];}_0x535e2f['status'](_0x3093d9)[_0xc11a('0x28')](_0x47d988);};}exports[_0xc11a('0x29')]=function(_0x2f717f,_0x1e32d7){var _0x740b43={},_0x5afcff={},_0x8cd072={'count':0x0,'rows':[]};return db[_0xc11a('0x2a')][_0xc11a('0x2b')]()[_0xc11a('0x22')](function(_0x3c37da){_0x5afcff[_0xc11a('0x2c')]=_[_0xc11a('0x2d')](_0x3c37da);_0x5afcff[_0xc11a('0x2e')]=_[_0xc11a('0x2d')](_0x2f717f[_0xc11a('0x2e')]);_0x5afcff[_0xc11a('0x2f')]=_['intersection'](_0x5afcff[_0xc11a('0x2c')],_0x5afcff[_0xc11a('0x2e')]);_0x740b43['attributes']=_[_0xc11a('0x30')](_0x5afcff[_0xc11a('0x2c')],qs['fields'](_0x2f717f['query']['fields']));_0x740b43[_0xc11a('0x31')]=_0x740b43[_0xc11a('0x31')]['length']?_0x740b43['attributes']:_0x5afcff[_0xc11a('0x2c')];if(!_0x2f717f['query']['hasOwnProperty']('nolimit')){_0x740b43[_0xc11a('0x1c')]=qs['limit'](_0x2f717f['query'][_0xc11a('0x1c')]);_0x740b43[_0xc11a('0x1a')]=qs[_0xc11a('0x1a')](_0x2f717f[_0xc11a('0x2e')][_0xc11a('0x1a')]);}_0x740b43[_0xc11a('0x32')]=qs['sort'](_0x2f717f[_0xc11a('0x2e')][_0xc11a('0x33')]);_0x740b43[_0xc11a('0x34')]=qs[_0xc11a('0x2f')](_['pick'](_0x2f717f[_0xc11a('0x2e')],_0x5afcff['filters']),_0x3c37da);if(_0x2f717f['query'][_0xc11a('0x35')]){_0x740b43[_0xc11a('0x34')]=_[_0xc11a('0x36')](_0x740b43[_0xc11a('0x34')],{'$or':_['map'](_0x740b43['attributes'],function(_0x300418){var _0x166973={};_0x166973[_0x300418]={'$like':'%'+_0x2f717f[_0xc11a('0x2e')][_0xc11a('0x35')]+'%'};return _0x166973;})});}_0x740b43=_[_0xc11a('0x36')]({},_0x740b43,_0x2f717f['options']);var _0x59f84f={'where':_0x740b43[_0xc11a('0x34')]};return db[_0xc11a('0x2a')][_0xc11a('0x1d')](_0x59f84f)[_0xc11a('0x22')](function(_0x68d1b4){_0x8cd072['count']=_0x68d1b4;if(_0x2f717f[_0xc11a('0x2e')]['includeAll']){_0x740b43[_0xc11a('0x37')]=[{'all':!![]}];}return db[_0xc11a('0x2a')][_0xc11a('0x38')](_0x740b43);})[_0xc11a('0x22')](function(_0x3bc813){_0x8cd072[_0xc11a('0x39')]=_0x3bc813;return _0x8cd072;})[_0xc11a('0x22')](respondWithFilteredResult(_0x1e32d7,_0x740b43))['catch'](handleError(_0x1e32d7,null));})[_0xc11a('0x3a')](handleError(_0x1e32d7,null));};exports[_0xc11a('0x3b')]=function(_0x2beae9,_0x10bd48){var _0x21a773={'raw':![],'where':{'id':_0x2beae9[_0xc11a('0x3c')]['id']}},_0x59c63b={};_0x59c63b['model']=_[_0xc11a('0x2d')](db[_0xc11a('0x2a')]['rawAttributes']);_0x59c63b[_0xc11a('0x2e')]=_['keys'](_0x2beae9['query']);_0x59c63b[_0xc11a('0x2f')]=_[_0xc11a('0x30')](_0x59c63b[_0xc11a('0x2c')],_0x59c63b[_0xc11a('0x2e')]);_0x21a773[_0xc11a('0x31')]=_[_0xc11a('0x30')](_0x59c63b[_0xc11a('0x2c')],qs['fields'](_0x2beae9['query'][_0xc11a('0x3d')]));_0x21a773[_0xc11a('0x31')]=_0x21a773[_0xc11a('0x31')][_0xc11a('0x3e')]?_0x21a773[_0xc11a('0x31')]:_0x59c63b[_0xc11a('0x2c')];if(_0x2beae9[_0xc11a('0x2e')][_0xc11a('0x3f')]){_0x21a773[_0xc11a('0x37')]=[{'all':!![]}];}_0x21a773=_[_0xc11a('0x36')]({},_0x21a773,_0x2beae9[_0xc11a('0x40')]);return db['CmCompany'][_0xc11a('0x41')](_0x21a773)[_0xc11a('0x22')](handleEntityNotFound(_0x10bd48,null))['then'](respondWithResult(_0x10bd48,null))[_0xc11a('0x3a')](handleError(_0x10bd48,null));};exports['create']=function(_0x58d902,_0xcee34c){return db[_0xc11a('0x2a')]['create'](_0x58d902[_0xc11a('0x42')],{})[_0xc11a('0x22')](function(_0x5792da){var _0x1a7f99=_0x58d902['user'][_0xc11a('0x43')]({'plain':!![]});if(!_0x1a7f99)throw new Error(_0xc11a('0x44'));if(_0x1a7f99['role']===_0xc11a('0x45')){var _0x3c85e3=_0x5792da[_0xc11a('0x43')]({'plain':!![]});var _0xcf1f33=_0xc11a('0x24');return db[_0xc11a('0x46')][_0xc11a('0x41')]({'where':{'name':_0xcf1f33,'userProfileId':_0x1a7f99[_0xc11a('0x47')]},'raw':!![]})[_0xc11a('0x22')](function(_0x3f9a99){if(_0x3f9a99&&_0x3f9a99[_0xc11a('0x48')]===0x0){return db['UserProfileResource'][_0xc11a('0x49')]({'name':_0x3c85e3['name'],'resourceId':_0x3c85e3['id'],'type':_0x3f9a99[_0xc11a('0x27')],'sectionId':_0x3f9a99['id']},{})[_0xc11a('0x22')](function(){return _0x5792da;});}else{return _0x5792da;}})[_0xc11a('0x3a')](function(_0x123071){logger['error'](_0xc11a('0x4a'),_0x123071);throw _0x123071;});}return _0x5792da;})['then'](respondWithResult(_0xcee34c,0xc9))[_0xc11a('0x3a')](handleError(_0xcee34c,null));};exports['update']=function(_0xd440db,_0x1be2de){if(_0xd440db[_0xc11a('0x42')]['id']){delete _0xd440db[_0xc11a('0x42')]['id'];}return db['CmCompany'][_0xc11a('0x41')]({'where':{'id':_0xd440db[_0xc11a('0x3c')]['id']}})[_0xc11a('0x22')](handleEntityNotFound(_0x1be2de,null))[_0xc11a('0x22')](saveUpdates(_0xd440db[_0xc11a('0x42')],null))[_0xc11a('0x22')](respondWithResult(_0x1be2de,null))[_0xc11a('0x3a')](handleError(_0x1be2de,null));};exports[_0xc11a('0x23')]=function(_0xfe71ef,_0x4a52b6){return db[_0xc11a('0x2a')][_0xc11a('0x41')]({'where':{'id':_0xfe71ef[_0xc11a('0x3c')]['id']}})[_0xc11a('0x22')](handleEntityNotFound(_0x4a52b6,null))['then'](removeEntity(_0x4a52b6,null))[_0xc11a('0x3a')](handleError(_0x4a52b6,null));};exports[_0xc11a('0x2b')]=function(_0x1565ea,_0x3afd3d){return db['CmCompany'][_0xc11a('0x2b')]()[_0xc11a('0x22')](respondWithResult(_0x3afd3d,null))[_0xc11a('0x3a')](handleError(_0x3afd3d,null));};exports[_0xc11a('0x4b')]=function(_0x495230,_0x3a467e,_0x499f43){return db['CmContact'][_0xc11a('0x41')]({'where':{'id':_0x495230[_0xc11a('0x3c')]['id']}})[_0xc11a('0x22')](handleEntityNotFound(_0x3a467e,null))['then'](function(_0x54ce8f){if(_0x54ce8f){return _0x54ce8f[_0xc11a('0x4b')](_0x495230[_0xc11a('0x42')][_0xc11a('0x4c')],_[_0xc11a('0x4d')](_0x495230[_0xc11a('0x42')],['ids','id'])||{});}})[_0xc11a('0x22')](respondWithResult(_0x3a467e,null))['catch'](handleError(_0x3a467e,null));};exports[_0xc11a('0x4e')]=function(_0x26fa2f,_0x5bc6e8,_0x48561e){var _0x519339={};var _0x2ff36b={};var _0x46944b;var _0x2d0ef6;return db['CmCompany']['findOne']({'where':{'id':_0x26fa2f['params']['id']}})[_0xc11a('0x22')](handleEntityNotFound(_0x5bc6e8,null))[_0xc11a('0x22')](function(_0x310672){if(_0x310672){_0x46944b=_0x310672;_0x2ff36b[_0xc11a('0x2c')]=_[_0xc11a('0x2d')](db[_0xc11a('0x4f')][_0xc11a('0x50')]);_0x2ff36b[_0xc11a('0x2e')]=_[_0xc11a('0x2d')](_0x26fa2f[_0xc11a('0x2e')]);_0x2ff36b[_0xc11a('0x2f')]=_[_0xc11a('0x30')](_0x2ff36b[_0xc11a('0x2c')],_0x2ff36b[_0xc11a('0x2e')]);_0x519339['attributes']=_[_0xc11a('0x30')](_0x2ff36b['model'],qs[_0xc11a('0x3d')](_0x26fa2f[_0xc11a('0x2e')][_0xc11a('0x3d')]));_0x519339['attributes']=_0x519339[_0xc11a('0x31')][_0xc11a('0x3e')]?_0x519339['attributes']:_0x2ff36b[_0xc11a('0x2c')];_0x519339[_0xc11a('0x32')]=qs['sort'](_0x26fa2f[_0xc11a('0x2e')]['sort']);_0x519339[_0xc11a('0x34')]=qs[_0xc11a('0x2f')](_[_0xc11a('0x51')](_0x26fa2f[_0xc11a('0x2e')],_0x2ff36b[_0xc11a('0x2f')]));if(_0x26fa2f[_0xc11a('0x2e')]['filter']){_0x519339['where']=_['merge'](_0x519339[_0xc11a('0x34')],{'$or':_[_0xc11a('0x52')](_0x519339[_0xc11a('0x31')],function(_0x1d1c37){var _0x3ef785={};_0x3ef785[_0x1d1c37]={'$like':'%'+_0x26fa2f[_0xc11a('0x2e')][_0xc11a('0x35')]+'%'};return _0x3ef785;})});}_0x519339=_[_0xc11a('0x36')]({},_0x519339,_0x26fa2f['options']);return _0x46944b[_0xc11a('0x4e')](_0x519339);}})[_0xc11a('0x22')](function(_0x4aae78){if(_0x4aae78){_0x2d0ef6=_0x4aae78[_0xc11a('0x3e')];if(!_0x26fa2f[_0xc11a('0x2e')][_0xc11a('0x53')]('nolimit')){_0x519339[_0xc11a('0x1c')]=qs[_0xc11a('0x1c')](_0x26fa2f[_0xc11a('0x2e')][_0xc11a('0x1c')]);_0x519339[_0xc11a('0x1a')]=qs[_0xc11a('0x1a')](_0x26fa2f[_0xc11a('0x2e')][_0xc11a('0x1a')]);}return _0x46944b[_0xc11a('0x4e')](_0x519339);}})['then'](function(_0x346b40){if(_0x346b40){return _0x346b40?{'count':_0x2d0ef6,'rows':_0x346b40}:null;}})['then'](respondWithResult(_0x5bc6e8,null))['catch'](handleError(_0x5bc6e8,null));};