Built motion from commit 8356fca3.|2.6.19
[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 _0x43bf=['findOne','CmContact','getContacts','nolimit','rimraf','zip-dir','fast-json-patch','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','Companies','UserProfileResource','error','stack','name','send','CmCompany','describe','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','filter','merge','map','options','include','rows','catch','show','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','params','addContacts','ids','omit'];(function(_0x1c7e71,_0x3980fe){var _0x261281=function(_0x47f42b){while(--_0x47f42b){_0x1c7e71['push'](_0x1c7e71['shift']());}};_0x261281(++_0x3980fe);}(_0x43bf,0xfd));var _0xf43b=function(_0x2e28a3,_0x4678c2){_0x2e28a3=_0x2e28a3-0x0;var _0x54ec2e=_0x43bf[_0x2e28a3];return _0x54ec2e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf43b('0x0'));var zipdir=require(_0xf43b('0x1'));var jsonpatch=require(_0xf43b('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xf43b('0x3'));var Mustache=require(_0xf43b('0x4'));var util=require('util');var path=require('path');var sox=require(_0xf43b('0x5'));var csv=require(_0xf43b('0x6'));var ejs=require(_0xf43b('0x7'));var fs=require('fs');var fs_extra=require(_0xf43b('0x8'));var _=require(_0xf43b('0x9'));var squel=require(_0xf43b('0xa'));var crypto=require('crypto');var jsforce=require(_0xf43b('0xb'));var deskjs=require(_0xf43b('0xc'));var toCsv=require(_0xf43b('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf43b('0xd'));var authService=require(_0xf43b('0xe'));var qs=require(_0xf43b('0xf'));var as=require(_0xf43b('0x10'));var hardwareService=require(_0xf43b('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xf43b('0x12'));var config=require(_0xf43b('0x13'));var licenseUtil=require(_0xf43b('0x14'));var db=require(_0xf43b('0x15'))['db'];function respondWithStatusCode(_0x1d7cb5,_0x531459){_0x531459=_0x531459||0xcc;return function(_0x2997b){if(_0x2997b){return _0x1d7cb5[_0xf43b('0x16')](_0x531459);}return _0x1d7cb5[_0xf43b('0x17')](_0x531459)[_0xf43b('0x18')]();};}function respondWithResult(_0x2ba839,_0x8d85b9){_0x8d85b9=_0x8d85b9||0xc8;return function(_0x572109){if(_0x572109){return _0x2ba839['status'](_0x8d85b9)[_0xf43b('0x19')](_0x572109);}};}function respondWithFilteredResult(_0x5387a6,_0x54b6ea){return function(_0x1c11e6){if(_0x1c11e6){var _0x4ba2bc=typeof _0x54b6ea[_0xf43b('0x1a')]===_0xf43b('0x1b')&&typeof _0x54b6ea[_0xf43b('0x1c')]===_0xf43b('0x1b');var _0x50bc9f=_0x1c11e6[_0xf43b('0x1d')];var _0x4efaf5=_0x4ba2bc?0x0:_0x54b6ea[_0xf43b('0x1a')];var _0x43cf32=_0x4ba2bc?_0x1c11e6[_0xf43b('0x1d')]:_0x54b6ea['offset']+_0x54b6ea[_0xf43b('0x1c')];var _0x56ec33;if(_0x43cf32>=_0x50bc9f){_0x43cf32=_0x50bc9f;_0x56ec33=0xc8;}else{_0x56ec33=0xce;}_0x5387a6[_0xf43b('0x17')](_0x56ec33);return _0x5387a6[_0xf43b('0x1e')](_0xf43b('0x1f'),_0x4efaf5+'-'+_0x43cf32+'/'+_0x50bc9f)[_0xf43b('0x19')](_0x1c11e6);}return null;};}function patchUpdates(_0x5ba23f){return function(_0x566b27){try{jsonpatch[_0xf43b('0x20')](_0x566b27,_0x5ba23f,!![]);}catch(_0x434a3d){return BPromise[_0xf43b('0x21')](_0x434a3d);}return _0x566b27[_0xf43b('0x22')]();};}function saveUpdates(_0x52221d,_0x156204){return function(_0x189743){if(_0x189743){return _0x189743[_0xf43b('0x23')](_0x52221d)['then'](function(_0x42ddb7){return _0x42ddb7;});}return null;};}function removeEntity(_0x280ba4,_0x2cb4d2){return function(_0x3568c0){if(_0x3568c0){return _0x3568c0[_0xf43b('0x24')]()[_0xf43b('0x25')](function(){var _0x2c0738=_0x3568c0['get']({'plain':!![]});var _0xca3af=_0xf43b('0x26');return db[_0xf43b('0x27')][_0xf43b('0x24')]({'where':{'type':_0xca3af,'resourceId':_0x2c0738['id']}})['then'](function(){return _0x3568c0;});})[_0xf43b('0x25')](function(){_0x280ba4[_0xf43b('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d68c2,_0x382f46){return function(_0x354951){if(!_0x354951){_0x3d68c2[_0xf43b('0x16')](0x194);}return _0x354951;};}function handleError(_0x551a86,_0x503693){_0x503693=_0x503693||0x1f4;return function(_0x112105){logger[_0xf43b('0x28')](_0x112105[_0xf43b('0x29')]);if(_0x112105[_0xf43b('0x2a')]){delete _0x112105[_0xf43b('0x2a')];}_0x551a86[_0xf43b('0x17')](_0x503693)[_0xf43b('0x2b')](_0x112105);};}exports['index']=function(_0x178356,_0x5546da){var _0x45d946={},_0x251ad0={},_0x21bee8={'count':0x0,'rows':[]};return db[_0xf43b('0x2c')][_0xf43b('0x2d')]()['then'](function(_0x36fee5){_0x251ad0[_0xf43b('0x2e')]=_['keys'](_0x36fee5);_0x251ad0[_0xf43b('0x2f')]=_[_0xf43b('0x30')](_0x178356['query']);_0x251ad0['filters']=_[_0xf43b('0x31')](_0x251ad0[_0xf43b('0x2e')],_0x251ad0[_0xf43b('0x2f')]);_0x45d946[_0xf43b('0x32')]=_[_0xf43b('0x31')](_0x251ad0['model'],qs[_0xf43b('0x33')](_0x178356[_0xf43b('0x2f')]['fields']));_0x45d946[_0xf43b('0x32')]=_0x45d946['attributes'][_0xf43b('0x34')]?_0x45d946[_0xf43b('0x32')]:_0x251ad0[_0xf43b('0x2e')];if(!_0x178356[_0xf43b('0x2f')][_0xf43b('0x35')]('nolimit')){_0x45d946['limit']=qs[_0xf43b('0x1c')](_0x178356[_0xf43b('0x2f')]['limit']);_0x45d946['offset']=qs[_0xf43b('0x1a')](_0x178356['query'][_0xf43b('0x1a')]);}_0x45d946['order']=qs[_0xf43b('0x36')](_0x178356['query'][_0xf43b('0x36')]);_0x45d946[_0xf43b('0x37')]=qs[_0xf43b('0x38')](_[_0xf43b('0x39')](_0x178356[_0xf43b('0x2f')],_0x251ad0[_0xf43b('0x38')]),_0x36fee5);if(_0x178356['query'][_0xf43b('0x3a')]){_0x45d946['where']=_[_0xf43b('0x3b')](_0x45d946[_0xf43b('0x37')],{'$or':_[_0xf43b('0x3c')](_0x45d946[_0xf43b('0x32')],function(_0x51f7a4){var _0x122a61={};_0x122a61[_0x51f7a4]={'$like':'%'+_0x178356[_0xf43b('0x2f')]['filter']+'%'};return _0x122a61;})});}_0x45d946=_[_0xf43b('0x3b')]({},_0x45d946,_0x178356[_0xf43b('0x3d')]);var _0x49130f={'where':_0x45d946[_0xf43b('0x37')]};return db[_0xf43b('0x2c')]['count'](_0x49130f)[_0xf43b('0x25')](function(_0x399778){_0x21bee8[_0xf43b('0x1d')]=_0x399778;if(_0x178356[_0xf43b('0x2f')]['includeAll']){_0x45d946[_0xf43b('0x3e')]=[{'all':!![]}];}return db[_0xf43b('0x2c')]['findAll'](_0x45d946);})[_0xf43b('0x25')](function(_0x1ed2a6){_0x21bee8[_0xf43b('0x3f')]=_0x1ed2a6;return _0x21bee8;})['then'](respondWithFilteredResult(_0x5546da,_0x45d946))[_0xf43b('0x40')](handleError(_0x5546da,null));})['catch'](handleError(_0x5546da,null));};exports[_0xf43b('0x41')]=function(_0x22a7e6,_0x303669){var _0x1dbcc7={'raw':![],'where':{'id':_0x22a7e6['params']['id']}},_0x31c95c={};_0x31c95c[_0xf43b('0x2e')]=_[_0xf43b('0x30')](db[_0xf43b('0x2c')]['rawAttributes']);_0x31c95c[_0xf43b('0x2f')]=_['keys'](_0x22a7e6[_0xf43b('0x2f')]);_0x31c95c['filters']=_[_0xf43b('0x31')](_0x31c95c['model'],_0x31c95c[_0xf43b('0x2f')]);_0x1dbcc7[_0xf43b('0x32')]=_[_0xf43b('0x31')](_0x31c95c['model'],qs[_0xf43b('0x33')](_0x22a7e6[_0xf43b('0x2f')]['fields']));_0x1dbcc7[_0xf43b('0x32')]=_0x1dbcc7[_0xf43b('0x32')]['length']?_0x1dbcc7['attributes']:_0x31c95c[_0xf43b('0x2e')];if(_0x22a7e6[_0xf43b('0x2f')]['includeAll']){_0x1dbcc7[_0xf43b('0x3e')]=[{'all':!![]}];}_0x1dbcc7=_[_0xf43b('0x3b')]({},_0x1dbcc7,_0x22a7e6[_0xf43b('0x3d')]);return db[_0xf43b('0x2c')][_0xf43b('0x42')](_0x1dbcc7)['then'](handleEntityNotFound(_0x303669,null))[_0xf43b('0x25')](respondWithResult(_0x303669,null))[_0xf43b('0x40')](handleError(_0x303669,null));};exports[_0xf43b('0x43')]=function(_0x52f2d5,_0x2dc21c){return db[_0xf43b('0x2c')]['create'](_0x52f2d5[_0xf43b('0x44')],{})[_0xf43b('0x25')](function(_0x1d8d93){var _0x21b2bc=_0x52f2d5[_0xf43b('0x45')][_0xf43b('0x46')]({'plain':!![]});if(!_0x21b2bc)throw new Error(_0xf43b('0x47'));if(_0x21b2bc[_0xf43b('0x48')]===_0xf43b('0x45')){var _0xc327d=_0x1d8d93[_0xf43b('0x46')]({'plain':!![]});var _0x5971df=_0xf43b('0x26');return db[_0xf43b('0x49')][_0xf43b('0x42')]({'where':{'name':_0x5971df,'userProfileId':_0x21b2bc['userProfileId']},'raw':!![]})[_0xf43b('0x25')](function(_0x36222e){if(_0x36222e&&_0x36222e[_0xf43b('0x4a')]===0x0){return db['UserProfileResource'][_0xf43b('0x43')]({'name':_0xc327d[_0xf43b('0x2a')],'resourceId':_0xc327d['id'],'type':_0x36222e[_0xf43b('0x2a')],'sectionId':_0x36222e['id']},{})[_0xf43b('0x25')](function(){return _0x1d8d93;});}else{return _0x1d8d93;}})[_0xf43b('0x40')](function(_0x25baf3){logger[_0xf43b('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x25baf3);throw _0x25baf3;});}return _0x1d8d93;})[_0xf43b('0x25')](respondWithResult(_0x2dc21c,0xc9))['catch'](handleError(_0x2dc21c,null));};exports[_0xf43b('0x23')]=function(_0x3460c4,_0x5da273){if(_0x3460c4[_0xf43b('0x44')]['id']){delete _0x3460c4[_0xf43b('0x44')]['id'];}return db[_0xf43b('0x2c')][_0xf43b('0x42')]({'where':{'id':_0x3460c4['params']['id']}})['then'](handleEntityNotFound(_0x5da273,null))[_0xf43b('0x25')](saveUpdates(_0x3460c4[_0xf43b('0x44')],null))['then'](respondWithResult(_0x5da273,null))['catch'](handleError(_0x5da273,null));};exports[_0xf43b('0x24')]=function(_0x532bc6,_0x49d1a2){return db[_0xf43b('0x2c')][_0xf43b('0x42')]({'where':{'id':_0x532bc6[_0xf43b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x49d1a2,null))[_0xf43b('0x25')](removeEntity(_0x49d1a2,null))[_0xf43b('0x40')](handleError(_0x49d1a2,null));};exports[_0xf43b('0x2d')]=function(_0x4234da,_0x1658c2){return db[_0xf43b('0x2c')][_0xf43b('0x2d')]()[_0xf43b('0x25')](respondWithResult(_0x1658c2,null))[_0xf43b('0x40')](handleError(_0x1658c2,null));};exports[_0xf43b('0x4c')]=function(_0x32a1ab,_0x1f7588,_0x40e6a8){return db['CmContact']['find']({'where':{'id':_0x32a1ab[_0xf43b('0x4b')]['id']}})[_0xf43b('0x25')](handleEntityNotFound(_0x1f7588,null))['then'](function(_0xf13ddc){if(_0xf13ddc){return _0xf13ddc['addContacts'](_0x32a1ab[_0xf43b('0x44')][_0xf43b('0x4d')],_[_0xf43b('0x4e')](_0x32a1ab['body'],[_0xf43b('0x4d'),'id'])||{});}})[_0xf43b('0x25')](respondWithResult(_0x1f7588,null))['catch'](handleError(_0x1f7588,null));};exports['getContacts']=function(_0xc27942,_0x157e62,_0x3b83bc){var _0x2ed86c={};var _0x1a27a0={};var _0x296f36;var _0x249e66;return db[_0xf43b('0x2c')][_0xf43b('0x4f')]({'where':{'id':_0xc27942[_0xf43b('0x4b')]['id']}})[_0xf43b('0x25')](handleEntityNotFound(_0x157e62,null))[_0xf43b('0x25')](function(_0x3a20b9){if(_0x3a20b9){_0x296f36=_0x3a20b9;_0x1a27a0[_0xf43b('0x2e')]=_['keys'](db[_0xf43b('0x50')]['rawAttributes']);_0x1a27a0['query']=_[_0xf43b('0x30')](_0xc27942[_0xf43b('0x2f')]);_0x1a27a0[_0xf43b('0x38')]=_[_0xf43b('0x31')](_0x1a27a0[_0xf43b('0x2e')],_0x1a27a0[_0xf43b('0x2f')]);_0x2ed86c['attributes']=_[_0xf43b('0x31')](_0x1a27a0[_0xf43b('0x2e')],qs[_0xf43b('0x33')](_0xc27942[_0xf43b('0x2f')][_0xf43b('0x33')]));_0x2ed86c[_0xf43b('0x32')]=_0x2ed86c[_0xf43b('0x32')][_0xf43b('0x34')]?_0x2ed86c['attributes']:_0x1a27a0[_0xf43b('0x2e')];_0x2ed86c['order']=qs[_0xf43b('0x36')](_0xc27942['query'][_0xf43b('0x36')]);_0x2ed86c[_0xf43b('0x37')]=qs[_0xf43b('0x38')](_[_0xf43b('0x39')](_0xc27942[_0xf43b('0x2f')],_0x1a27a0[_0xf43b('0x38')]));if(_0xc27942['query']['filter']){_0x2ed86c['where']=_[_0xf43b('0x3b')](_0x2ed86c[_0xf43b('0x37')],{'$or':_[_0xf43b('0x3c')](_0x2ed86c[_0xf43b('0x32')],function(_0x11f74e){var _0x86d5d2={};_0x86d5d2[_0x11f74e]={'$like':'%'+_0xc27942[_0xf43b('0x2f')][_0xf43b('0x3a')]+'%'};return _0x86d5d2;})});}_0x2ed86c=_['merge']({},_0x2ed86c,_0xc27942['options']);return _0x296f36[_0xf43b('0x51')](_0x2ed86c);}})[_0xf43b('0x25')](function(_0x49ba3e){if(_0x49ba3e){_0x249e66=_0x49ba3e[_0xf43b('0x34')];if(!_0xc27942['query'][_0xf43b('0x35')](_0xf43b('0x52'))){_0x2ed86c[_0xf43b('0x1c')]=qs[_0xf43b('0x1c')](_0xc27942[_0xf43b('0x2f')][_0xf43b('0x1c')]);_0x2ed86c[_0xf43b('0x1a')]=qs[_0xf43b('0x1a')](_0xc27942[_0xf43b('0x2f')][_0xf43b('0x1a')]);}return _0x296f36['getContacts'](_0x2ed86c);}})['then'](function(_0xa44b29){if(_0xa44b29){return _0xa44b29?{'count':_0x249e66,'rows':_0xa44b29}:null;}})[_0xf43b('0x25')](respondWithResult(_0x157e62,null))[_0xf43b('0x40')](handleError(_0x157e62,null));};