b057dd066d0e1919691a48a23f386b45d46aa736
[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 _0xa97f=['merge','map','includeAll','include','findAll','rows','catch','params','rawAttributes','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','error','addContacts','CmContact','ids','getContacts','findOne','options','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','reject','update','then','destroy','get','Companies','UserProfileResource','name','send','index','CmCompany','describe','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where'];(function(_0x3358ba,_0x24c5fc){var _0x296e73=function(_0x843ff3){while(--_0x843ff3){_0x3358ba['push'](_0x3358ba['shift']());}};_0x296e73(++_0x24c5fc);}(_0xa97f,0x6d));var _0xfa97=function(_0x212fe8,_0x3edb40){_0x212fe8=_0x212fe8-0x0;var _0x42bac3=_0xa97f[_0x212fe8];return _0x42bac3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xfa97('0x0'));var rimraf=require(_0xfa97('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfa97('0x2'));var rp=require(_0xfa97('0x3'));var moment=require(_0xfa97('0x4'));var BPromise=require(_0xfa97('0x5'));var Mustache=require(_0xfa97('0x6'));var util=require(_0xfa97('0x7'));var path=require(_0xfa97('0x8'));var sox=require(_0xfa97('0x9'));var csv=require('to-csv');var ejs=require(_0xfa97('0xa'));var fs=require('fs');var _=require(_0xfa97('0xb'));var squel=require(_0xfa97('0xc'));var crypto=require('crypto');var jsforce=require(_0xfa97('0xd'));var deskjs=require(_0xfa97('0xe'));var toCsv=require('to-csv');var querystring=require(_0xfa97('0xf'));var Papa=require(_0xfa97('0x10'));var Redis=require(_0xfa97('0x11'));var authService=require(_0xfa97('0x12'));var qs=require(_0xfa97('0x13'));var as=require(_0xfa97('0x14'));var hardwareService=require(_0xfa97('0x15'));var logger=require(_0xfa97('0x16'))(_0xfa97('0x17'));var utils=require(_0xfa97('0x18'));var config=require(_0xfa97('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xfa97('0x1a'))['db'];function respondWithStatusCode(_0x54d9fa,_0x5221f9){_0x5221f9=_0x5221f9||0xcc;return function(_0x4caa80){if(_0x4caa80){return _0x54d9fa[_0xfa97('0x1b')](_0x5221f9);}return _0x54d9fa[_0xfa97('0x1c')](_0x5221f9)[_0xfa97('0x1d')]();};}function respondWithResult(_0x419807,_0x20cee2){_0x20cee2=_0x20cee2||0xc8;return function(_0x79dd4d){if(_0x79dd4d){return _0x419807[_0xfa97('0x1c')](_0x20cee2)['json'](_0x79dd4d);}};}function respondWithFilteredResult(_0x5392d3,_0x16c8c8){return function(_0x2c0a63){if(_0x2c0a63){var _0x47c7db=_0x2c0a63[_0xfa97('0x1e')],_0x27a39e=_0x16c8c8[_0xfa97('0x1f')],_0x450328=_0x16c8c8[_0xfa97('0x1f')]+_0x16c8c8[_0xfa97('0x20')],_0x4b2eb7;if(_0x450328>=_0x47c7db){_0x450328=_0x47c7db;_0x4b2eb7=0xc8;}else{_0x4b2eb7=0xce;}_0x5392d3['status'](_0x4b2eb7);return _0x5392d3[_0xfa97('0x21')](_0xfa97('0x22'),_0x27a39e+'-'+_0x450328+'/'+_0x47c7db)[_0xfa97('0x23')](_0x2c0a63);}return null;};}function patchUpdates(_0x530e34){return function(_0x45b773){try{jsonpatch['apply'](_0x45b773,_0x530e34,!![]);}catch(_0x5eb490){return BPromise[_0xfa97('0x24')](_0x5eb490);}return _0x45b773['save']();};}function saveUpdates(_0x20848c,_0x4d84a6){return function(_0x2687b0){if(_0x2687b0){return _0x2687b0[_0xfa97('0x25')](_0x20848c)[_0xfa97('0x26')](function(_0x2376be){return _0x2376be;});}return null;};}function removeEntity(_0x1a5a83,_0x48e3de){return function(_0x213609){if(_0x213609){return _0x213609[_0xfa97('0x27')]()[_0xfa97('0x26')](function(){var _0x3f601a=_0x213609[_0xfa97('0x28')]({'plain':!![]});var _0x2b4a13=_0xfa97('0x29');return db[_0xfa97('0x2a')][_0xfa97('0x27')]({'where':{'type':_0x2b4a13,'resourceId':_0x3f601a['id']}})[_0xfa97('0x26')](function(){return _0x213609;});})[_0xfa97('0x26')](function(){_0x1a5a83[_0xfa97('0x1c')](0xcc)[_0xfa97('0x1d')]();});}};}function handleEntityNotFound(_0x4534c7,_0x784950){return function(_0x363a65){if(!_0x363a65){_0x4534c7['sendStatus'](0x194);}return _0x363a65;};}function handleError(_0x53d4e0,_0x1b60f8){_0x1b60f8=_0x1b60f8||0x1f4;return function(_0x360d2a){logger['error'](_0x360d2a['stack']);if(_0x360d2a[_0xfa97('0x2b')]){delete _0x360d2a[_0xfa97('0x2b')];}_0x53d4e0['status'](_0x1b60f8)[_0xfa97('0x2c')](_0x360d2a);};}exports[_0xfa97('0x2d')]=function(_0x1e8f92,_0xf0d04a){var _0x49cc49={},_0x366493={},_0x6c5b23={'count':0x0,'rows':[]};return db[_0xfa97('0x2e')][_0xfa97('0x2f')]()[_0xfa97('0x26')](function(_0x39da0a){_0x366493[_0xfa97('0x30')]=_[_0xfa97('0x31')](_0x39da0a);_0x366493[_0xfa97('0x32')]=_[_0xfa97('0x31')](_0x1e8f92[_0xfa97('0x32')]);_0x366493['filters']=_[_0xfa97('0x33')](_0x366493[_0xfa97('0x30')],_0x366493[_0xfa97('0x32')]);_0x49cc49[_0xfa97('0x34')]=_[_0xfa97('0x33')](_0x366493[_0xfa97('0x30')],qs[_0xfa97('0x35')](_0x1e8f92[_0xfa97('0x32')]['fields']));_0x49cc49[_0xfa97('0x34')]=_0x49cc49['attributes'][_0xfa97('0x36')]?_0x49cc49[_0xfa97('0x34')]:_0x366493[_0xfa97('0x30')];if(!_0x1e8f92[_0xfa97('0x32')][_0xfa97('0x37')](_0xfa97('0x38'))){_0x49cc49[_0xfa97('0x20')]=qs['limit'](_0x1e8f92[_0xfa97('0x32')][_0xfa97('0x20')]);_0x49cc49['offset']=qs[_0xfa97('0x1f')](_0x1e8f92[_0xfa97('0x32')]['offset']);}_0x49cc49[_0xfa97('0x39')]=qs['sort'](_0x1e8f92[_0xfa97('0x32')][_0xfa97('0x3a')]);_0x49cc49['where']=qs[_0xfa97('0x3b')](_[_0xfa97('0x3c')](_0x1e8f92[_0xfa97('0x32')],_0x366493[_0xfa97('0x3b')]),_0x39da0a);if(_0x1e8f92[_0xfa97('0x32')][_0xfa97('0x3d')]){_0x49cc49[_0xfa97('0x3e')]=_[_0xfa97('0x3f')](_0x49cc49['where'],{'$or':_[_0xfa97('0x40')](_0x49cc49[_0xfa97('0x34')],function(_0x392852){var _0x2ad95c={};_0x2ad95c[_0x392852]={'$like':'%'+_0x1e8f92[_0xfa97('0x32')][_0xfa97('0x3d')]+'%'};return _0x2ad95c;})});}_0x49cc49=_['merge']({},_0x49cc49,_0x1e8f92['options']);var _0xe0fc44={'where':_0x49cc49['where']};return db[_0xfa97('0x2e')][_0xfa97('0x1e')](_0xe0fc44)['then'](function(_0x4c3ddb){_0x6c5b23[_0xfa97('0x1e')]=_0x4c3ddb;if(_0x1e8f92[_0xfa97('0x32')][_0xfa97('0x41')]){_0x49cc49[_0xfa97('0x42')]=[{'all':!![]}];}return db['CmCompany'][_0xfa97('0x43')](_0x49cc49);})['then'](function(_0x4a2d54){_0x6c5b23[_0xfa97('0x44')]=_0x4a2d54;return _0x6c5b23;})[_0xfa97('0x26')](respondWithFilteredResult(_0xf0d04a,_0x49cc49))[_0xfa97('0x45')](handleError(_0xf0d04a,null));})['catch'](handleError(_0xf0d04a,null));};exports['show']=function(_0x1a52fb,_0x36f41e){var _0x55b16b={'raw':![],'where':{'id':_0x1a52fb[_0xfa97('0x46')]['id']}},_0x302c42={};_0x302c42[_0xfa97('0x30')]=_[_0xfa97('0x31')](db[_0xfa97('0x2e')][_0xfa97('0x47')]);_0x302c42[_0xfa97('0x32')]=_[_0xfa97('0x31')](_0x1a52fb['query']);_0x302c42[_0xfa97('0x3b')]=_[_0xfa97('0x33')](_0x302c42[_0xfa97('0x30')],_0x302c42[_0xfa97('0x32')]);_0x55b16b['attributes']=_[_0xfa97('0x33')](_0x302c42[_0xfa97('0x30')],qs[_0xfa97('0x35')](_0x1a52fb[_0xfa97('0x32')]['fields']));_0x55b16b[_0xfa97('0x34')]=_0x55b16b[_0xfa97('0x34')][_0xfa97('0x36')]?_0x55b16b[_0xfa97('0x34')]:_0x302c42['model'];if(_0x1a52fb[_0xfa97('0x32')][_0xfa97('0x41')]){_0x55b16b['include']=[{'all':!![]}];}_0x55b16b=_[_0xfa97('0x3f')]({},_0x55b16b,_0x1a52fb['options']);return db[_0xfa97('0x2e')]['find'](_0x55b16b)[_0xfa97('0x26')](handleEntityNotFound(_0x36f41e,null))[_0xfa97('0x26')](respondWithResult(_0x36f41e,null))[_0xfa97('0x45')](handleError(_0x36f41e,null));};exports['create']=function(_0x591fdf,_0x185f39){return db[_0xfa97('0x2e')][_0xfa97('0x48')](_0x591fdf[_0xfa97('0x49')],{})['then'](function(_0x465900){var _0x2ed925=_0x591fdf[_0xfa97('0x4a')]['get']({'plain':!![]});if(!_0x2ed925)throw new Error(_0xfa97('0x4b'));if(_0x2ed925['role']===_0xfa97('0x4a')){var _0x4ca1e4=_0x465900[_0xfa97('0x28')]({'plain':!![]});var _0x1bef5f=_0xfa97('0x29');return db[_0xfa97('0x4c')][_0xfa97('0x4d')]({'where':{'name':_0x1bef5f,'userProfileId':_0x2ed925[_0xfa97('0x4e')]},'raw':!![]})[_0xfa97('0x26')](function(_0x52ce51){if(_0x52ce51&&_0x52ce51['autoAssociation']===0x0){return db[_0xfa97('0x2a')]['create']({'name':_0x4ca1e4['name'],'resourceId':_0x4ca1e4['id'],'type':_0x52ce51[_0xfa97('0x2b')],'sectionId':_0x52ce51['id']},{})[_0xfa97('0x26')](function(){return _0x465900;});}else{return _0x465900;}})[_0xfa97('0x45')](function(_0x3adc3d){logger[_0xfa97('0x4f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3adc3d);throw _0x3adc3d;});}return _0x465900;})[_0xfa97('0x26')](respondWithResult(_0x185f39,0xc9))['catch'](handleError(_0x185f39,null));};exports[_0xfa97('0x25')]=function(_0x148527,_0xb706b1){if(_0x148527[_0xfa97('0x49')]['id']){delete _0x148527['body']['id'];}return db['CmCompany'][_0xfa97('0x4d')]({'where':{'id':_0x148527[_0xfa97('0x46')]['id']}})[_0xfa97('0x26')](handleEntityNotFound(_0xb706b1,null))[_0xfa97('0x26')](saveUpdates(_0x148527[_0xfa97('0x49')],null))['then'](respondWithResult(_0xb706b1,null))[_0xfa97('0x45')](handleError(_0xb706b1,null));};exports[_0xfa97('0x27')]=function(_0x1e3b80,_0x4209e7){return db[_0xfa97('0x2e')]['find']({'where':{'id':_0x1e3b80[_0xfa97('0x46')]['id']}})[_0xfa97('0x26')](handleEntityNotFound(_0x4209e7,null))['then'](removeEntity(_0x4209e7,null))[_0xfa97('0x45')](handleError(_0x4209e7,null));};exports['describe']=function(_0x541a4a,_0x4cda04){return db['CmCompany'][_0xfa97('0x2f')]()['then'](respondWithResult(_0x4cda04,null))[_0xfa97('0x45')](handleError(_0x4cda04,null));};exports[_0xfa97('0x50')]=function(_0x584fd2,_0x109bf3,_0x399a1c){return db[_0xfa97('0x51')][_0xfa97('0x4d')]({'where':{'id':_0x584fd2[_0xfa97('0x46')]['id']}})[_0xfa97('0x26')](handleEntityNotFound(_0x109bf3,null))[_0xfa97('0x26')](function(_0x5c55fc){if(_0x5c55fc){return _0x5c55fc[_0xfa97('0x50')](_0x584fd2[_0xfa97('0x49')][_0xfa97('0x52')],_['omit'](_0x584fd2[_0xfa97('0x49')],[_0xfa97('0x52'),'id'])||{});}})['then'](respondWithResult(_0x109bf3,null))[_0xfa97('0x45')](handleError(_0x109bf3,null));};exports[_0xfa97('0x53')]=function(_0x33a5d5,_0x3424b1,_0x55c7d4){var _0x5113ec={};var _0xef5307={};var _0x52f300;var _0x473f63;return db[_0xfa97('0x2e')][_0xfa97('0x54')]({'where':{'id':_0x33a5d5['params']['id']}})[_0xfa97('0x26')](handleEntityNotFound(_0x3424b1,null))[_0xfa97('0x26')](function(_0x2fa348){if(_0x2fa348){_0x52f300=_0x2fa348;_0xef5307[_0xfa97('0x30')]=_[_0xfa97('0x31')](db[_0xfa97('0x51')][_0xfa97('0x47')]);_0xef5307[_0xfa97('0x32')]=_[_0xfa97('0x31')](_0x33a5d5[_0xfa97('0x32')]);_0xef5307['filters']=_['intersection'](_0xef5307[_0xfa97('0x30')],_0xef5307[_0xfa97('0x32')]);_0x5113ec[_0xfa97('0x34')]=_['intersection'](_0xef5307[_0xfa97('0x30')],qs[_0xfa97('0x35')](_0x33a5d5[_0xfa97('0x32')][_0xfa97('0x35')]));_0x5113ec[_0xfa97('0x34')]=_0x5113ec[_0xfa97('0x34')]['length']?_0x5113ec[_0xfa97('0x34')]:_0xef5307[_0xfa97('0x30')];_0x5113ec[_0xfa97('0x39')]=qs['sort'](_0x33a5d5['query'][_0xfa97('0x3a')]);_0x5113ec['where']=qs[_0xfa97('0x3b')](_[_0xfa97('0x3c')](_0x33a5d5[_0xfa97('0x32')],_0xef5307[_0xfa97('0x3b')]));if(_0x33a5d5[_0xfa97('0x32')][_0xfa97('0x3d')]){_0x5113ec[_0xfa97('0x3e')]=_[_0xfa97('0x3f')](_0x5113ec[_0xfa97('0x3e')],{'$or':_[_0xfa97('0x40')](_0x5113ec[_0xfa97('0x34')],function(_0x10ffcd){var _0xbe2621={};_0xbe2621[_0x10ffcd]={'$like':'%'+_0x33a5d5[_0xfa97('0x32')][_0xfa97('0x3d')]+'%'};return _0xbe2621;})});}_0x5113ec=_[_0xfa97('0x3f')]({},_0x5113ec,_0x33a5d5[_0xfa97('0x55')]);return _0x52f300[_0xfa97('0x53')](_0x5113ec);}})[_0xfa97('0x26')](function(_0x145b6d){if(_0x145b6d){_0x473f63=_0x145b6d[_0xfa97('0x36')];if(!_0x33a5d5[_0xfa97('0x32')][_0xfa97('0x37')]('nolimit')){_0x5113ec[_0xfa97('0x20')]=qs['limit'](_0x33a5d5['query']['limit']);_0x5113ec[_0xfa97('0x1f')]=qs[_0xfa97('0x1f')](_0x33a5d5[_0xfa97('0x32')][_0xfa97('0x1f')]);}return _0x52f300['getContacts'](_0x5113ec);}})[_0xfa97('0x26')](function(_0x147a47){if(_0x147a47){return _0x147a47?{'count':_0x473f63,'rows':_0x147a47}:null;}})[_0xfa97('0x26')](respondWithResult(_0x3424b1,null))[_0xfa97('0x45')](handleError(_0x3424b1,null));};