fb5961b9536feda1f6ff51521ac60e2f5b7b8a88
[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 _0xb5cd=['stack','send','CmCompany','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','merge','where','map','count','includeAll','include','findAll','catch','show','rawAttributes','options','find','create','body','user','role','Companies','UserProfileSection','autoAssociation','name','params','addContacts','ids','omit','getContacts','filter','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error'];(function(_0x326f1b,_0x47a0c9){var _0x5e9a3d=function(_0x1f6e63){while(--_0x1f6e63){_0x326f1b['push'](_0x326f1b['shift']());}};_0x5e9a3d(++_0x47a0c9);}(_0xb5cd,0x7b));var _0xdb5c=function(_0x678675,_0x3c3872){_0x678675=_0x678675-0x0;var _0x334525=_0xb5cd[_0x678675];return _0x334525;};'use strict';var pdf=require(_0xdb5c('0x0'));var emlformat=require(_0xdb5c('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xdb5c('0x2'));var jsonpatch=require(_0xdb5c('0x3'));var rp=require(_0xdb5c('0x4'));var moment=require(_0xdb5c('0x5'));var BPromise=require(_0xdb5c('0x6'));var Mustache=require('mustache');var util=require(_0xdb5c('0x7'));var path=require(_0xdb5c('0x8'));var sox=require(_0xdb5c('0x9'));var csv=require(_0xdb5c('0xa'));var ejs=require(_0xdb5c('0xb'));var fs=require('fs');var _=require(_0xdb5c('0xc'));var squel=require(_0xdb5c('0xd'));var crypto=require(_0xdb5c('0xe'));var jsforce=require(_0xdb5c('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xdb5c('0x10'));var Papa=require(_0xdb5c('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xdb5c('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdb5c('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xdb5c('0x14'));var db=require(_0xdb5c('0x15'))['db'];function respondWithStatusCode(_0x36539a,_0x3a20cf){_0x3a20cf=_0x3a20cf||0xcc;return function(_0x1d558e){if(_0x1d558e){return _0x36539a[_0xdb5c('0x16')](_0x3a20cf);}return _0x36539a[_0xdb5c('0x17')](_0x3a20cf)[_0xdb5c('0x18')]();};}function respondWithResult(_0x1b4ea9,_0x344e1d){_0x344e1d=_0x344e1d||0xc8;return function(_0x5e584e){if(_0x5e584e){return _0x1b4ea9[_0xdb5c('0x17')](_0x344e1d)[_0xdb5c('0x19')](_0x5e584e);}};}function respondWithFilteredResult(_0xcba7c7,_0x4a966b){return function(_0x1b2448){if(_0x1b2448){var _0x51feda=_0x1b2448['count'],_0x2a8291=_0x4a966b[_0xdb5c('0x1a')],_0xb92f6d=_0x4a966b[_0xdb5c('0x1a')]+_0x4a966b[_0xdb5c('0x1b')],_0x2ef0ef;if(_0xb92f6d>=_0x51feda){_0xb92f6d=_0x51feda;_0x2ef0ef=0xc8;}else{_0x2ef0ef=0xce;}_0xcba7c7[_0xdb5c('0x17')](_0x2ef0ef);return _0xcba7c7[_0xdb5c('0x1c')](_0xdb5c('0x1d'),_0x2a8291+'-'+_0xb92f6d+'/'+_0x51feda)[_0xdb5c('0x19')](_0x1b2448);}return null;};}function patchUpdates(_0x50b9ae){return function(_0x4fffc8){try{jsonpatch[_0xdb5c('0x1e')](_0x4fffc8,_0x50b9ae,!![]);}catch(_0x316719){return BPromise[_0xdb5c('0x1f')](_0x316719);}return _0x4fffc8[_0xdb5c('0x20')]();};}function saveUpdates(_0x234ce4,_0x48c939){return function(_0x2a5b3e){if(_0x2a5b3e){return _0x2a5b3e[_0xdb5c('0x21')](_0x234ce4)[_0xdb5c('0x22')](function(_0x215919){return _0x215919;});}return null;};}function removeEntity(_0x3c543d,_0x28f994){return function(_0x2e4a4f){if(_0x2e4a4f){return _0x2e4a4f[_0xdb5c('0x23')]()[_0xdb5c('0x22')](function(){var _0x1a7c0d=_0x2e4a4f[_0xdb5c('0x24')]({'plain':!![]});var _0x11be3c='Companies';return db[_0xdb5c('0x25')]['destroy']({'where':{'type':_0x11be3c,'resourceId':_0x1a7c0d['id']}})['then'](function(){return _0x2e4a4f;});})[_0xdb5c('0x22')](function(){_0x3c543d[_0xdb5c('0x17')](0xcc)[_0xdb5c('0x18')]();});}};}function handleEntityNotFound(_0x5f128e,_0x5d66bb){return function(_0x3aa1eb){if(!_0x3aa1eb){_0x5f128e[_0xdb5c('0x16')](0x194);}return _0x3aa1eb;};}function handleError(_0x3e5cba,_0x8cd861){_0x8cd861=_0x8cd861||0x1f4;return function(_0x2beb1f){logger[_0xdb5c('0x26')](_0x2beb1f[_0xdb5c('0x27')]);if(_0x2beb1f['name']){delete _0x2beb1f['name'];}_0x3e5cba['status'](_0x8cd861)[_0xdb5c('0x28')](_0x2beb1f);};}exports['index']=function(_0x1e00a3,_0x2d4865){var _0x2ead7f={},_0xf33b5a={},_0x51c170={'count':0x0,'rows':[]};return db[_0xdb5c('0x29')]['describe']()[_0xdb5c('0x22')](function(_0x203ff1){_0xf33b5a[_0xdb5c('0x2a')]=_['keys'](_0x203ff1);_0xf33b5a[_0xdb5c('0x2b')]=_[_0xdb5c('0x2c')](_0x1e00a3[_0xdb5c('0x2b')]);_0xf33b5a[_0xdb5c('0x2d')]=_[_0xdb5c('0x2e')](_0xf33b5a[_0xdb5c('0x2a')],_0xf33b5a[_0xdb5c('0x2b')]);_0x2ead7f['attributes']=_[_0xdb5c('0x2e')](_0xf33b5a[_0xdb5c('0x2a')],qs[_0xdb5c('0x2f')](_0x1e00a3[_0xdb5c('0x2b')][_0xdb5c('0x2f')]));_0x2ead7f[_0xdb5c('0x30')]=_0x2ead7f[_0xdb5c('0x30')][_0xdb5c('0x31')]?_0x2ead7f['attributes']:_0xf33b5a[_0xdb5c('0x2a')];if(!_0x1e00a3['query'][_0xdb5c('0x32')](_0xdb5c('0x33'))){_0x2ead7f[_0xdb5c('0x1b')]=qs[_0xdb5c('0x1b')](_0x1e00a3[_0xdb5c('0x2b')][_0xdb5c('0x1b')]);_0x2ead7f[_0xdb5c('0x1a')]=qs[_0xdb5c('0x1a')](_0x1e00a3[_0xdb5c('0x2b')][_0xdb5c('0x1a')]);}_0x2ead7f[_0xdb5c('0x34')]=qs[_0xdb5c('0x35')](_0x1e00a3[_0xdb5c('0x2b')][_0xdb5c('0x35')]);_0x2ead7f['where']=qs[_0xdb5c('0x2d')](_[_0xdb5c('0x36')](_0x1e00a3[_0xdb5c('0x2b')],_0xf33b5a[_0xdb5c('0x2d')]),_0x203ff1);if(_0x1e00a3[_0xdb5c('0x2b')]['filter']){_0x2ead7f['where']=_[_0xdb5c('0x37')](_0x2ead7f[_0xdb5c('0x38')],{'$or':_[_0xdb5c('0x39')](_0x2ead7f[_0xdb5c('0x30')],function(_0x193cdb){var _0x51b1b6={};_0x51b1b6[_0x193cdb]={'$like':'%'+_0x1e00a3['query']['filter']+'%'};return _0x51b1b6;})});}_0x2ead7f=_[_0xdb5c('0x37')]({},_0x2ead7f,_0x1e00a3['options']);var _0x4d57f4={'where':_0x2ead7f[_0xdb5c('0x38')]};return db[_0xdb5c('0x29')]['count'](_0x4d57f4)[_0xdb5c('0x22')](function(_0x57f374){_0x51c170[_0xdb5c('0x3a')]=_0x57f374;if(_0x1e00a3[_0xdb5c('0x2b')][_0xdb5c('0x3b')]){_0x2ead7f[_0xdb5c('0x3c')]=[{'all':!![]}];}return db[_0xdb5c('0x29')][_0xdb5c('0x3d')](_0x2ead7f);})[_0xdb5c('0x22')](function(_0x459682){_0x51c170['rows']=_0x459682;return _0x51c170;})['then'](respondWithFilteredResult(_0x2d4865,_0x2ead7f))[_0xdb5c('0x3e')](handleError(_0x2d4865,null));})['catch'](handleError(_0x2d4865,null));};exports[_0xdb5c('0x3f')]=function(_0x265278,_0x2ad4a5){var _0x1b574f={'raw':![],'where':{'id':_0x265278['params']['id']}},_0x942019={};_0x942019[_0xdb5c('0x2a')]=_[_0xdb5c('0x2c')](db['CmCompany'][_0xdb5c('0x40')]);_0x942019['query']=_[_0xdb5c('0x2c')](_0x265278[_0xdb5c('0x2b')]);_0x942019[_0xdb5c('0x2d')]=_[_0xdb5c('0x2e')](_0x942019[_0xdb5c('0x2a')],_0x942019[_0xdb5c('0x2b')]);_0x1b574f[_0xdb5c('0x30')]=_[_0xdb5c('0x2e')](_0x942019['model'],qs[_0xdb5c('0x2f')](_0x265278['query'][_0xdb5c('0x2f')]));_0x1b574f['attributes']=_0x1b574f['attributes']['length']?_0x1b574f['attributes']:_0x942019[_0xdb5c('0x2a')];if(_0x265278['query'][_0xdb5c('0x3b')]){_0x1b574f[_0xdb5c('0x3c')]=[{'all':!![]}];}_0x1b574f=_[_0xdb5c('0x37')]({},_0x1b574f,_0x265278[_0xdb5c('0x41')]);return db[_0xdb5c('0x29')][_0xdb5c('0x42')](_0x1b574f)[_0xdb5c('0x22')](handleEntityNotFound(_0x2ad4a5,null))[_0xdb5c('0x22')](respondWithResult(_0x2ad4a5,null))[_0xdb5c('0x3e')](handleError(_0x2ad4a5,null));};exports[_0xdb5c('0x43')]=function(_0x437f41,_0x5ddb08){return db[_0xdb5c('0x29')][_0xdb5c('0x43')](_0x437f41[_0xdb5c('0x44')],{})['then'](function(_0x5f700b){var _0x263bac=_0x437f41[_0xdb5c('0x45')][_0xdb5c('0x24')]({'plain':!![]});if(!_0x263bac)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x263bac[_0xdb5c('0x46')]==='user'){var _0xff5ef=_0x5f700b[_0xdb5c('0x24')]({'plain':!![]});var _0x4f0784=_0xdb5c('0x47');return db[_0xdb5c('0x48')][_0xdb5c('0x42')]({'where':{'name':_0x4f0784,'userProfileId':_0x263bac['userProfileId']},'raw':!![]})['then'](function(_0x13b5f7){if(_0x13b5f7&&_0x13b5f7[_0xdb5c('0x49')]===0x0){return db[_0xdb5c('0x25')]['create']({'name':_0xff5ef[_0xdb5c('0x4a')],'resourceId':_0xff5ef['id'],'type':_0x13b5f7[_0xdb5c('0x4a')],'sectionId':_0x13b5f7['id']},{})[_0xdb5c('0x22')](function(){return _0x5f700b;});}else{return _0x5f700b;}})[_0xdb5c('0x3e')](function(_0x2908dd){logger[_0xdb5c('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2908dd);throw _0x2908dd;});}return _0x5f700b;})['then'](respondWithResult(_0x5ddb08,0xc9))[_0xdb5c('0x3e')](handleError(_0x5ddb08,null));};exports[_0xdb5c('0x21')]=function(_0x264e76,_0x4e325e){if(_0x264e76[_0xdb5c('0x44')]['id']){delete _0x264e76['body']['id'];}return db[_0xdb5c('0x29')][_0xdb5c('0x42')]({'where':{'id':_0x264e76[_0xdb5c('0x4b')]['id']}})[_0xdb5c('0x22')](handleEntityNotFound(_0x4e325e,null))['then'](saveUpdates(_0x264e76[_0xdb5c('0x44')],null))['then'](respondWithResult(_0x4e325e,null))[_0xdb5c('0x3e')](handleError(_0x4e325e,null));};exports[_0xdb5c('0x23')]=function(_0x4cccc7,_0x1c6230){return db[_0xdb5c('0x29')][_0xdb5c('0x42')]({'where':{'id':_0x4cccc7[_0xdb5c('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1c6230,null))[_0xdb5c('0x22')](removeEntity(_0x1c6230,null))['catch'](handleError(_0x1c6230,null));};exports['describe']=function(_0x1374d6,_0x33c48c){return db[_0xdb5c('0x29')]['describe']()[_0xdb5c('0x22')](respondWithResult(_0x33c48c,null))[_0xdb5c('0x3e')](handleError(_0x33c48c,null));};exports[_0xdb5c('0x4c')]=function(_0x3677e1,_0x527f7f,_0x19d676){return db['CmContact'][_0xdb5c('0x42')]({'where':{'id':_0x3677e1[_0xdb5c('0x4b')]['id']}})[_0xdb5c('0x22')](handleEntityNotFound(_0x527f7f,null))[_0xdb5c('0x22')](function(_0x2ec268){if(_0x2ec268){return _0x2ec268[_0xdb5c('0x4c')](_0x3677e1[_0xdb5c('0x44')][_0xdb5c('0x4d')],_[_0xdb5c('0x4e')](_0x3677e1[_0xdb5c('0x44')],[_0xdb5c('0x4d'),'id'])||{});}})['then'](respondWithResult(_0x527f7f,null))['catch'](handleError(_0x527f7f,null));};exports[_0xdb5c('0x4f')]=function(_0x576c95,_0x41139f,_0x25e2f6){var _0x979ac1={};var _0x37d300={};var _0x208723;var _0x22dd48;return db[_0xdb5c('0x29')]['findOne']({'where':{'id':_0x576c95[_0xdb5c('0x4b')]['id']}})[_0xdb5c('0x22')](handleEntityNotFound(_0x41139f,null))[_0xdb5c('0x22')](function(_0x411326){if(_0x411326){_0x208723=_0x411326;_0x37d300[_0xdb5c('0x2a')]=_[_0xdb5c('0x2c')](db['CmContact']['rawAttributes']);_0x37d300['query']=_[_0xdb5c('0x2c')](_0x576c95[_0xdb5c('0x2b')]);_0x37d300[_0xdb5c('0x2d')]=_[_0xdb5c('0x2e')](_0x37d300[_0xdb5c('0x2a')],_0x37d300[_0xdb5c('0x2b')]);_0x979ac1[_0xdb5c('0x30')]=_['intersection'](_0x37d300[_0xdb5c('0x2a')],qs[_0xdb5c('0x2f')](_0x576c95[_0xdb5c('0x2b')][_0xdb5c('0x2f')]));_0x979ac1['attributes']=_0x979ac1['attributes'][_0xdb5c('0x31')]?_0x979ac1[_0xdb5c('0x30')]:_0x37d300['model'];_0x979ac1[_0xdb5c('0x34')]=qs['sort'](_0x576c95[_0xdb5c('0x2b')]['sort']);_0x979ac1['where']=qs[_0xdb5c('0x2d')](_[_0xdb5c('0x36')](_0x576c95[_0xdb5c('0x2b')],_0x37d300[_0xdb5c('0x2d')]));if(_0x576c95[_0xdb5c('0x2b')][_0xdb5c('0x50')]){_0x979ac1[_0xdb5c('0x38')]=_[_0xdb5c('0x37')](_0x979ac1[_0xdb5c('0x38')],{'$or':_[_0xdb5c('0x39')](_0x979ac1[_0xdb5c('0x30')],function(_0x2c6925){var _0x2c5dc3={};_0x2c5dc3[_0x2c6925]={'$like':'%'+_0x576c95[_0xdb5c('0x2b')]['filter']+'%'};return _0x2c5dc3;})});}_0x979ac1=_['merge']({},_0x979ac1,_0x576c95[_0xdb5c('0x41')]);return _0x208723[_0xdb5c('0x4f')](_0x979ac1);}})[_0xdb5c('0x22')](function(_0xdedf97){if(_0xdedf97){_0x22dd48=_0xdedf97[_0xdb5c('0x31')];if(!_0x576c95[_0xdb5c('0x2b')][_0xdb5c('0x32')](_0xdb5c('0x33'))){_0x979ac1[_0xdb5c('0x1b')]=qs['limit'](_0x576c95[_0xdb5c('0x2b')]['limit']);_0x979ac1['offset']=qs[_0xdb5c('0x1a')](_0x576c95[_0xdb5c('0x2b')][_0xdb5c('0x1a')]);}return _0x208723['getContacts'](_0x979ac1);}})['then'](function(_0x5a460c){if(_0x5a460c){return _0x5a460c?{'count':_0x22dd48,'rows':_0x5a460c}:null;}})[_0xdb5c('0x22')](respondWithResult(_0x41139f,null))['catch'](handleError(_0x41139f,null));};