55b2c35755a3071db9e55e6c41f43db2be887a63
[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 _0xd941=['send','index','CmCompany','describe','model','keys','query','filters','intersection','attributes','fields','nolimit','order','sort','filter','merge','options','where','count','includeAll','include','findAll','rows','catch','show','length','find','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','addContacts','CmContact','omit','getContacts','findOne','rawAttributes','pick','map','hasOwnProperty','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','offset','undefined','limit','json','reject','then','destroy','Companies','UserProfileResource','end','sendStatus','error','stack','name'];(function(_0x4db4b0,_0x58685f){var _0x3fbfc0=function(_0x11be32){while(--_0x11be32){_0x4db4b0['push'](_0x4db4b0['shift']());}};_0x3fbfc0(++_0x58685f);}(_0xd941,0x18f));var _0x1d94=function(_0x5756c6,_0x58290a){_0x5756c6=_0x5756c6-0x0;var _0x4b5806=_0xd941[_0x5756c6];return _0x4b5806;};'use strict';var emlformat=require(_0x1d94('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1d94('0x1'));var jsonpatch=require(_0x1d94('0x2'));var rp=require('request-promise');var moment=require(_0x1d94('0x3'));var BPromise=require(_0x1d94('0x4'));var Mustache=require(_0x1d94('0x5'));var util=require(_0x1d94('0x6'));var path=require(_0x1d94('0x7'));var sox=require(_0x1d94('0x8'));var csv=require('to-csv');var ejs=require(_0x1d94('0x9'));var fs=require('fs');var fs_extra=require(_0x1d94('0xa'));var _=require(_0x1d94('0xb'));var squel=require(_0x1d94('0xc'));var crypto=require(_0x1d94('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x1d94('0xe'));var toCsv=require(_0x1d94('0xf'));var querystring=require(_0x1d94('0x10'));var Papa=require(_0x1d94('0x11'));var Redis=require(_0x1d94('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x1d94('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1d94('0x14'));var logger=require(_0x1d94('0x15'))(_0x1d94('0x16'));var utils=require(_0x1d94('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x1d94('0x18'));var db=require(_0x1d94('0x19'))['db'];function respondWithStatusCode(_0x8fc91a,_0x27b205){_0x27b205=_0x27b205||0xcc;return function(_0x34e8a7){if(_0x34e8a7){return _0x8fc91a['sendStatus'](_0x27b205);}return _0x8fc91a[_0x1d94('0x1a')](_0x27b205)['end']();};}function respondWithResult(_0x156c69,_0x3c9ada){_0x3c9ada=_0x3c9ada||0xc8;return function(_0x2b6c4d){if(_0x2b6c4d){return _0x156c69[_0x1d94('0x1a')](_0x3c9ada)['json'](_0x2b6c4d);}};}function respondWithFilteredResult(_0x10208e,_0xc55083){return function(_0xa71f53){if(_0xa71f53){var _0x32b665=typeof _0xc55083[_0x1d94('0x1b')]===_0x1d94('0x1c')&&typeof _0xc55083[_0x1d94('0x1d')]===_0x1d94('0x1c');var _0x35a550=_0xa71f53['count'];var _0x586ab4=_0x32b665?0x0:_0xc55083[_0x1d94('0x1b')];var _0x2dfb97=_0x32b665?_0xa71f53['count']:_0xc55083[_0x1d94('0x1b')]+_0xc55083[_0x1d94('0x1d')];var _0x2a93db;if(_0x2dfb97>=_0x35a550){_0x2dfb97=_0x35a550;_0x2a93db=0xc8;}else{_0x2a93db=0xce;}_0x10208e[_0x1d94('0x1a')](_0x2a93db);return _0x10208e['set']('Content-Range',_0x586ab4+'-'+_0x2dfb97+'/'+_0x35a550)[_0x1d94('0x1e')](_0xa71f53);}return null;};}function patchUpdates(_0x476054){return function(_0x2565e9){try{jsonpatch['apply'](_0x2565e9,_0x476054,!![]);}catch(_0x2f215b){return BPromise[_0x1d94('0x1f')](_0x2f215b);}return _0x2565e9['save']();};}function saveUpdates(_0x353d59,_0xa31a2e){return function(_0x183c7d){if(_0x183c7d){return _0x183c7d['update'](_0x353d59)[_0x1d94('0x20')](function(_0x1bdf7b){return _0x1bdf7b;});}return null;};}function removeEntity(_0x2710d6,_0x421301){return function(_0x4d0998){if(_0x4d0998){return _0x4d0998[_0x1d94('0x21')]()[_0x1d94('0x20')](function(){var _0x484de4=_0x4d0998['get']({'plain':!![]});var _0x13c49b=_0x1d94('0x22');return db[_0x1d94('0x23')][_0x1d94('0x21')]({'where':{'type':_0x13c49b,'resourceId':_0x484de4['id']}})['then'](function(){return _0x4d0998;});})[_0x1d94('0x20')](function(){_0x2710d6['status'](0xcc)[_0x1d94('0x24')]();});}};}function handleEntityNotFound(_0x5afced,_0x150203){return function(_0x339afe){if(!_0x339afe){_0x5afced[_0x1d94('0x25')](0x194);}return _0x339afe;};}function handleError(_0x3e9807,_0x1d1c63){_0x1d1c63=_0x1d1c63||0x1f4;return function(_0x514389){logger[_0x1d94('0x26')](_0x514389[_0x1d94('0x27')]);if(_0x514389[_0x1d94('0x28')]){delete _0x514389['name'];}_0x3e9807[_0x1d94('0x1a')](_0x1d1c63)[_0x1d94('0x29')](_0x514389);};}exports[_0x1d94('0x2a')]=function(_0x1e1ee1,_0x582f07){var _0x19c48d={},_0x40e57c={},_0x11414b={'count':0x0,'rows':[]};return db[_0x1d94('0x2b')][_0x1d94('0x2c')]()[_0x1d94('0x20')](function(_0x38a3d3){_0x40e57c[_0x1d94('0x2d')]=_[_0x1d94('0x2e')](_0x38a3d3);_0x40e57c[_0x1d94('0x2f')]=_[_0x1d94('0x2e')](_0x1e1ee1[_0x1d94('0x2f')]);_0x40e57c[_0x1d94('0x30')]=_[_0x1d94('0x31')](_0x40e57c['model'],_0x40e57c[_0x1d94('0x2f')]);_0x19c48d[_0x1d94('0x32')]=_[_0x1d94('0x31')](_0x40e57c[_0x1d94('0x2d')],qs[_0x1d94('0x33')](_0x1e1ee1[_0x1d94('0x2f')][_0x1d94('0x33')]));_0x19c48d[_0x1d94('0x32')]=_0x19c48d[_0x1d94('0x32')]['length']?_0x19c48d[_0x1d94('0x32')]:_0x40e57c[_0x1d94('0x2d')];if(!_0x1e1ee1[_0x1d94('0x2f')]['hasOwnProperty'](_0x1d94('0x34'))){_0x19c48d['limit']=qs['limit'](_0x1e1ee1['query'][_0x1d94('0x1d')]);_0x19c48d[_0x1d94('0x1b')]=qs[_0x1d94('0x1b')](_0x1e1ee1[_0x1d94('0x2f')][_0x1d94('0x1b')]);}_0x19c48d[_0x1d94('0x35')]=qs[_0x1d94('0x36')](_0x1e1ee1['query'][_0x1d94('0x36')]);_0x19c48d['where']=qs['filters'](_['pick'](_0x1e1ee1[_0x1d94('0x2f')],_0x40e57c['filters']),_0x38a3d3);if(_0x1e1ee1[_0x1d94('0x2f')][_0x1d94('0x37')]){_0x19c48d['where']=_['merge'](_0x19c48d['where'],{'$or':_['map'](_0x19c48d[_0x1d94('0x32')],function(_0x278f0c){var _0x5da827={};_0x5da827[_0x278f0c]={'$like':'%'+_0x1e1ee1['query'][_0x1d94('0x37')]+'%'};return _0x5da827;})});}_0x19c48d=_[_0x1d94('0x38')]({},_0x19c48d,_0x1e1ee1[_0x1d94('0x39')]);var _0x5d81e5={'where':_0x19c48d[_0x1d94('0x3a')]};return db[_0x1d94('0x2b')][_0x1d94('0x3b')](_0x5d81e5)['then'](function(_0x26c3dc){_0x11414b[_0x1d94('0x3b')]=_0x26c3dc;if(_0x1e1ee1['query'][_0x1d94('0x3c')]){_0x19c48d[_0x1d94('0x3d')]=[{'all':!![]}];}return db['CmCompany'][_0x1d94('0x3e')](_0x19c48d);})[_0x1d94('0x20')](function(_0x4ee2f7){_0x11414b[_0x1d94('0x3f')]=_0x4ee2f7;return _0x11414b;})[_0x1d94('0x20')](respondWithFilteredResult(_0x582f07,_0x19c48d))['catch'](handleError(_0x582f07,null));})[_0x1d94('0x40')](handleError(_0x582f07,null));};exports[_0x1d94('0x41')]=function(_0x1af524,_0x4dd8d0){var _0x5e51d8={'raw':![],'where':{'id':_0x1af524['params']['id']}},_0x23e2fd={};_0x23e2fd['model']=_[_0x1d94('0x2e')](db[_0x1d94('0x2b')]['rawAttributes']);_0x23e2fd[_0x1d94('0x2f')]=_[_0x1d94('0x2e')](_0x1af524['query']);_0x23e2fd['filters']=_[_0x1d94('0x31')](_0x23e2fd[_0x1d94('0x2d')],_0x23e2fd[_0x1d94('0x2f')]);_0x5e51d8[_0x1d94('0x32')]=_[_0x1d94('0x31')](_0x23e2fd['model'],qs[_0x1d94('0x33')](_0x1af524[_0x1d94('0x2f')]['fields']));_0x5e51d8['attributes']=_0x5e51d8[_0x1d94('0x32')][_0x1d94('0x42')]?_0x5e51d8[_0x1d94('0x32')]:_0x23e2fd[_0x1d94('0x2d')];if(_0x1af524[_0x1d94('0x2f')][_0x1d94('0x3c')]){_0x5e51d8[_0x1d94('0x3d')]=[{'all':!![]}];}_0x5e51d8=_[_0x1d94('0x38')]({},_0x5e51d8,_0x1af524[_0x1d94('0x39')]);return db[_0x1d94('0x2b')][_0x1d94('0x43')](_0x5e51d8)[_0x1d94('0x20')](handleEntityNotFound(_0x4dd8d0,null))['then'](respondWithResult(_0x4dd8d0,null))[_0x1d94('0x40')](handleError(_0x4dd8d0,null));};exports['create']=function(_0x361f8d,_0x461381){return db[_0x1d94('0x2b')]['create'](_0x361f8d[_0x1d94('0x44')],{})[_0x1d94('0x20')](function(_0x55af1c){var _0x4ecc00=_0x361f8d[_0x1d94('0x45')][_0x1d94('0x46')]({'plain':!![]});if(!_0x4ecc00)throw new Error(_0x1d94('0x47'));if(_0x4ecc00[_0x1d94('0x48')]===_0x1d94('0x45')){var _0x2c88c0=_0x55af1c[_0x1d94('0x46')]({'plain':!![]});var _0x396173=_0x1d94('0x22');return db[_0x1d94('0x49')]['find']({'where':{'name':_0x396173,'userProfileId':_0x4ecc00[_0x1d94('0x4a')]},'raw':!![]})[_0x1d94('0x20')](function(_0x428272){if(_0x428272&&_0x428272['autoAssociation']===0x0){return db[_0x1d94('0x23')][_0x1d94('0x4b')]({'name':_0x2c88c0['name'],'resourceId':_0x2c88c0['id'],'type':_0x428272[_0x1d94('0x28')],'sectionId':_0x428272['id']},{})[_0x1d94('0x20')](function(){return _0x55af1c;});}else{return _0x55af1c;}})[_0x1d94('0x40')](function(_0x201c1a){logger['error'](_0x1d94('0x4c'),_0x201c1a);throw _0x201c1a;});}return _0x55af1c;})[_0x1d94('0x20')](respondWithResult(_0x461381,0xc9))[_0x1d94('0x40')](handleError(_0x461381,null));};exports[_0x1d94('0x4d')]=function(_0x2f31f5,_0x3cef35){if(_0x2f31f5['body']['id']){delete _0x2f31f5[_0x1d94('0x44')]['id'];}return db['CmCompany'][_0x1d94('0x43')]({'where':{'id':_0x2f31f5[_0x1d94('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3cef35,null))[_0x1d94('0x20')](saveUpdates(_0x2f31f5[_0x1d94('0x44')],null))['then'](respondWithResult(_0x3cef35,null))[_0x1d94('0x40')](handleError(_0x3cef35,null));};exports[_0x1d94('0x21')]=function(_0x1f9ed5,_0x308757){return db['CmCompany'][_0x1d94('0x43')]({'where':{'id':_0x1f9ed5['params']['id']}})['then'](handleEntityNotFound(_0x308757,null))[_0x1d94('0x20')](removeEntity(_0x308757,null))[_0x1d94('0x40')](handleError(_0x308757,null));};exports['describe']=function(_0x514cc7,_0x257272){return db[_0x1d94('0x2b')][_0x1d94('0x2c')]()[_0x1d94('0x20')](respondWithResult(_0x257272,null))[_0x1d94('0x40')](handleError(_0x257272,null));};exports[_0x1d94('0x4f')]=function(_0x147564,_0x1ec3e5,_0x4b326b){return db[_0x1d94('0x50')][_0x1d94('0x43')]({'where':{'id':_0x147564['params']['id']}})['then'](handleEntityNotFound(_0x1ec3e5,null))[_0x1d94('0x20')](function(_0x551bf0){if(_0x551bf0){return _0x551bf0['addContacts'](_0x147564[_0x1d94('0x44')]['ids'],_[_0x1d94('0x51')](_0x147564['body'],['ids','id'])||{});}})['then'](respondWithResult(_0x1ec3e5,null))['catch'](handleError(_0x1ec3e5,null));};exports[_0x1d94('0x52')]=function(_0x297ab7,_0xbce77c,_0x4d7d72){var _0x127b31={};var _0x19f0da={};var _0x428191;var _0x407de9;return db[_0x1d94('0x2b')][_0x1d94('0x53')]({'where':{'id':_0x297ab7['params']['id']}})['then'](handleEntityNotFound(_0xbce77c,null))[_0x1d94('0x20')](function(_0x4aff62){if(_0x4aff62){_0x428191=_0x4aff62;_0x19f0da[_0x1d94('0x2d')]=_[_0x1d94('0x2e')](db[_0x1d94('0x50')][_0x1d94('0x54')]);_0x19f0da[_0x1d94('0x2f')]=_[_0x1d94('0x2e')](_0x297ab7['query']);_0x19f0da[_0x1d94('0x30')]=_[_0x1d94('0x31')](_0x19f0da['model'],_0x19f0da[_0x1d94('0x2f')]);_0x127b31[_0x1d94('0x32')]=_[_0x1d94('0x31')](_0x19f0da['model'],qs[_0x1d94('0x33')](_0x297ab7[_0x1d94('0x2f')][_0x1d94('0x33')]));_0x127b31[_0x1d94('0x32')]=_0x127b31[_0x1d94('0x32')][_0x1d94('0x42')]?_0x127b31[_0x1d94('0x32')]:_0x19f0da[_0x1d94('0x2d')];_0x127b31[_0x1d94('0x35')]=qs[_0x1d94('0x36')](_0x297ab7['query'][_0x1d94('0x36')]);_0x127b31['where']=qs[_0x1d94('0x30')](_[_0x1d94('0x55')](_0x297ab7[_0x1d94('0x2f')],_0x19f0da['filters']));if(_0x297ab7[_0x1d94('0x2f')]['filter']){_0x127b31[_0x1d94('0x3a')]=_[_0x1d94('0x38')](_0x127b31[_0x1d94('0x3a')],{'$or':_[_0x1d94('0x56')](_0x127b31[_0x1d94('0x32')],function(_0x5371e3){var _0xc6e15d={};_0xc6e15d[_0x5371e3]={'$like':'%'+_0x297ab7[_0x1d94('0x2f')][_0x1d94('0x37')]+'%'};return _0xc6e15d;})});}_0x127b31=_[_0x1d94('0x38')]({},_0x127b31,_0x297ab7[_0x1d94('0x39')]);return _0x428191[_0x1d94('0x52')](_0x127b31);}})[_0x1d94('0x20')](function(_0x3782aa){if(_0x3782aa){_0x407de9=_0x3782aa['length'];if(!_0x297ab7[_0x1d94('0x2f')][_0x1d94('0x57')](_0x1d94('0x34'))){_0x127b31[_0x1d94('0x1d')]=qs['limit'](_0x297ab7['query'][_0x1d94('0x1d')]);_0x127b31[_0x1d94('0x1b')]=qs['offset'](_0x297ab7['query']['offset']);}return _0x428191[_0x1d94('0x52')](_0x127b31);}})['then'](function(_0x1b01ad){if(_0x1b01ad){return _0x1b01ad?{'count':_0x407de9,'rows':_0x1b01ad}:null;}})[_0x1d94('0x20')](respondWithResult(_0xbce77c,null))['catch'](handleError(_0xbce77c,null));};