cc3f26b1cbbff30f646fd2704e318806dad2120b
[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 _0x1796=['ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','get','Companies','UserProfileResource','destroy','error','stack','name','send','describe','model','keys','query','intersection','attributes','fields','length','nolimit','sort','where','filters','pick','filter','merge','map','options','CmCompany','includeAll','include','findAll','rows','catch','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','CmContact','ids','omit','findOne','rawAttributes','hasOwnProperty','getContacts','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse'];(function(_0x4a4a3f,_0xc54857){var _0x4d7fe4=function(_0x2f1c41){while(--_0x2f1c41){_0x4a4a3f['push'](_0x4a4a3f['shift']());}};_0x4d7fe4(++_0xc54857);}(_0x1796,0x143));var _0x6179=function(_0x3826ad,_0x49a30d){_0x3826ad=_0x3826ad-0x0;var _0x17b900=_0x1796[_0x3826ad];return _0x17b900;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6179('0x0'));var zipdir=require(_0x6179('0x1'));var jsonpatch=require(_0x6179('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6179('0x3'));var Mustache=require(_0x6179('0x4'));var util=require(_0x6179('0x5'));var path=require(_0x6179('0x6'));var sox=require(_0x6179('0x7'));var csv=require(_0x6179('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6179('0x9'));var _=require(_0x6179('0xa'));var squel=require(_0x6179('0xb'));var crypto=require(_0x6179('0xc'));var jsforce=require(_0x6179('0xd'));var deskjs=require(_0x6179('0xe'));var toCsv=require(_0x6179('0x8'));var querystring=require(_0x6179('0xf'));var Papa=require(_0x6179('0x10'));var Redis=require(_0x6179('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x6179('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6179('0x13'));var utils=require('../../config/utils');var config=require(_0x6179('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x6179('0x15'))['db'];function respondWithStatusCode(_0x1a71c6,_0x18ac90){_0x18ac90=_0x18ac90||0xcc;return function(_0x11ce4e){if(_0x11ce4e){return _0x1a71c6[_0x6179('0x16')](_0x18ac90);}return _0x1a71c6[_0x6179('0x17')](_0x18ac90)[_0x6179('0x18')]();};}function respondWithResult(_0x5e3e07,_0x59b091){_0x59b091=_0x59b091||0xc8;return function(_0x3249eb){if(_0x3249eb){return _0x5e3e07[_0x6179('0x17')](_0x59b091)[_0x6179('0x19')](_0x3249eb);}};}function respondWithFilteredResult(_0x4d73de,_0x16df31){return function(_0x42e128){if(_0x42e128){var _0x13ab13=typeof _0x16df31[_0x6179('0x1a')]===_0x6179('0x1b')&&typeof _0x16df31[_0x6179('0x1c')]===_0x6179('0x1b');var _0x345951=_0x42e128[_0x6179('0x1d')];var _0x22c41e=_0x13ab13?0x0:_0x16df31[_0x6179('0x1a')];var _0x52e886=_0x13ab13?_0x42e128[_0x6179('0x1d')]:_0x16df31['offset']+_0x16df31[_0x6179('0x1c')];var _0x2fef35;if(_0x52e886>=_0x345951){_0x52e886=_0x345951;_0x2fef35=0xc8;}else{_0x2fef35=0xce;}_0x4d73de[_0x6179('0x17')](_0x2fef35);return _0x4d73de[_0x6179('0x1e')]('Content-Range',_0x22c41e+'-'+_0x52e886+'/'+_0x345951)[_0x6179('0x19')](_0x42e128);}return null;};}function patchUpdates(_0x7b9c8d){return function(_0x2ba92d){try{jsonpatch['apply'](_0x2ba92d,_0x7b9c8d,!![]);}catch(_0x119ca9){return BPromise[_0x6179('0x1f')](_0x119ca9);}return _0x2ba92d[_0x6179('0x20')]();};}function saveUpdates(_0x1b970a,_0x6beb2){return function(_0xef97e9){if(_0xef97e9){return _0xef97e9[_0x6179('0x21')](_0x1b970a)[_0x6179('0x22')](function(_0x24384f){return _0x24384f;});}return null;};}function removeEntity(_0x5afa24,_0x4c1f09){return function(_0x555d20){if(_0x555d20){return _0x555d20['destroy']()[_0x6179('0x22')](function(){var _0xd11a90=_0x555d20[_0x6179('0x23')]({'plain':!![]});var _0x326f91=_0x6179('0x24');return db[_0x6179('0x25')][_0x6179('0x26')]({'where':{'type':_0x326f91,'resourceId':_0xd11a90['id']}})['then'](function(){return _0x555d20;});})[_0x6179('0x22')](function(){_0x5afa24[_0x6179('0x17')](0xcc)[_0x6179('0x18')]();});}};}function handleEntityNotFound(_0x1e1f39,_0x179d25){return function(_0x2d9844){if(!_0x2d9844){_0x1e1f39[_0x6179('0x16')](0x194);}return _0x2d9844;};}function handleError(_0x1260e0,_0x217ab6){_0x217ab6=_0x217ab6||0x1f4;return function(_0x2ec7f0){logger[_0x6179('0x27')](_0x2ec7f0[_0x6179('0x28')]);if(_0x2ec7f0[_0x6179('0x29')]){delete _0x2ec7f0[_0x6179('0x29')];}_0x1260e0['status'](_0x217ab6)[_0x6179('0x2a')](_0x2ec7f0);};}exports['index']=function(_0x152cc6,_0xab443f){var _0x498a40={},_0x544690={},_0x22e2f8={'count':0x0,'rows':[]};return db['CmCompany'][_0x6179('0x2b')]()[_0x6179('0x22')](function(_0x1dba45){_0x544690[_0x6179('0x2c')]=_[_0x6179('0x2d')](_0x1dba45);_0x544690[_0x6179('0x2e')]=_[_0x6179('0x2d')](_0x152cc6[_0x6179('0x2e')]);_0x544690['filters']=_[_0x6179('0x2f')](_0x544690[_0x6179('0x2c')],_0x544690[_0x6179('0x2e')]);_0x498a40[_0x6179('0x30')]=_[_0x6179('0x2f')](_0x544690[_0x6179('0x2c')],qs[_0x6179('0x31')](_0x152cc6['query']['fields']));_0x498a40[_0x6179('0x30')]=_0x498a40['attributes'][_0x6179('0x32')]?_0x498a40[_0x6179('0x30')]:_0x544690[_0x6179('0x2c')];if(!_0x152cc6[_0x6179('0x2e')]['hasOwnProperty'](_0x6179('0x33'))){_0x498a40[_0x6179('0x1c')]=qs[_0x6179('0x1c')](_0x152cc6['query']['limit']);_0x498a40['offset']=qs[_0x6179('0x1a')](_0x152cc6[_0x6179('0x2e')]['offset']);}_0x498a40['order']=qs[_0x6179('0x34')](_0x152cc6['query'][_0x6179('0x34')]);_0x498a40[_0x6179('0x35')]=qs[_0x6179('0x36')](_[_0x6179('0x37')](_0x152cc6['query'],_0x544690[_0x6179('0x36')]),_0x1dba45);if(_0x152cc6[_0x6179('0x2e')][_0x6179('0x38')]){_0x498a40[_0x6179('0x35')]=_[_0x6179('0x39')](_0x498a40[_0x6179('0x35')],{'$or':_[_0x6179('0x3a')](_0x498a40[_0x6179('0x30')],function(_0x53fa5a){var _0x340cab={};_0x340cab[_0x53fa5a]={'$like':'%'+_0x152cc6[_0x6179('0x2e')][_0x6179('0x38')]+'%'};return _0x340cab;})});}_0x498a40=_['merge']({},_0x498a40,_0x152cc6[_0x6179('0x3b')]);var _0x498096={'where':_0x498a40[_0x6179('0x35')]};return db[_0x6179('0x3c')][_0x6179('0x1d')](_0x498096)['then'](function(_0x332a7f){_0x22e2f8[_0x6179('0x1d')]=_0x332a7f;if(_0x152cc6['query'][_0x6179('0x3d')]){_0x498a40[_0x6179('0x3e')]=[{'all':!![]}];}return db[_0x6179('0x3c')][_0x6179('0x3f')](_0x498a40);})[_0x6179('0x22')](function(_0x54a3a1){_0x22e2f8[_0x6179('0x40')]=_0x54a3a1;return _0x22e2f8;})[_0x6179('0x22')](respondWithFilteredResult(_0xab443f,_0x498a40))[_0x6179('0x41')](handleError(_0xab443f,null));})['catch'](handleError(_0xab443f,null));};exports['show']=function(_0x2833a5,_0xb89819){var _0x139984={'raw':![],'where':{'id':_0x2833a5[_0x6179('0x42')]['id']}},_0x382fbc={};_0x382fbc[_0x6179('0x2c')]=_['keys'](db[_0x6179('0x3c')]['rawAttributes']);_0x382fbc['query']=_[_0x6179('0x2d')](_0x2833a5[_0x6179('0x2e')]);_0x382fbc[_0x6179('0x36')]=_[_0x6179('0x2f')](_0x382fbc[_0x6179('0x2c')],_0x382fbc['query']);_0x139984['attributes']=_['intersection'](_0x382fbc[_0x6179('0x2c')],qs[_0x6179('0x31')](_0x2833a5['query'][_0x6179('0x31')]));_0x139984[_0x6179('0x30')]=_0x139984[_0x6179('0x30')][_0x6179('0x32')]?_0x139984[_0x6179('0x30')]:_0x382fbc['model'];if(_0x2833a5['query']['includeAll']){_0x139984[_0x6179('0x3e')]=[{'all':!![]}];}_0x139984=_[_0x6179('0x39')]({},_0x139984,_0x2833a5[_0x6179('0x3b')]);return db[_0x6179('0x3c')][_0x6179('0x43')](_0x139984)[_0x6179('0x22')](handleEntityNotFound(_0xb89819,null))[_0x6179('0x22')](respondWithResult(_0xb89819,null))['catch'](handleError(_0xb89819,null));};exports[_0x6179('0x44')]=function(_0x487a86,_0x51afdb){return db['CmCompany']['create'](_0x487a86[_0x6179('0x45')],{})[_0x6179('0x22')](function(_0x415831){var _0x5b5f78=_0x487a86[_0x6179('0x46')][_0x6179('0x23')]({'plain':!![]});if(!_0x5b5f78)throw new Error(_0x6179('0x47'));if(_0x5b5f78[_0x6179('0x48')]===_0x6179('0x46')){var _0x2341c4=_0x415831['get']({'plain':!![]});var _0x221f5a='Companies';return db[_0x6179('0x49')]['find']({'where':{'name':_0x221f5a,'userProfileId':_0x5b5f78[_0x6179('0x4a')]},'raw':!![]})[_0x6179('0x22')](function(_0x24ee1f){if(_0x24ee1f&&_0x24ee1f[_0x6179('0x4b')]===0x0){return db[_0x6179('0x25')][_0x6179('0x44')]({'name':_0x2341c4[_0x6179('0x29')],'resourceId':_0x2341c4['id'],'type':_0x24ee1f[_0x6179('0x29')],'sectionId':_0x24ee1f['id']},{})['then'](function(){return _0x415831;});}else{return _0x415831;}})[_0x6179('0x41')](function(_0x5969b0){logger['error'](_0x6179('0x4c'),_0x5969b0);throw _0x5969b0;});}return _0x415831;})[_0x6179('0x22')](respondWithResult(_0x51afdb,0xc9))['catch'](handleError(_0x51afdb,null));};exports['update']=function(_0x2e4b86,_0x199b92){if(_0x2e4b86[_0x6179('0x45')]['id']){delete _0x2e4b86[_0x6179('0x45')]['id'];}return db['CmCompany']['find']({'where':{'id':_0x2e4b86['params']['id']}})[_0x6179('0x22')](handleEntityNotFound(_0x199b92,null))['then'](saveUpdates(_0x2e4b86['body'],null))[_0x6179('0x22')](respondWithResult(_0x199b92,null))['catch'](handleError(_0x199b92,null));};exports['destroy']=function(_0x57c76c,_0x443add){return db[_0x6179('0x3c')][_0x6179('0x43')]({'where':{'id':_0x57c76c['params']['id']}})[_0x6179('0x22')](handleEntityNotFound(_0x443add,null))[_0x6179('0x22')](removeEntity(_0x443add,null))[_0x6179('0x41')](handleError(_0x443add,null));};exports[_0x6179('0x2b')]=function(_0x2628a5,_0x413cfa){return db[_0x6179('0x3c')][_0x6179('0x2b')]()[_0x6179('0x22')](respondWithResult(_0x413cfa,null))[_0x6179('0x41')](handleError(_0x413cfa,null));};exports[_0x6179('0x4d')]=function(_0x377c9d,_0x2b1c48,_0x48f8ab){return db[_0x6179('0x4e')]['find']({'where':{'id':_0x377c9d[_0x6179('0x42')]['id']}})['then'](handleEntityNotFound(_0x2b1c48,null))[_0x6179('0x22')](function(_0x59fe72){if(_0x59fe72){return _0x59fe72['addContacts'](_0x377c9d[_0x6179('0x45')][_0x6179('0x4f')],_[_0x6179('0x50')](_0x377c9d[_0x6179('0x45')],[_0x6179('0x4f'),'id'])||{});}})[_0x6179('0x22')](respondWithResult(_0x2b1c48,null))['catch'](handleError(_0x2b1c48,null));};exports['getContacts']=function(_0x43f297,_0x385d01,_0xbdb52b){var _0x1f823e={};var _0x325e90={};var _0x46d61d;var _0x4c0b9d;return db[_0x6179('0x3c')][_0x6179('0x51')]({'where':{'id':_0x43f297[_0x6179('0x42')]['id']}})[_0x6179('0x22')](handleEntityNotFound(_0x385d01,null))[_0x6179('0x22')](function(_0x55524b){if(_0x55524b){_0x46d61d=_0x55524b;_0x325e90[_0x6179('0x2c')]=_['keys'](db[_0x6179('0x4e')][_0x6179('0x52')]);_0x325e90['query']=_['keys'](_0x43f297['query']);_0x325e90[_0x6179('0x36')]=_[_0x6179('0x2f')](_0x325e90['model'],_0x325e90['query']);_0x1f823e['attributes']=_[_0x6179('0x2f')](_0x325e90[_0x6179('0x2c')],qs[_0x6179('0x31')](_0x43f297[_0x6179('0x2e')]['fields']));_0x1f823e[_0x6179('0x30')]=_0x1f823e['attributes'][_0x6179('0x32')]?_0x1f823e[_0x6179('0x30')]:_0x325e90[_0x6179('0x2c')];_0x1f823e['order']=qs[_0x6179('0x34')](_0x43f297[_0x6179('0x2e')][_0x6179('0x34')]);_0x1f823e['where']=qs[_0x6179('0x36')](_[_0x6179('0x37')](_0x43f297[_0x6179('0x2e')],_0x325e90['filters']));if(_0x43f297[_0x6179('0x2e')][_0x6179('0x38')]){_0x1f823e[_0x6179('0x35')]=_[_0x6179('0x39')](_0x1f823e[_0x6179('0x35')],{'$or':_['map'](_0x1f823e[_0x6179('0x30')],function(_0xb637ff){var _0x3ce344={};_0x3ce344[_0xb637ff]={'$like':'%'+_0x43f297['query'][_0x6179('0x38')]+'%'};return _0x3ce344;})});}_0x1f823e=_[_0x6179('0x39')]({},_0x1f823e,_0x43f297[_0x6179('0x3b')]);return _0x46d61d['getContacts'](_0x1f823e);}})[_0x6179('0x22')](function(_0x3bb847){if(_0x3bb847){_0x4c0b9d=_0x3bb847[_0x6179('0x32')];if(!_0x43f297[_0x6179('0x2e')][_0x6179('0x53')]('nolimit')){_0x1f823e[_0x6179('0x1c')]=qs[_0x6179('0x1c')](_0x43f297['query'][_0x6179('0x1c')]);_0x1f823e[_0x6179('0x1a')]=qs[_0x6179('0x1a')](_0x43f297[_0x6179('0x2e')]['offset']);}return _0x46d61d[_0x6179('0x54')](_0x1f823e);}})[_0x6179('0x22')](function(_0x1984d0){if(_0x1984d0){return _0x1984d0?{'count':_0x4c0b9d,'rows':_0x1984d0}:null;}})[_0x6179('0x22')](respondWithResult(_0x385d01,null))[_0x6179('0x41')](handleError(_0x385d01,null));};