3a71ae45253b4775537f12535d9d1451fb90cd4e
[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 _0x684e=['describe','model','keys','query','filters','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','options','includeAll','include','findAll','rows','catch','params','intersection','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','CmContact','ids','getContacts','findOne','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','Companies','UserProfileResource','error','stack','name','send','index','CmCompany'];(function(_0x2fdc3b,_0x5e8cc2){var _0x5150b0=function(_0x322164){while(--_0x322164){_0x2fdc3b['push'](_0x2fdc3b['shift']());}};_0x5150b0(++_0x5e8cc2);}(_0x684e,0x1cb));var _0xe684=function(_0x58659d,_0x3b15d2){_0x58659d=_0x58659d-0x0;var _0x429d10=_0x684e[_0x58659d];return _0x429d10;};'use strict';var emlformat=require(_0xe684('0x0'));var rimraf=require(_0xe684('0x1'));var zipdir=require(_0xe684('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe684('0x3'));var moment=require(_0xe684('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe684('0x5'));var util=require(_0xe684('0x6'));var path=require('path');var sox=require(_0xe684('0x7'));var csv=require(_0xe684('0x8'));var ejs=require(_0xe684('0x9'));var fs=require('fs');var fs_extra=require(_0xe684('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xe684('0xb'));var toCsv=require('to-csv');var querystring=require(_0xe684('0xc'));var Papa=require(_0xe684('0xd'));var Redis=require(_0xe684('0xe'));var authService=require(_0xe684('0xf'));var qs=require(_0xe684('0x10'));var as=require(_0xe684('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe684('0x12'))(_0xe684('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xe684('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x884021,_0x4b8b34){_0x4b8b34=_0x4b8b34||0xcc;return function(_0x3a9c62){if(_0x3a9c62){return _0x884021[_0xe684('0x15')](_0x4b8b34);}return _0x884021[_0xe684('0x16')](_0x4b8b34)[_0xe684('0x17')]();};}function respondWithResult(_0x1dbb83,_0x521fb3){_0x521fb3=_0x521fb3||0xc8;return function(_0x1dedc7){if(_0x1dedc7){return _0x1dbb83[_0xe684('0x16')](_0x521fb3)[_0xe684('0x18')](_0x1dedc7);}};}function respondWithFilteredResult(_0x5ccf44,_0x24e455){return function(_0x191c43){if(_0x191c43){var _0x32dae3=typeof _0x24e455[_0xe684('0x19')]===_0xe684('0x1a')&&typeof _0x24e455[_0xe684('0x1b')]==='undefined';var _0x13b7e1=_0x191c43[_0xe684('0x1c')];var _0x511866=_0x32dae3?0x0:_0x24e455[_0xe684('0x19')];var _0x4b9604=_0x32dae3?_0x191c43[_0xe684('0x1c')]:_0x24e455[_0xe684('0x19')]+_0x24e455[_0xe684('0x1b')];var _0x532ee5;if(_0x4b9604>=_0x13b7e1){_0x4b9604=_0x13b7e1;_0x532ee5=0xc8;}else{_0x532ee5=0xce;}_0x5ccf44[_0xe684('0x16')](_0x532ee5);return _0x5ccf44[_0xe684('0x1d')](_0xe684('0x1e'),_0x511866+'-'+_0x4b9604+'/'+_0x13b7e1)['json'](_0x191c43);}return null;};}function patchUpdates(_0x5eb3c6){return function(_0x322c22){try{jsonpatch[_0xe684('0x1f')](_0x322c22,_0x5eb3c6,!![]);}catch(_0x5c56c1){return BPromise[_0xe684('0x20')](_0x5c56c1);}return _0x322c22[_0xe684('0x21')]();};}function saveUpdates(_0x50471f,_0x7b005d){return function(_0x101b58){if(_0x101b58){return _0x101b58[_0xe684('0x22')](_0x50471f)[_0xe684('0x23')](function(_0x59a545){return _0x59a545;});}return null;};}function removeEntity(_0x3b827a,_0x4b6cf3){return function(_0x1c1589){if(_0x1c1589){return _0x1c1589['destroy']()[_0xe684('0x23')](function(){var _0x1cfa66=_0x1c1589[_0xe684('0x24')]({'plain':!![]});var _0xf02a42=_0xe684('0x25');return db[_0xe684('0x26')]['destroy']({'where':{'type':_0xf02a42,'resourceId':_0x1cfa66['id']}})[_0xe684('0x23')](function(){return _0x1c1589;});})[_0xe684('0x23')](function(){_0x3b827a['status'](0xcc)[_0xe684('0x17')]();});}};}function handleEntityNotFound(_0x2caa03,_0x135e4c){return function(_0x11d38f){if(!_0x11d38f){_0x2caa03['sendStatus'](0x194);}return _0x11d38f;};}function handleError(_0x126247,_0x2a7935){_0x2a7935=_0x2a7935||0x1f4;return function(_0x2fad2f){logger[_0xe684('0x27')](_0x2fad2f[_0xe684('0x28')]);if(_0x2fad2f[_0xe684('0x29')]){delete _0x2fad2f['name'];}_0x126247['status'](_0x2a7935)[_0xe684('0x2a')](_0x2fad2f);};}exports[_0xe684('0x2b')]=function(_0x1b01f9,_0x122bfc){var _0x1ff861={},_0x3a41e3={},_0x11af5f={'count':0x0,'rows':[]};return db[_0xe684('0x2c')][_0xe684('0x2d')]()[_0xe684('0x23')](function(_0x2186d8){_0x3a41e3[_0xe684('0x2e')]=_[_0xe684('0x2f')](_0x2186d8);_0x3a41e3[_0xe684('0x30')]=_[_0xe684('0x2f')](_0x1b01f9[_0xe684('0x30')]);_0x3a41e3[_0xe684('0x31')]=_['intersection'](_0x3a41e3[_0xe684('0x2e')],_0x3a41e3['query']);_0x1ff861['attributes']=_['intersection'](_0x3a41e3[_0xe684('0x2e')],qs[_0xe684('0x32')](_0x1b01f9[_0xe684('0x30')][_0xe684('0x32')]));_0x1ff861[_0xe684('0x33')]=_0x1ff861[_0xe684('0x33')][_0xe684('0x34')]?_0x1ff861[_0xe684('0x33')]:_0x3a41e3['model'];if(!_0x1b01f9[_0xe684('0x30')][_0xe684('0x35')](_0xe684('0x36'))){_0x1ff861[_0xe684('0x1b')]=qs[_0xe684('0x1b')](_0x1b01f9[_0xe684('0x30')][_0xe684('0x1b')]);_0x1ff861[_0xe684('0x19')]=qs['offset'](_0x1b01f9[_0xe684('0x30')][_0xe684('0x19')]);}_0x1ff861[_0xe684('0x37')]=qs['sort'](_0x1b01f9[_0xe684('0x30')][_0xe684('0x38')]);_0x1ff861[_0xe684('0x39')]=qs['filters'](_[_0xe684('0x3a')](_0x1b01f9[_0xe684('0x30')],_0x3a41e3[_0xe684('0x31')]),_0x2186d8);if(_0x1b01f9['query'][_0xe684('0x3b')]){_0x1ff861[_0xe684('0x39')]=_[_0xe684('0x3c')](_0x1ff861['where'],{'$or':_[_0xe684('0x3d')](_0x1ff861['attributes'],function(_0x5478de){var _0x45f11b={};_0x45f11b[_0x5478de]={'$like':'%'+_0x1b01f9[_0xe684('0x30')][_0xe684('0x3b')]+'%'};return _0x45f11b;})});}_0x1ff861=_[_0xe684('0x3c')]({},_0x1ff861,_0x1b01f9[_0xe684('0x3e')]);var _0x55ce2f={'where':_0x1ff861[_0xe684('0x39')]};return db[_0xe684('0x2c')][_0xe684('0x1c')](_0x55ce2f)[_0xe684('0x23')](function(_0xc86481){_0x11af5f['count']=_0xc86481;if(_0x1b01f9[_0xe684('0x30')][_0xe684('0x3f')]){_0x1ff861[_0xe684('0x40')]=[{'all':!![]}];}return db['CmCompany'][_0xe684('0x41')](_0x1ff861);})[_0xe684('0x23')](function(_0xc5395c){_0x11af5f[_0xe684('0x42')]=_0xc5395c;return _0x11af5f;})['then'](respondWithFilteredResult(_0x122bfc,_0x1ff861))[_0xe684('0x43')](handleError(_0x122bfc,null));})[_0xe684('0x43')](handleError(_0x122bfc,null));};exports['show']=function(_0x3daa2c,_0x539b77){var _0x11c504={'raw':![],'where':{'id':_0x3daa2c[_0xe684('0x44')]['id']}},_0x2f498b={};_0x2f498b[_0xe684('0x2e')]=_['keys'](db[_0xe684('0x2c')]['rawAttributes']);_0x2f498b[_0xe684('0x30')]=_[_0xe684('0x2f')](_0x3daa2c[_0xe684('0x30')]);_0x2f498b['filters']=_[_0xe684('0x45')](_0x2f498b[_0xe684('0x2e')],_0x2f498b[_0xe684('0x30')]);_0x11c504['attributes']=_['intersection'](_0x2f498b[_0xe684('0x2e')],qs['fields'](_0x3daa2c[_0xe684('0x30')][_0xe684('0x32')]));_0x11c504['attributes']=_0x11c504[_0xe684('0x33')][_0xe684('0x34')]?_0x11c504[_0xe684('0x33')]:_0x2f498b[_0xe684('0x2e')];if(_0x3daa2c[_0xe684('0x30')][_0xe684('0x3f')]){_0x11c504['include']=[{'all':!![]}];}_0x11c504=_[_0xe684('0x3c')]({},_0x11c504,_0x3daa2c['options']);return db[_0xe684('0x2c')][_0xe684('0x46')](_0x11c504)['then'](handleEntityNotFound(_0x539b77,null))[_0xe684('0x23')](respondWithResult(_0x539b77,null))[_0xe684('0x43')](handleError(_0x539b77,null));};exports[_0xe684('0x47')]=function(_0x1f2d4d,_0x55813d){return db[_0xe684('0x2c')][_0xe684('0x47')](_0x1f2d4d[_0xe684('0x48')],{})['then'](function(_0x6f6137){var _0x315510=_0x1f2d4d[_0xe684('0x49')][_0xe684('0x24')]({'plain':!![]});if(!_0x315510)throw new Error(_0xe684('0x4a'));if(_0x315510[_0xe684('0x4b')]==='user'){var _0x890b03=_0x6f6137[_0xe684('0x24')]({'plain':!![]});var _0x6bcd94='Companies';return db[_0xe684('0x4c')]['find']({'where':{'name':_0x6bcd94,'userProfileId':_0x315510[_0xe684('0x4d')]},'raw':!![]})['then'](function(_0x3eb699){if(_0x3eb699&&_0x3eb699['autoAssociation']===0x0){return db[_0xe684('0x26')][_0xe684('0x47')]({'name':_0x890b03['name'],'resourceId':_0x890b03['id'],'type':_0x3eb699[_0xe684('0x29')],'sectionId':_0x3eb699['id']},{})['then'](function(){return _0x6f6137;});}else{return _0x6f6137;}})[_0xe684('0x43')](function(_0x38573f){logger[_0xe684('0x27')](_0xe684('0x4e'),_0x38573f);throw _0x38573f;});}return _0x6f6137;})[_0xe684('0x23')](respondWithResult(_0x55813d,0xc9))[_0xe684('0x43')](handleError(_0x55813d,null));};exports[_0xe684('0x22')]=function(_0x116138,_0x47b1b8){if(_0x116138['body']['id']){delete _0x116138['body']['id'];}return db['CmCompany'][_0xe684('0x46')]({'where':{'id':_0x116138['params']['id']}})[_0xe684('0x23')](handleEntityNotFound(_0x47b1b8,null))[_0xe684('0x23')](saveUpdates(_0x116138[_0xe684('0x48')],null))[_0xe684('0x23')](respondWithResult(_0x47b1b8,null))[_0xe684('0x43')](handleError(_0x47b1b8,null));};exports[_0xe684('0x4f')]=function(_0x130e09,_0x3abdad){return db['CmCompany'][_0xe684('0x46')]({'where':{'id':_0x130e09[_0xe684('0x44')]['id']}})[_0xe684('0x23')](handleEntityNotFound(_0x3abdad,null))[_0xe684('0x23')](removeEntity(_0x3abdad,null))[_0xe684('0x43')](handleError(_0x3abdad,null));};exports[_0xe684('0x2d')]=function(_0x245d5a,_0x7dc7f2){return db[_0xe684('0x2c')][_0xe684('0x2d')]()['then'](respondWithResult(_0x7dc7f2,null))['catch'](handleError(_0x7dc7f2,null));};exports['addContacts']=function(_0x184d9b,_0x2ceb5a,_0x555fb4){return db[_0xe684('0x50')][_0xe684('0x46')]({'where':{'id':_0x184d9b[_0xe684('0x44')]['id']}})['then'](handleEntityNotFound(_0x2ceb5a,null))[_0xe684('0x23')](function(_0x2cf5f5){if(_0x2cf5f5){return _0x2cf5f5['addContacts'](_0x184d9b[_0xe684('0x48')][_0xe684('0x51')],_['omit'](_0x184d9b[_0xe684('0x48')],[_0xe684('0x51'),'id'])||{});}})[_0xe684('0x23')](respondWithResult(_0x2ceb5a,null))[_0xe684('0x43')](handleError(_0x2ceb5a,null));};exports[_0xe684('0x52')]=function(_0x18ea2b,_0x53b253,_0x41d325){var _0x148e49={};var _0x29caf6={};var _0x5d3825;var _0x4ae14f;return db[_0xe684('0x2c')][_0xe684('0x53')]({'where':{'id':_0x18ea2b[_0xe684('0x44')]['id']}})[_0xe684('0x23')](handleEntityNotFound(_0x53b253,null))['then'](function(_0x4793b0){if(_0x4793b0){_0x5d3825=_0x4793b0;_0x29caf6['model']=_[_0xe684('0x2f')](db[_0xe684('0x50')]['rawAttributes']);_0x29caf6['query']=_[_0xe684('0x2f')](_0x18ea2b[_0xe684('0x30')]);_0x29caf6[_0xe684('0x31')]=_[_0xe684('0x45')](_0x29caf6[_0xe684('0x2e')],_0x29caf6[_0xe684('0x30')]);_0x148e49[_0xe684('0x33')]=_[_0xe684('0x45')](_0x29caf6[_0xe684('0x2e')],qs['fields'](_0x18ea2b['query'][_0xe684('0x32')]));_0x148e49[_0xe684('0x33')]=_0x148e49[_0xe684('0x33')]['length']?_0x148e49[_0xe684('0x33')]:_0x29caf6[_0xe684('0x2e')];_0x148e49[_0xe684('0x37')]=qs[_0xe684('0x38')](_0x18ea2b[_0xe684('0x30')][_0xe684('0x38')]);_0x148e49[_0xe684('0x39')]=qs[_0xe684('0x31')](_[_0xe684('0x3a')](_0x18ea2b[_0xe684('0x30')],_0x29caf6['filters']));if(_0x18ea2b[_0xe684('0x30')]['filter']){_0x148e49[_0xe684('0x39')]=_[_0xe684('0x3c')](_0x148e49[_0xe684('0x39')],{'$or':_['map'](_0x148e49['attributes'],function(_0x2a1d94){var _0x2e17f4={};_0x2e17f4[_0x2a1d94]={'$like':'%'+_0x18ea2b['query']['filter']+'%'};return _0x2e17f4;})});}_0x148e49=_[_0xe684('0x3c')]({},_0x148e49,_0x18ea2b[_0xe684('0x3e')]);return _0x5d3825['getContacts'](_0x148e49);}})['then'](function(_0x354d77){if(_0x354d77){_0x4ae14f=_0x354d77['length'];if(!_0x18ea2b[_0xe684('0x30')]['hasOwnProperty'](_0xe684('0x36'))){_0x148e49[_0xe684('0x1b')]=qs[_0xe684('0x1b')](_0x18ea2b[_0xe684('0x30')][_0xe684('0x1b')]);_0x148e49[_0xe684('0x19')]=qs[_0xe684('0x19')](_0x18ea2b[_0xe684('0x30')][_0xe684('0x19')]);}return _0x5d3825[_0xe684('0x52')](_0x148e49);}})[_0xe684('0x23')](function(_0x5c4798){if(_0x5c4798){return _0x5c4798?{'count':_0x4ae14f,'rows':_0x5c4798}:null;}})['then'](respondWithResult(_0x53b253,null))[_0xe684('0x43')](handleError(_0x53b253,null));};