Built motion from commit 25580385.|2.6.2
[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 _0x9846=['name','index','CmCompany','describe','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','options','includeAll','include','rows','catch','params','rawAttributes','length','find','create','user','Companies','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addContacts','CmContact','ids','getContacts','findOne','order','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','undefined','count','limit','set','apply','reject','save','update','then','destroy','get','UserProfileResource','sendStatus'];(function(_0x35cfe6,_0x711217){var _0x1a7191=function(_0x9f0d2f){while(--_0x9f0d2f){_0x35cfe6['push'](_0x35cfe6['shift']());}};_0x1a7191(++_0x711217);}(_0x9846,0x116));var _0x6984=function(_0x5f239f,_0x2fc818){_0x5f239f=_0x5f239f-0x0;var _0x28c610=_0x9846[_0x5f239f];return _0x28c610;};'use strict';var emlformat=require(_0x6984('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6984('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6984('0x2'));var moment=require(_0x6984('0x3'));var BPromise=require(_0x6984('0x4'));var Mustache=require(_0x6984('0x5'));var util=require(_0x6984('0x6'));var path=require('path');var sox=require(_0x6984('0x7'));var csv=require(_0x6984('0x8'));var ejs=require(_0x6984('0x9'));var fs=require('fs');var fs_extra=require(_0x6984('0xa'));var _=require(_0x6984('0xb'));var squel=require('squel');var crypto=require(_0x6984('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x6984('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x6984('0xe'));var Redis=require(_0x6984('0xf'));var authService=require(_0x6984('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6984('0x11'));var logger=require(_0x6984('0x12'))('api');var utils=require(_0x6984('0x13'));var config=require(_0x6984('0x14'));var licenseUtil=require(_0x6984('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x13c1a4,_0x2bf050){_0x2bf050=_0x2bf050||0xcc;return function(_0x1a574b){if(_0x1a574b){return _0x13c1a4['sendStatus'](_0x2bf050);}return _0x13c1a4[_0x6984('0x16')](_0x2bf050)[_0x6984('0x17')]();};}function respondWithResult(_0x3c4210,_0x534cdf){_0x534cdf=_0x534cdf||0xc8;return function(_0x21bcba){if(_0x21bcba){return _0x3c4210[_0x6984('0x16')](_0x534cdf)['json'](_0x21bcba);}};}function respondWithFilteredResult(_0x4d8582,_0x1a8888){return function(_0x3750d2){if(_0x3750d2){var _0x336e6f=typeof _0x1a8888[_0x6984('0x18')]===_0x6984('0x19')&&typeof _0x1a8888['limit']===_0x6984('0x19');var _0x10cc00=_0x3750d2[_0x6984('0x1a')];var _0x4504e5=_0x336e6f?0x0:_0x1a8888[_0x6984('0x18')];var _0x5b8edb=_0x336e6f?_0x3750d2[_0x6984('0x1a')]:_0x1a8888[_0x6984('0x18')]+_0x1a8888[_0x6984('0x1b')];var _0x53fc3e;if(_0x5b8edb>=_0x10cc00){_0x5b8edb=_0x10cc00;_0x53fc3e=0xc8;}else{_0x53fc3e=0xce;}_0x4d8582[_0x6984('0x16')](_0x53fc3e);return _0x4d8582[_0x6984('0x1c')]('Content-Range',_0x4504e5+'-'+_0x5b8edb+'/'+_0x10cc00)['json'](_0x3750d2);}return null;};}function patchUpdates(_0x33f408){return function(_0x3e1481){try{jsonpatch[_0x6984('0x1d')](_0x3e1481,_0x33f408,!![]);}catch(_0x9ce83){return BPromise[_0x6984('0x1e')](_0x9ce83);}return _0x3e1481[_0x6984('0x1f')]();};}function saveUpdates(_0x262714,_0xab1cfc){return function(_0x3a93bb){if(_0x3a93bb){return _0x3a93bb[_0x6984('0x20')](_0x262714)[_0x6984('0x21')](function(_0x186601){return _0x186601;});}return null;};}function removeEntity(_0x5b3ccb,_0x13d71a){return function(_0x356fba){if(_0x356fba){return _0x356fba[_0x6984('0x22')]()[_0x6984('0x21')](function(){var _0x381bf0=_0x356fba[_0x6984('0x23')]({'plain':!![]});var _0x333fbf='Companies';return db[_0x6984('0x24')]['destroy']({'where':{'type':_0x333fbf,'resourceId':_0x381bf0['id']}})['then'](function(){return _0x356fba;});})[_0x6984('0x21')](function(){_0x5b3ccb[_0x6984('0x16')](0xcc)[_0x6984('0x17')]();});}};}function handleEntityNotFound(_0x1d7455,_0x502730){return function(_0x31096b){if(!_0x31096b){_0x1d7455[_0x6984('0x25')](0x194);}return _0x31096b;};}function handleError(_0x240019,_0x4743ed){_0x4743ed=_0x4743ed||0x1f4;return function(_0x54f59a){logger['error'](_0x54f59a['stack']);if(_0x54f59a[_0x6984('0x26')]){delete _0x54f59a[_0x6984('0x26')];}_0x240019[_0x6984('0x16')](_0x4743ed)['send'](_0x54f59a);};}exports[_0x6984('0x27')]=function(_0x503075,_0x3c4ba7){var _0x4c527c={},_0x449a82={},_0x1ce630={'count':0x0,'rows':[]};return db[_0x6984('0x28')][_0x6984('0x29')]()[_0x6984('0x21')](function(_0x2b8419){_0x449a82[_0x6984('0x2a')]=_['keys'](_0x2b8419);_0x449a82[_0x6984('0x2b')]=_[_0x6984('0x2c')](_0x503075[_0x6984('0x2b')]);_0x449a82[_0x6984('0x2d')]=_[_0x6984('0x2e')](_0x449a82[_0x6984('0x2a')],_0x449a82[_0x6984('0x2b')]);_0x4c527c[_0x6984('0x2f')]=_['intersection'](_0x449a82[_0x6984('0x2a')],qs[_0x6984('0x30')](_0x503075['query']['fields']));_0x4c527c['attributes']=_0x4c527c[_0x6984('0x2f')]['length']?_0x4c527c['attributes']:_0x449a82[_0x6984('0x2a')];if(!_0x503075['query'][_0x6984('0x31')](_0x6984('0x32'))){_0x4c527c[_0x6984('0x1b')]=qs[_0x6984('0x1b')](_0x503075[_0x6984('0x2b')][_0x6984('0x1b')]);_0x4c527c[_0x6984('0x18')]=qs[_0x6984('0x18')](_0x503075['query']['offset']);}_0x4c527c['order']=qs['sort'](_0x503075[_0x6984('0x2b')][_0x6984('0x33')]);_0x4c527c[_0x6984('0x34')]=qs[_0x6984('0x2d')](_[_0x6984('0x35')](_0x503075['query'],_0x449a82[_0x6984('0x2d')]),_0x2b8419);if(_0x503075[_0x6984('0x2b')][_0x6984('0x36')]){_0x4c527c[_0x6984('0x34')]=_[_0x6984('0x37')](_0x4c527c[_0x6984('0x34')],{'$or':_[_0x6984('0x38')](_0x4c527c['attributes'],function(_0x531ae2){var _0x659d4f={};_0x659d4f[_0x531ae2]={'$like':'%'+_0x503075[_0x6984('0x2b')][_0x6984('0x36')]+'%'};return _0x659d4f;})});}_0x4c527c=_['merge']({},_0x4c527c,_0x503075[_0x6984('0x39')]);var _0x45dbe5={'where':_0x4c527c[_0x6984('0x34')]};return db[_0x6984('0x28')][_0x6984('0x1a')](_0x45dbe5)[_0x6984('0x21')](function(_0x20f17c){_0x1ce630[_0x6984('0x1a')]=_0x20f17c;if(_0x503075['query'][_0x6984('0x3a')]){_0x4c527c[_0x6984('0x3b')]=[{'all':!![]}];}return db[_0x6984('0x28')]['findAll'](_0x4c527c);})['then'](function(_0x4fa6fe){_0x1ce630[_0x6984('0x3c')]=_0x4fa6fe;return _0x1ce630;})[_0x6984('0x21')](respondWithFilteredResult(_0x3c4ba7,_0x4c527c))[_0x6984('0x3d')](handleError(_0x3c4ba7,null));})[_0x6984('0x3d')](handleError(_0x3c4ba7,null));};exports['show']=function(_0x373ff9,_0x57cf00){var _0x1e1863={'raw':![],'where':{'id':_0x373ff9[_0x6984('0x3e')]['id']}},_0x2dc036={};_0x2dc036[_0x6984('0x2a')]=_[_0x6984('0x2c')](db[_0x6984('0x28')][_0x6984('0x3f')]);_0x2dc036[_0x6984('0x2b')]=_[_0x6984('0x2c')](_0x373ff9[_0x6984('0x2b')]);_0x2dc036['filters']=_[_0x6984('0x2e')](_0x2dc036[_0x6984('0x2a')],_0x2dc036[_0x6984('0x2b')]);_0x1e1863['attributes']=_[_0x6984('0x2e')](_0x2dc036[_0x6984('0x2a')],qs['fields'](_0x373ff9['query']['fields']));_0x1e1863[_0x6984('0x2f')]=_0x1e1863[_0x6984('0x2f')][_0x6984('0x40')]?_0x1e1863['attributes']:_0x2dc036[_0x6984('0x2a')];if(_0x373ff9[_0x6984('0x2b')][_0x6984('0x3a')]){_0x1e1863[_0x6984('0x3b')]=[{'all':!![]}];}_0x1e1863=_[_0x6984('0x37')]({},_0x1e1863,_0x373ff9[_0x6984('0x39')]);return db[_0x6984('0x28')][_0x6984('0x41')](_0x1e1863)['then'](handleEntityNotFound(_0x57cf00,null))['then'](respondWithResult(_0x57cf00,null))[_0x6984('0x3d')](handleError(_0x57cf00,null));};exports[_0x6984('0x42')]=function(_0x191ff1,_0x2b194f){return db[_0x6984('0x28')][_0x6984('0x42')](_0x191ff1['body'],{})[_0x6984('0x21')](function(_0x4e4a75){var _0x3fb992=_0x191ff1[_0x6984('0x43')]['get']({'plain':!![]});if(!_0x3fb992)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3fb992['role']===_0x6984('0x43')){var _0x4e1c7c=_0x4e4a75[_0x6984('0x23')]({'plain':!![]});var _0x1b19d4=_0x6984('0x44');return db['UserProfileSection'][_0x6984('0x41')]({'where':{'name':_0x1b19d4,'userProfileId':_0x3fb992['userProfileId']},'raw':!![]})[_0x6984('0x21')](function(_0x3bfa83){if(_0x3bfa83&&_0x3bfa83[_0x6984('0x45')]===0x0){return db[_0x6984('0x24')][_0x6984('0x42')]({'name':_0x4e1c7c[_0x6984('0x26')],'resourceId':_0x4e1c7c['id'],'type':_0x3bfa83[_0x6984('0x26')],'sectionId':_0x3bfa83['id']},{})[_0x6984('0x21')](function(){return _0x4e4a75;});}else{return _0x4e4a75;}})[_0x6984('0x3d')](function(_0x1a76c0){logger[_0x6984('0x46')](_0x6984('0x47'),_0x1a76c0);throw _0x1a76c0;});}return _0x4e4a75;})['then'](respondWithResult(_0x2b194f,0xc9))[_0x6984('0x3d')](handleError(_0x2b194f,null));};exports[_0x6984('0x20')]=function(_0x5e9e2a,_0x10484f){if(_0x5e9e2a[_0x6984('0x48')]['id']){delete _0x5e9e2a[_0x6984('0x48')]['id'];}return db[_0x6984('0x28')][_0x6984('0x41')]({'where':{'id':_0x5e9e2a['params']['id']}})[_0x6984('0x21')](handleEntityNotFound(_0x10484f,null))['then'](saveUpdates(_0x5e9e2a[_0x6984('0x48')],null))[_0x6984('0x21')](respondWithResult(_0x10484f,null))['catch'](handleError(_0x10484f,null));};exports[_0x6984('0x22')]=function(_0x3670c0,_0x23e9a1){return db[_0x6984('0x28')][_0x6984('0x41')]({'where':{'id':_0x3670c0[_0x6984('0x3e')]['id']}})[_0x6984('0x21')](handleEntityNotFound(_0x23e9a1,null))['then'](removeEntity(_0x23e9a1,null))[_0x6984('0x3d')](handleError(_0x23e9a1,null));};exports['describe']=function(_0x36ac05,_0x145318){return db[_0x6984('0x28')][_0x6984('0x29')]()['then'](respondWithResult(_0x145318,null))[_0x6984('0x3d')](handleError(_0x145318,null));};exports[_0x6984('0x49')]=function(_0xa936d6,_0x303557,_0x41b9ba){return db[_0x6984('0x4a')][_0x6984('0x41')]({'where':{'id':_0xa936d6['params']['id']}})['then'](handleEntityNotFound(_0x303557,null))[_0x6984('0x21')](function(_0x5c9dea){if(_0x5c9dea){return _0x5c9dea[_0x6984('0x49')](_0xa936d6[_0x6984('0x48')][_0x6984('0x4b')],_['omit'](_0xa936d6['body'],[_0x6984('0x4b'),'id'])||{});}})['then'](respondWithResult(_0x303557,null))[_0x6984('0x3d')](handleError(_0x303557,null));};exports[_0x6984('0x4c')]=function(_0xce9088,_0x27fa26,_0xeffff3){var _0x27a446={};var _0x5e8d43={};var _0x1fe564;var _0x43b3e8;return db[_0x6984('0x28')][_0x6984('0x4d')]({'where':{'id':_0xce9088[_0x6984('0x3e')]['id']}})[_0x6984('0x21')](handleEntityNotFound(_0x27fa26,null))[_0x6984('0x21')](function(_0x1c2fb7){if(_0x1c2fb7){_0x1fe564=_0x1c2fb7;_0x5e8d43[_0x6984('0x2a')]=_[_0x6984('0x2c')](db['CmContact'][_0x6984('0x3f')]);_0x5e8d43['query']=_[_0x6984('0x2c')](_0xce9088[_0x6984('0x2b')]);_0x5e8d43[_0x6984('0x2d')]=_[_0x6984('0x2e')](_0x5e8d43[_0x6984('0x2a')],_0x5e8d43['query']);_0x27a446[_0x6984('0x2f')]=_[_0x6984('0x2e')](_0x5e8d43[_0x6984('0x2a')],qs[_0x6984('0x30')](_0xce9088[_0x6984('0x2b')][_0x6984('0x30')]));_0x27a446['attributes']=_0x27a446['attributes'][_0x6984('0x40')]?_0x27a446[_0x6984('0x2f')]:_0x5e8d43['model'];_0x27a446[_0x6984('0x4e')]=qs['sort'](_0xce9088[_0x6984('0x2b')]['sort']);_0x27a446[_0x6984('0x34')]=qs['filters'](_['pick'](_0xce9088[_0x6984('0x2b')],_0x5e8d43['filters']));if(_0xce9088[_0x6984('0x2b')][_0x6984('0x36')]){_0x27a446[_0x6984('0x34')]=_[_0x6984('0x37')](_0x27a446['where'],{'$or':_[_0x6984('0x38')](_0x27a446['attributes'],function(_0x73c89b){var _0x23b619={};_0x23b619[_0x73c89b]={'$like':'%'+_0xce9088['query'][_0x6984('0x36')]+'%'};return _0x23b619;})});}_0x27a446=_[_0x6984('0x37')]({},_0x27a446,_0xce9088[_0x6984('0x39')]);return _0x1fe564[_0x6984('0x4c')](_0x27a446);}})[_0x6984('0x21')](function(_0x5212d9){if(_0x5212d9){_0x43b3e8=_0x5212d9[_0x6984('0x40')];if(!_0xce9088[_0x6984('0x2b')]['hasOwnProperty'](_0x6984('0x32'))){_0x27a446['limit']=qs['limit'](_0xce9088[_0x6984('0x2b')][_0x6984('0x1b')]);_0x27a446['offset']=qs[_0x6984('0x18')](_0xce9088['query'][_0x6984('0x18')]);}return _0x1fe564[_0x6984('0x4c')](_0x27a446);}})[_0x6984('0x21')](function(_0x561005){if(_0x561005){return _0x561005?{'count':_0x43b3e8,'rows':_0x561005}:null;}})[_0x6984('0x21')](respondWithResult(_0x27fa26,null))[_0x6984('0x3d')](handleError(_0x27fa26,null));};