Built motion from commit d1eab355.|2.6.28
[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 _0x2929=['update','addContacts','CmContact','ids','getContacts','eml-format','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','apply','reject','then','destroy','error','stack','name','send','describe','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','map','CmCompany','includeAll','include','findAll','rows','show','params','rawAttributes','options','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Companies','UserProfileSection','find','autoAssociation','catch'];(function(_0x3e32a8,_0x255953){var _0x2997b0=function(_0x2d564a){while(--_0x2d564a){_0x3e32a8['push'](_0x3e32a8['shift']());}};_0x2997b0(++_0x255953);}(_0x2929,0x1ae));var _0x9292=function(_0x41db2b,_0x325654){_0x41db2b=_0x41db2b-0x0;var _0x47d6c2=_0x2929[_0x41db2b];return _0x47d6c2;};'use strict';var emlformat=require(_0x9292('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9292('0x1'));var moment=require('moment');var BPromise=require(_0x9292('0x2'));var Mustache=require(_0x9292('0x3'));var util=require(_0x9292('0x4'));var path=require(_0x9292('0x5'));var sox=require(_0x9292('0x6'));var csv=require(_0x9292('0x7'));var ejs=require(_0x9292('0x8'));var fs=require('fs');var fs_extra=require(_0x9292('0x9'));var _=require(_0x9292('0xa'));var squel=require(_0x9292('0xb'));var crypto=require(_0x9292('0xc'));var jsforce=require(_0x9292('0xd'));var deskjs=require(_0x9292('0xe'));var toCsv=require(_0x9292('0x7'));var querystring=require(_0x9292('0xf'));var Papa=require(_0x9292('0x10'));var Redis=require(_0x9292('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x9292('0x12'));var hardwareService=require(_0x9292('0x13'));var logger=require('../../config/logger')(_0x9292('0x14'));var utils=require('../../config/utils');var config=require(_0x9292('0x15'));var licenseUtil=require(_0x9292('0x16'));var db=require(_0x9292('0x17'))['db'];function respondWithStatusCode(_0x429f95,_0x443afb){_0x443afb=_0x443afb||0xcc;return function(_0x50711d){if(_0x50711d){return _0x429f95[_0x9292('0x18')](_0x443afb);}return _0x429f95[_0x9292('0x19')](_0x443afb)[_0x9292('0x1a')]();};}function respondWithResult(_0x56447e,_0x158b6f){_0x158b6f=_0x158b6f||0xc8;return function(_0x47ae49){if(_0x47ae49){return _0x56447e[_0x9292('0x19')](_0x158b6f)['json'](_0x47ae49);}};}function respondWithFilteredResult(_0x1e80c5,_0xf3f6d6){return function(_0x5d1ace){if(_0x5d1ace){var _0x66338b=typeof _0xf3f6d6[_0x9292('0x1b')]==='undefined'&&typeof _0xf3f6d6['limit']===_0x9292('0x1c');var _0x790056=_0x5d1ace[_0x9292('0x1d')];var _0x58298b=_0x66338b?0x0:_0xf3f6d6[_0x9292('0x1b')];var _0x382051=_0x66338b?_0x5d1ace[_0x9292('0x1d')]:_0xf3f6d6[_0x9292('0x1b')]+_0xf3f6d6['limit'];var _0x4c8c1f;if(_0x382051>=_0x790056){_0x382051=_0x790056;_0x4c8c1f=0xc8;}else{_0x4c8c1f=0xce;}_0x1e80c5[_0x9292('0x19')](_0x4c8c1f);return _0x1e80c5[_0x9292('0x1e')](_0x9292('0x1f'),_0x58298b+'-'+_0x382051+'/'+_0x790056)[_0x9292('0x20')](_0x5d1ace);}return null;};}function patchUpdates(_0x557c12){return function(_0x29f7f4){try{jsonpatch[_0x9292('0x21')](_0x29f7f4,_0x557c12,!![]);}catch(_0x24a5a9){return BPromise[_0x9292('0x22')](_0x24a5a9);}return _0x29f7f4['save']();};}function saveUpdates(_0x92eb98,_0x9964aa){return function(_0x2b2241){if(_0x2b2241){return _0x2b2241['update'](_0x92eb98)[_0x9292('0x23')](function(_0x5dd55b){return _0x5dd55b;});}return null;};}function removeEntity(_0x2f36d4,_0x29a3bd){return function(_0x3141e5){if(_0x3141e5){return _0x3141e5[_0x9292('0x24')]()[_0x9292('0x23')](function(){var _0x4e280e=_0x3141e5['get']({'plain':!![]});var _0x59ce1c='Companies';return db['UserProfileResource'][_0x9292('0x24')]({'where':{'type':_0x59ce1c,'resourceId':_0x4e280e['id']}})['then'](function(){return _0x3141e5;});})[_0x9292('0x23')](function(){_0x2f36d4[_0x9292('0x19')](0xcc)[_0x9292('0x1a')]();});}};}function handleEntityNotFound(_0x2d0edb,_0x46d8da){return function(_0x3f5888){if(!_0x3f5888){_0x2d0edb[_0x9292('0x18')](0x194);}return _0x3f5888;};}function handleError(_0x28b664,_0x15d790){_0x15d790=_0x15d790||0x1f4;return function(_0x549c36){logger[_0x9292('0x25')](_0x549c36[_0x9292('0x26')]);if(_0x549c36[_0x9292('0x27')]){delete _0x549c36['name'];}_0x28b664[_0x9292('0x19')](_0x15d790)[_0x9292('0x28')](_0x549c36);};}exports['index']=function(_0x2b9aca,_0xa973ec){var _0x210f3d={},_0x6ed82e={},_0x2f6577={'count':0x0,'rows':[]};return db['CmCompany'][_0x9292('0x29')]()[_0x9292('0x23')](function(_0xa21d4b){_0x6ed82e[_0x9292('0x2a')]=_['keys'](_0xa21d4b);_0x6ed82e[_0x9292('0x2b')]=_[_0x9292('0x2c')](_0x2b9aca[_0x9292('0x2b')]);_0x6ed82e[_0x9292('0x2d')]=_[_0x9292('0x2e')](_0x6ed82e[_0x9292('0x2a')],_0x6ed82e['query']);_0x210f3d[_0x9292('0x2f')]=_[_0x9292('0x2e')](_0x6ed82e[_0x9292('0x2a')],qs[_0x9292('0x30')](_0x2b9aca[_0x9292('0x2b')][_0x9292('0x30')]));_0x210f3d[_0x9292('0x2f')]=_0x210f3d[_0x9292('0x2f')][_0x9292('0x31')]?_0x210f3d[_0x9292('0x2f')]:_0x6ed82e['model'];if(!_0x2b9aca[_0x9292('0x2b')][_0x9292('0x32')](_0x9292('0x33'))){_0x210f3d['limit']=qs[_0x9292('0x34')](_0x2b9aca[_0x9292('0x2b')][_0x9292('0x34')]);_0x210f3d['offset']=qs[_0x9292('0x1b')](_0x2b9aca['query'][_0x9292('0x1b')]);}_0x210f3d[_0x9292('0x35')]=qs[_0x9292('0x36')](_0x2b9aca[_0x9292('0x2b')][_0x9292('0x36')]);_0x210f3d['where']=qs['filters'](_[_0x9292('0x37')](_0x2b9aca[_0x9292('0x2b')],_0x6ed82e[_0x9292('0x2d')]),_0xa21d4b);if(_0x2b9aca[_0x9292('0x2b')][_0x9292('0x38')]){_0x210f3d[_0x9292('0x39')]=_[_0x9292('0x3a')](_0x210f3d[_0x9292('0x39')],{'$or':_[_0x9292('0x3b')](_0x210f3d[_0x9292('0x2f')],function(_0x10eebd){var _0x2be119={};_0x2be119[_0x10eebd]={'$like':'%'+_0x2b9aca[_0x9292('0x2b')][_0x9292('0x38')]+'%'};return _0x2be119;})});}_0x210f3d=_[_0x9292('0x3a')]({},_0x210f3d,_0x2b9aca['options']);var _0x40730b={'where':_0x210f3d[_0x9292('0x39')]};return db[_0x9292('0x3c')]['count'](_0x40730b)[_0x9292('0x23')](function(_0x3e3507){_0x2f6577[_0x9292('0x1d')]=_0x3e3507;if(_0x2b9aca['query'][_0x9292('0x3d')]){_0x210f3d[_0x9292('0x3e')]=[{'all':!![]}];}return db[_0x9292('0x3c')][_0x9292('0x3f')](_0x210f3d);})['then'](function(_0x5b68bf){_0x2f6577[_0x9292('0x40')]=_0x5b68bf;return _0x2f6577;})[_0x9292('0x23')](respondWithFilteredResult(_0xa973ec,_0x210f3d))['catch'](handleError(_0xa973ec,null));})['catch'](handleError(_0xa973ec,null));};exports[_0x9292('0x41')]=function(_0x4d71a6,_0x5538ed){var _0x1ac14e={'raw':![],'where':{'id':_0x4d71a6[_0x9292('0x42')]['id']}},_0x577c20={};_0x577c20[_0x9292('0x2a')]=_['keys'](db[_0x9292('0x3c')][_0x9292('0x43')]);_0x577c20[_0x9292('0x2b')]=_[_0x9292('0x2c')](_0x4d71a6[_0x9292('0x2b')]);_0x577c20[_0x9292('0x2d')]=_[_0x9292('0x2e')](_0x577c20[_0x9292('0x2a')],_0x577c20[_0x9292('0x2b')]);_0x1ac14e[_0x9292('0x2f')]=_['intersection'](_0x577c20[_0x9292('0x2a')],qs['fields'](_0x4d71a6[_0x9292('0x2b')][_0x9292('0x30')]));_0x1ac14e[_0x9292('0x2f')]=_0x1ac14e[_0x9292('0x2f')]['length']?_0x1ac14e[_0x9292('0x2f')]:_0x577c20[_0x9292('0x2a')];if(_0x4d71a6[_0x9292('0x2b')][_0x9292('0x3d')]){_0x1ac14e[_0x9292('0x3e')]=[{'all':!![]}];}_0x1ac14e=_[_0x9292('0x3a')]({},_0x1ac14e,_0x4d71a6[_0x9292('0x44')]);return db[_0x9292('0x3c')]['find'](_0x1ac14e)[_0x9292('0x23')](handleEntityNotFound(_0x5538ed,null))[_0x9292('0x23')](respondWithResult(_0x5538ed,null))['catch'](handleError(_0x5538ed,null));};exports['create']=function(_0x6d8329,_0x5e49bd){return db[_0x9292('0x3c')][_0x9292('0x45')](_0x6d8329[_0x9292('0x46')],{})[_0x9292('0x23')](function(_0x560a39){var _0x3b88b9=_0x6d8329[_0x9292('0x47')][_0x9292('0x48')]({'plain':!![]});if(!_0x3b88b9)throw new Error(_0x9292('0x49'));if(_0x3b88b9[_0x9292('0x4a')]===_0x9292('0x47')){var _0x2e3ad6=_0x560a39['get']({'plain':!![]});var _0x385a57=_0x9292('0x4b');return db[_0x9292('0x4c')][_0x9292('0x4d')]({'where':{'name':_0x385a57,'userProfileId':_0x3b88b9['userProfileId']},'raw':!![]})[_0x9292('0x23')](function(_0xea738a){if(_0xea738a&&_0xea738a[_0x9292('0x4e')]===0x0){return db['UserProfileResource'][_0x9292('0x45')]({'name':_0x2e3ad6[_0x9292('0x27')],'resourceId':_0x2e3ad6['id'],'type':_0xea738a[_0x9292('0x27')],'sectionId':_0xea738a['id']},{})['then'](function(){return _0x560a39;});}else{return _0x560a39;}})[_0x9292('0x4f')](function(_0x4a7a95){logger[_0x9292('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4a7a95);throw _0x4a7a95;});}return _0x560a39;})[_0x9292('0x23')](respondWithResult(_0x5e49bd,0xc9))[_0x9292('0x4f')](handleError(_0x5e49bd,null));};exports[_0x9292('0x50')]=function(_0x27e4ee,_0x2b3a9e){if(_0x27e4ee[_0x9292('0x46')]['id']){delete _0x27e4ee[_0x9292('0x46')]['id'];}return db['CmCompany'][_0x9292('0x4d')]({'where':{'id':_0x27e4ee['params']['id']}})[_0x9292('0x23')](handleEntityNotFound(_0x2b3a9e,null))[_0x9292('0x23')](saveUpdates(_0x27e4ee[_0x9292('0x46')],null))['then'](respondWithResult(_0x2b3a9e,null))['catch'](handleError(_0x2b3a9e,null));};exports['destroy']=function(_0x43dc88,_0x746f6d){return db[_0x9292('0x3c')]['find']({'where':{'id':_0x43dc88[_0x9292('0x42')]['id']}})[_0x9292('0x23')](handleEntityNotFound(_0x746f6d,null))[_0x9292('0x23')](removeEntity(_0x746f6d,null))[_0x9292('0x4f')](handleError(_0x746f6d,null));};exports['describe']=function(_0x224b8c,_0x6361d7){return db['CmCompany'][_0x9292('0x29')]()[_0x9292('0x23')](respondWithResult(_0x6361d7,null))[_0x9292('0x4f')](handleError(_0x6361d7,null));};exports[_0x9292('0x51')]=function(_0x373751,_0x5655c7,_0x4be51e){return db[_0x9292('0x52')][_0x9292('0x4d')]({'where':{'id':_0x373751[_0x9292('0x42')]['id']}})[_0x9292('0x23')](handleEntityNotFound(_0x5655c7,null))[_0x9292('0x23')](function(_0x183307){if(_0x183307){return _0x183307[_0x9292('0x51')](_0x373751[_0x9292('0x46')][_0x9292('0x53')],_['omit'](_0x373751['body'],[_0x9292('0x53'),'id'])||{});}})['then'](respondWithResult(_0x5655c7,null))[_0x9292('0x4f')](handleError(_0x5655c7,null));};exports['getContacts']=function(_0x5a48e8,_0x2ce85e,_0x15627c){var _0x33d55b={};var _0x322f12={};var _0x38b7b8;var _0x2d4de2;return db['CmCompany']['findOne']({'where':{'id':_0x5a48e8[_0x9292('0x42')]['id']}})['then'](handleEntityNotFound(_0x2ce85e,null))[_0x9292('0x23')](function(_0x33cfef){if(_0x33cfef){_0x38b7b8=_0x33cfef;_0x322f12[_0x9292('0x2a')]=_['keys'](db['CmContact']['rawAttributes']);_0x322f12[_0x9292('0x2b')]=_[_0x9292('0x2c')](_0x5a48e8['query']);_0x322f12[_0x9292('0x2d')]=_['intersection'](_0x322f12[_0x9292('0x2a')],_0x322f12[_0x9292('0x2b')]);_0x33d55b[_0x9292('0x2f')]=_[_0x9292('0x2e')](_0x322f12[_0x9292('0x2a')],qs['fields'](_0x5a48e8[_0x9292('0x2b')][_0x9292('0x30')]));_0x33d55b[_0x9292('0x2f')]=_0x33d55b[_0x9292('0x2f')][_0x9292('0x31')]?_0x33d55b['attributes']:_0x322f12['model'];_0x33d55b[_0x9292('0x35')]=qs[_0x9292('0x36')](_0x5a48e8[_0x9292('0x2b')][_0x9292('0x36')]);_0x33d55b['where']=qs['filters'](_['pick'](_0x5a48e8[_0x9292('0x2b')],_0x322f12[_0x9292('0x2d')]));if(_0x5a48e8[_0x9292('0x2b')][_0x9292('0x38')]){_0x33d55b[_0x9292('0x39')]=_['merge'](_0x33d55b['where'],{'$or':_[_0x9292('0x3b')](_0x33d55b[_0x9292('0x2f')],function(_0x123301){var _0x346d45={};_0x346d45[_0x123301]={'$like':'%'+_0x5a48e8[_0x9292('0x2b')]['filter']+'%'};return _0x346d45;})});}_0x33d55b=_[_0x9292('0x3a')]({},_0x33d55b,_0x5a48e8['options']);return _0x38b7b8['getContacts'](_0x33d55b);}})[_0x9292('0x23')](function(_0x41c4e4){if(_0x41c4e4){_0x2d4de2=_0x41c4e4[_0x9292('0x31')];if(!_0x5a48e8[_0x9292('0x2b')]['hasOwnProperty'](_0x9292('0x33'))){_0x33d55b[_0x9292('0x34')]=qs[_0x9292('0x34')](_0x5a48e8['query'][_0x9292('0x34')]);_0x33d55b[_0x9292('0x1b')]=qs['offset'](_0x5a48e8[_0x9292('0x2b')][_0x9292('0x1b')]);}return _0x38b7b8[_0x9292('0x54')](_0x33d55b);}})['then'](function(_0x8668c4){if(_0x8668c4){return _0x8668c4?{'count':_0x2d4de2,'rows':_0x8668c4}:null;}})[_0x9292('0x23')](respondWithResult(_0x2ce85e,null))[_0x9292('0x4f')](handleError(_0x2ce85e,null));};