Built motion from commit 47436d59.|2.6.7
[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 _0x7ea1=['includeAll','include','findAll','rows','catch','show','rawAttributes','length','find','create','body','user','role','Companies','UserProfileSection','userProfileId','autoAssociation','update','params','addContacts','ids','omit','getContacts','findOne','CmContact','order','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','status','json','limit','undefined','count','set','Content-Range','apply','reject','save','destroy','then','get','UserProfileResource','error','name','send','index','CmCompany','describe','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','offset','sort','where','pick','merge','map','filter','options'];(function(_0x536128,_0x205e2b){var _0x19eb75=function(_0x5d5aa0){while(--_0x5d5aa0){_0x536128['push'](_0x536128['shift']());}};_0x19eb75(++_0x205e2b);}(_0x7ea1,0x176));var _0x17ea=function(_0x1ddedd,_0x485606){_0x1ddedd=_0x1ddedd-0x0;var _0xa3e1ac=_0x7ea1[_0x1ddedd];return _0xa3e1ac;};'use strict';var emlformat=require(_0x17ea('0x0'));var rimraf=require(_0x17ea('0x1'));var zipdir=require(_0x17ea('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x17ea('0x3'));var BPromise=require(_0x17ea('0x4'));var Mustache=require(_0x17ea('0x5'));var util=require(_0x17ea('0x6'));var path=require(_0x17ea('0x7'));var sox=require(_0x17ea('0x8'));var csv=require('to-csv');var ejs=require(_0x17ea('0x9'));var fs=require('fs');var fs_extra=require(_0x17ea('0xa'));var _=require(_0x17ea('0xb'));var squel=require(_0x17ea('0xc'));var crypto=require('crypto');var jsforce=require(_0x17ea('0xd'));var deskjs=require(_0x17ea('0xe'));var toCsv=require(_0x17ea('0xf'));var querystring=require(_0x17ea('0x10'));var Papa=require('papaparse');var Redis=require(_0x17ea('0x11'));var authService=require(_0x17ea('0x12'));var qs=require(_0x17ea('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x17ea('0x14'));var logger=require('../../config/logger')(_0x17ea('0x15'));var utils=require(_0x17ea('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x17ea('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x485821,_0x340e5b){_0x340e5b=_0x340e5b||0xcc;return function(_0x4cdbff){if(_0x4cdbff){return _0x485821['sendStatus'](_0x340e5b);}return _0x485821[_0x17ea('0x18')](_0x340e5b)['end']();};}function respondWithResult(_0x532f2e,_0x15cd46){_0x15cd46=_0x15cd46||0xc8;return function(_0x4b9875){if(_0x4b9875){return _0x532f2e['status'](_0x15cd46)[_0x17ea('0x19')](_0x4b9875);}};}function respondWithFilteredResult(_0x4c99e0,_0x30412c){return function(_0xa4fe12){if(_0xa4fe12){var _0x1d7d55=typeof _0x30412c['offset']==='undefined'&&typeof _0x30412c[_0x17ea('0x1a')]===_0x17ea('0x1b');var _0x178c0c=_0xa4fe12['count'];var _0x668860=_0x1d7d55?0x0:_0x30412c['offset'];var _0x3ee6b6=_0x1d7d55?_0xa4fe12[_0x17ea('0x1c')]:_0x30412c['offset']+_0x30412c['limit'];var _0x488870;if(_0x3ee6b6>=_0x178c0c){_0x3ee6b6=_0x178c0c;_0x488870=0xc8;}else{_0x488870=0xce;}_0x4c99e0['status'](_0x488870);return _0x4c99e0[_0x17ea('0x1d')](_0x17ea('0x1e'),_0x668860+'-'+_0x3ee6b6+'/'+_0x178c0c)[_0x17ea('0x19')](_0xa4fe12);}return null;};}function patchUpdates(_0x5405c1){return function(_0x2e2e53){try{jsonpatch[_0x17ea('0x1f')](_0x2e2e53,_0x5405c1,!![]);}catch(_0x1564a9){return BPromise[_0x17ea('0x20')](_0x1564a9);}return _0x2e2e53[_0x17ea('0x21')]();};}function saveUpdates(_0x10a890,_0x144937){return function(_0xc6ccf){if(_0xc6ccf){return _0xc6ccf['update'](_0x10a890)['then'](function(_0x235e9c){return _0x235e9c;});}return null;};}function removeEntity(_0x20992a,_0x3b19b9){return function(_0x116ee4){if(_0x116ee4){return _0x116ee4[_0x17ea('0x22')]()[_0x17ea('0x23')](function(){var _0x56062c=_0x116ee4[_0x17ea('0x24')]({'plain':!![]});var _0x2882e0='Companies';return db[_0x17ea('0x25')][_0x17ea('0x22')]({'where':{'type':_0x2882e0,'resourceId':_0x56062c['id']}})['then'](function(){return _0x116ee4;});})[_0x17ea('0x23')](function(){_0x20992a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2cec7d,_0x117a7a){return function(_0x68333){if(!_0x68333){_0x2cec7d['sendStatus'](0x194);}return _0x68333;};}function handleError(_0xf0edb4,_0x5babc1){_0x5babc1=_0x5babc1||0x1f4;return function(_0x2dc433){logger[_0x17ea('0x26')](_0x2dc433['stack']);if(_0x2dc433[_0x17ea('0x27')]){delete _0x2dc433[_0x17ea('0x27')];}_0xf0edb4[_0x17ea('0x18')](_0x5babc1)[_0x17ea('0x28')](_0x2dc433);};}exports[_0x17ea('0x29')]=function(_0x5df5a,_0x1a6f01){var _0x46081c={},_0x1c41b5={},_0x17ea61={'count':0x0,'rows':[]};return db[_0x17ea('0x2a')][_0x17ea('0x2b')]()[_0x17ea('0x23')](function(_0x2027be){_0x1c41b5[_0x17ea('0x2c')]=_[_0x17ea('0x2d')](_0x2027be);_0x1c41b5[_0x17ea('0x2e')]=_[_0x17ea('0x2d')](_0x5df5a[_0x17ea('0x2e')]);_0x1c41b5[_0x17ea('0x2f')]=_[_0x17ea('0x30')](_0x1c41b5[_0x17ea('0x2c')],_0x1c41b5[_0x17ea('0x2e')]);_0x46081c[_0x17ea('0x31')]=_[_0x17ea('0x30')](_0x1c41b5['model'],qs[_0x17ea('0x32')](_0x5df5a[_0x17ea('0x2e')][_0x17ea('0x32')]));_0x46081c[_0x17ea('0x31')]=_0x46081c[_0x17ea('0x31')]['length']?_0x46081c[_0x17ea('0x31')]:_0x1c41b5[_0x17ea('0x2c')];if(!_0x5df5a[_0x17ea('0x2e')][_0x17ea('0x33')](_0x17ea('0x34'))){_0x46081c[_0x17ea('0x1a')]=qs[_0x17ea('0x1a')](_0x5df5a[_0x17ea('0x2e')]['limit']);_0x46081c[_0x17ea('0x35')]=qs['offset'](_0x5df5a[_0x17ea('0x2e')]['offset']);}_0x46081c['order']=qs[_0x17ea('0x36')](_0x5df5a['query'][_0x17ea('0x36')]);_0x46081c[_0x17ea('0x37')]=qs[_0x17ea('0x2f')](_[_0x17ea('0x38')](_0x5df5a[_0x17ea('0x2e')],_0x1c41b5[_0x17ea('0x2f')]),_0x2027be);if(_0x5df5a['query']['filter']){_0x46081c[_0x17ea('0x37')]=_[_0x17ea('0x39')](_0x46081c[_0x17ea('0x37')],{'$or':_[_0x17ea('0x3a')](_0x46081c[_0x17ea('0x31')],function(_0x534df7){var _0x222739={};_0x222739[_0x534df7]={'$like':'%'+_0x5df5a[_0x17ea('0x2e')][_0x17ea('0x3b')]+'%'};return _0x222739;})});}_0x46081c=_[_0x17ea('0x39')]({},_0x46081c,_0x5df5a[_0x17ea('0x3c')]);var _0x1d2b37={'where':_0x46081c[_0x17ea('0x37')]};return db[_0x17ea('0x2a')][_0x17ea('0x1c')](_0x1d2b37)[_0x17ea('0x23')](function(_0x5df399){_0x17ea61[_0x17ea('0x1c')]=_0x5df399;if(_0x5df5a[_0x17ea('0x2e')][_0x17ea('0x3d')]){_0x46081c[_0x17ea('0x3e')]=[{'all':!![]}];}return db[_0x17ea('0x2a')][_0x17ea('0x3f')](_0x46081c);})[_0x17ea('0x23')](function(_0x53f559){_0x17ea61[_0x17ea('0x40')]=_0x53f559;return _0x17ea61;})['then'](respondWithFilteredResult(_0x1a6f01,_0x46081c))[_0x17ea('0x41')](handleError(_0x1a6f01,null));})[_0x17ea('0x41')](handleError(_0x1a6f01,null));};exports[_0x17ea('0x42')]=function(_0x144ab1,_0x25029c){var _0x1c46e6={'raw':![],'where':{'id':_0x144ab1['params']['id']}},_0x53c952={};_0x53c952[_0x17ea('0x2c')]=_['keys'](db[_0x17ea('0x2a')][_0x17ea('0x43')]);_0x53c952[_0x17ea('0x2e')]=_['keys'](_0x144ab1[_0x17ea('0x2e')]);_0x53c952[_0x17ea('0x2f')]=_[_0x17ea('0x30')](_0x53c952[_0x17ea('0x2c')],_0x53c952[_0x17ea('0x2e')]);_0x1c46e6[_0x17ea('0x31')]=_[_0x17ea('0x30')](_0x53c952[_0x17ea('0x2c')],qs[_0x17ea('0x32')](_0x144ab1[_0x17ea('0x2e')][_0x17ea('0x32')]));_0x1c46e6[_0x17ea('0x31')]=_0x1c46e6[_0x17ea('0x31')][_0x17ea('0x44')]?_0x1c46e6[_0x17ea('0x31')]:_0x53c952[_0x17ea('0x2c')];if(_0x144ab1[_0x17ea('0x2e')][_0x17ea('0x3d')]){_0x1c46e6[_0x17ea('0x3e')]=[{'all':!![]}];}_0x1c46e6=_[_0x17ea('0x39')]({},_0x1c46e6,_0x144ab1[_0x17ea('0x3c')]);return db[_0x17ea('0x2a')][_0x17ea('0x45')](_0x1c46e6)[_0x17ea('0x23')](handleEntityNotFound(_0x25029c,null))['then'](respondWithResult(_0x25029c,null))['catch'](handleError(_0x25029c,null));};exports[_0x17ea('0x46')]=function(_0x4a4463,_0x569290){return db['CmCompany'][_0x17ea('0x46')](_0x4a4463[_0x17ea('0x47')],{})[_0x17ea('0x23')](function(_0x1fa471){var _0x16c07e=_0x4a4463[_0x17ea('0x48')][_0x17ea('0x24')]({'plain':!![]});if(!_0x16c07e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x16c07e[_0x17ea('0x49')]===_0x17ea('0x48')){var _0x378453=_0x1fa471['get']({'plain':!![]});var _0x227461=_0x17ea('0x4a');return db[_0x17ea('0x4b')]['find']({'where':{'name':_0x227461,'userProfileId':_0x16c07e[_0x17ea('0x4c')]},'raw':!![]})[_0x17ea('0x23')](function(_0x4c12fb){if(_0x4c12fb&&_0x4c12fb[_0x17ea('0x4d')]===0x0){return db['UserProfileResource'][_0x17ea('0x46')]({'name':_0x378453[_0x17ea('0x27')],'resourceId':_0x378453['id'],'type':_0x4c12fb['name'],'sectionId':_0x4c12fb['id']},{})[_0x17ea('0x23')](function(){return _0x1fa471;});}else{return _0x1fa471;}})['catch'](function(_0x4208d8){logger[_0x17ea('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4208d8);throw _0x4208d8;});}return _0x1fa471;})[_0x17ea('0x23')](respondWithResult(_0x569290,0xc9))[_0x17ea('0x41')](handleError(_0x569290,null));};exports[_0x17ea('0x4e')]=function(_0x3a7c,_0x16b3ff){if(_0x3a7c['body']['id']){delete _0x3a7c[_0x17ea('0x47')]['id'];}return db['CmCompany'][_0x17ea('0x45')]({'where':{'id':_0x3a7c['params']['id']}})[_0x17ea('0x23')](handleEntityNotFound(_0x16b3ff,null))[_0x17ea('0x23')](saveUpdates(_0x3a7c[_0x17ea('0x47')],null))[_0x17ea('0x23')](respondWithResult(_0x16b3ff,null))[_0x17ea('0x41')](handleError(_0x16b3ff,null));};exports[_0x17ea('0x22')]=function(_0x1f154f,_0x1c18f0){return db[_0x17ea('0x2a')][_0x17ea('0x45')]({'where':{'id':_0x1f154f[_0x17ea('0x4f')]['id']}})['then'](handleEntityNotFound(_0x1c18f0,null))['then'](removeEntity(_0x1c18f0,null))[_0x17ea('0x41')](handleError(_0x1c18f0,null));};exports['describe']=function(_0x3c3cb0,_0x5c0b1c){return db[_0x17ea('0x2a')]['describe']()[_0x17ea('0x23')](respondWithResult(_0x5c0b1c,null))[_0x17ea('0x41')](handleError(_0x5c0b1c,null));};exports[_0x17ea('0x50')]=function(_0xc3978,_0x523dc2,_0x2297cf){return db['CmContact']['find']({'where':{'id':_0xc3978[_0x17ea('0x4f')]['id']}})[_0x17ea('0x23')](handleEntityNotFound(_0x523dc2,null))[_0x17ea('0x23')](function(_0x5f1108){if(_0x5f1108){return _0x5f1108['addContacts'](_0xc3978[_0x17ea('0x47')][_0x17ea('0x51')],_[_0x17ea('0x52')](_0xc3978['body'],[_0x17ea('0x51'),'id'])||{});}})[_0x17ea('0x23')](respondWithResult(_0x523dc2,null))[_0x17ea('0x41')](handleError(_0x523dc2,null));};exports[_0x17ea('0x53')]=function(_0x10ed7c,_0x328da7,_0x3065fd){var _0x5b82f8={};var _0x172686={};var _0x1689fd;var _0x258f16;return db[_0x17ea('0x2a')][_0x17ea('0x54')]({'where':{'id':_0x10ed7c[_0x17ea('0x4f')]['id']}})['then'](handleEntityNotFound(_0x328da7,null))[_0x17ea('0x23')](function(_0x5ebe7a){if(_0x5ebe7a){_0x1689fd=_0x5ebe7a;_0x172686[_0x17ea('0x2c')]=_[_0x17ea('0x2d')](db[_0x17ea('0x55')]['rawAttributes']);_0x172686[_0x17ea('0x2e')]=_[_0x17ea('0x2d')](_0x10ed7c['query']);_0x172686[_0x17ea('0x2f')]=_['intersection'](_0x172686[_0x17ea('0x2c')],_0x172686[_0x17ea('0x2e')]);_0x5b82f8[_0x17ea('0x31')]=_['intersection'](_0x172686[_0x17ea('0x2c')],qs['fields'](_0x10ed7c[_0x17ea('0x2e')][_0x17ea('0x32')]));_0x5b82f8[_0x17ea('0x31')]=_0x5b82f8[_0x17ea('0x31')]['length']?_0x5b82f8[_0x17ea('0x31')]:_0x172686[_0x17ea('0x2c')];_0x5b82f8[_0x17ea('0x56')]=qs['sort'](_0x10ed7c[_0x17ea('0x2e')][_0x17ea('0x36')]);_0x5b82f8[_0x17ea('0x37')]=qs['filters'](_[_0x17ea('0x38')](_0x10ed7c['query'],_0x172686[_0x17ea('0x2f')]));if(_0x10ed7c[_0x17ea('0x2e')]['filter']){_0x5b82f8[_0x17ea('0x37')]=_[_0x17ea('0x39')](_0x5b82f8[_0x17ea('0x37')],{'$or':_[_0x17ea('0x3a')](_0x5b82f8[_0x17ea('0x31')],function(_0x42ec0a){var _0x3f6fb3={};_0x3f6fb3[_0x42ec0a]={'$like':'%'+_0x10ed7c['query'][_0x17ea('0x3b')]+'%'};return _0x3f6fb3;})});}_0x5b82f8=_[_0x17ea('0x39')]({},_0x5b82f8,_0x10ed7c[_0x17ea('0x3c')]);return _0x1689fd[_0x17ea('0x53')](_0x5b82f8);}})[_0x17ea('0x23')](function(_0x4eb090){if(_0x4eb090){_0x258f16=_0x4eb090[_0x17ea('0x44')];if(!_0x10ed7c[_0x17ea('0x2e')]['hasOwnProperty']('nolimit')){_0x5b82f8[_0x17ea('0x1a')]=qs['limit'](_0x10ed7c[_0x17ea('0x2e')]['limit']);_0x5b82f8[_0x17ea('0x35')]=qs[_0x17ea('0x35')](_0x10ed7c['query'][_0x17ea('0x35')]);}return _0x1689fd[_0x17ea('0x53')](_0x5b82f8);}})[_0x17ea('0x23')](function(_0x2e80d4){if(_0x2e80d4){return _0x2e80d4?{'count':_0x258f16,'rows':_0x2e80d4}:null;}})[_0x17ea('0x23')](respondWithResult(_0x328da7,null))[_0x17ea('0x41')](handleError(_0x328da7,null));};