123ca16f37010e13b96f8ee10837f12c77045187
[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 _0x4397=['eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','Companies','UserProfileResource','sendStatus','error','stack','name','send','index','CmCompany','describe','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','includeAll','include','findAll','catch','show','params','rawAttributes','length','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','CmContact','ids','omit','getContacts','map'];(function(_0x5b9b82,_0x286c55){var _0x19b374=function(_0x4e07df){while(--_0x4e07df){_0x5b9b82['push'](_0x5b9b82['shift']());}};_0x19b374(++_0x286c55);}(_0x4397,0x1b3));var _0x7439=function(_0x25c326,_0x250137){_0x25c326=_0x25c326-0x0;var _0x762452=_0x4397[_0x25c326];return _0x762452;};'use strict';var emlformat=require(_0x7439('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7439('0x1'));var jsonpatch=require(_0x7439('0x2'));var rp=require(_0x7439('0x3'));var moment=require(_0x7439('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x7439('0x5'));var util=require('util');var path=require(_0x7439('0x6'));var sox=require(_0x7439('0x7'));var csv=require(_0x7439('0x8'));var ejs=require(_0x7439('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x7439('0xa'));var jsforce=require(_0x7439('0xb'));var deskjs=require(_0x7439('0xc'));var toCsv=require(_0x7439('0x8'));var querystring=require(_0x7439('0xd'));var Papa=require(_0x7439('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x7439('0xf'));var as=require(_0x7439('0x10'));var hardwareService=require(_0x7439('0x11'));var logger=require(_0x7439('0x12'))(_0x7439('0x13'));var utils=require(_0x7439('0x14'));var config=require(_0x7439('0x15'));var licenseUtil=require(_0x7439('0x16'));var db=require(_0x7439('0x17'))['db'];function respondWithStatusCode(_0x167bd8,_0x4b9e49){_0x4b9e49=_0x4b9e49||0xcc;return function(_0x22a0eb){if(_0x22a0eb){return _0x167bd8['sendStatus'](_0x4b9e49);}return _0x167bd8[_0x7439('0x18')](_0x4b9e49)[_0x7439('0x19')]();};}function respondWithResult(_0x575a39,_0x4b4fa9){_0x4b4fa9=_0x4b4fa9||0xc8;return function(_0x13847c){if(_0x13847c){return _0x575a39['status'](_0x4b4fa9)[_0x7439('0x1a')](_0x13847c);}};}function respondWithFilteredResult(_0x5d9e46,_0xc77ef5){return function(_0x9a3e1b){if(_0x9a3e1b){var _0x255e25=typeof _0xc77ef5[_0x7439('0x1b')]===_0x7439('0x1c')&&typeof _0xc77ef5['limit']===_0x7439('0x1c');var _0x41d742=_0x9a3e1b[_0x7439('0x1d')];var _0x4ba1fe=_0x255e25?0x0:_0xc77ef5['offset'];var _0x437c56=_0x255e25?_0x9a3e1b[_0x7439('0x1d')]:_0xc77ef5[_0x7439('0x1b')]+_0xc77ef5[_0x7439('0x1e')];var _0x202c98;if(_0x437c56>=_0x41d742){_0x437c56=_0x41d742;_0x202c98=0xc8;}else{_0x202c98=0xce;}_0x5d9e46[_0x7439('0x18')](_0x202c98);return _0x5d9e46[_0x7439('0x1f')](_0x7439('0x20'),_0x4ba1fe+'-'+_0x437c56+'/'+_0x41d742)[_0x7439('0x1a')](_0x9a3e1b);}return null;};}function patchUpdates(_0x5ca409){return function(_0x21df38){try{jsonpatch['apply'](_0x21df38,_0x5ca409,!![]);}catch(_0x3d4273){return BPromise[_0x7439('0x21')](_0x3d4273);}return _0x21df38[_0x7439('0x22')]();};}function saveUpdates(_0x4b66e2,_0x2469aa){return function(_0x7cc794){if(_0x7cc794){return _0x7cc794[_0x7439('0x23')](_0x4b66e2)[_0x7439('0x24')](function(_0xa51085){return _0xa51085;});}return null;};}function removeEntity(_0x19939f,_0x64c8a8){return function(_0x12e647){if(_0x12e647){return _0x12e647[_0x7439('0x25')]()[_0x7439('0x24')](function(){var _0x2f24bb=_0x12e647[_0x7439('0x26')]({'plain':!![]});var _0x9443c7=_0x7439('0x27');return db[_0x7439('0x28')][_0x7439('0x25')]({'where':{'type':_0x9443c7,'resourceId':_0x2f24bb['id']}})[_0x7439('0x24')](function(){return _0x12e647;});})[_0x7439('0x24')](function(){_0x19939f['status'](0xcc)[_0x7439('0x19')]();});}};}function handleEntityNotFound(_0x27fed2,_0x23efda){return function(_0x5b99fb){if(!_0x5b99fb){_0x27fed2[_0x7439('0x29')](0x194);}return _0x5b99fb;};}function handleError(_0x5c7aff,_0x1e2468){_0x1e2468=_0x1e2468||0x1f4;return function(_0x2f0c9a){logger[_0x7439('0x2a')](_0x2f0c9a[_0x7439('0x2b')]);if(_0x2f0c9a[_0x7439('0x2c')]){delete _0x2f0c9a['name'];}_0x5c7aff[_0x7439('0x18')](_0x1e2468)[_0x7439('0x2d')](_0x2f0c9a);};}exports[_0x7439('0x2e')]=function(_0x4b4554,_0x380677){var _0x29c028={},_0x4df79d={},_0x2c70a9={'count':0x0,'rows':[]};return db[_0x7439('0x2f')][_0x7439('0x30')]()[_0x7439('0x24')](function(_0x29e1a4){_0x4df79d[_0x7439('0x31')]=_[_0x7439('0x32')](_0x29e1a4);_0x4df79d[_0x7439('0x33')]=_[_0x7439('0x32')](_0x4b4554[_0x7439('0x33')]);_0x4df79d[_0x7439('0x34')]=_[_0x7439('0x35')](_0x4df79d[_0x7439('0x31')],_0x4df79d['query']);_0x29c028['attributes']=_[_0x7439('0x35')](_0x4df79d[_0x7439('0x31')],qs[_0x7439('0x36')](_0x4b4554[_0x7439('0x33')][_0x7439('0x36')]));_0x29c028[_0x7439('0x37')]=_0x29c028[_0x7439('0x37')]['length']?_0x29c028['attributes']:_0x4df79d[_0x7439('0x31')];if(!_0x4b4554[_0x7439('0x33')][_0x7439('0x38')](_0x7439('0x39'))){_0x29c028[_0x7439('0x1e')]=qs[_0x7439('0x1e')](_0x4b4554[_0x7439('0x33')][_0x7439('0x1e')]);_0x29c028[_0x7439('0x1b')]=qs[_0x7439('0x1b')](_0x4b4554[_0x7439('0x33')]['offset']);}_0x29c028[_0x7439('0x3a')]=qs['sort'](_0x4b4554['query'][_0x7439('0x3b')]);_0x29c028['where']=qs['filters'](_[_0x7439('0x3c')](_0x4b4554[_0x7439('0x33')],_0x4df79d[_0x7439('0x34')]),_0x29e1a4);if(_0x4b4554[_0x7439('0x33')][_0x7439('0x3d')]){_0x29c028[_0x7439('0x3e')]=_[_0x7439('0x3f')](_0x29c028['where'],{'$or':_['map'](_0x29c028[_0x7439('0x37')],function(_0x126eed){var _0x3eba88={};_0x3eba88[_0x126eed]={'$like':'%'+_0x4b4554[_0x7439('0x33')]['filter']+'%'};return _0x3eba88;})});}_0x29c028=_[_0x7439('0x3f')]({},_0x29c028,_0x4b4554['options']);var _0xd125b9={'where':_0x29c028[_0x7439('0x3e')]};return db[_0x7439('0x2f')]['count'](_0xd125b9)['then'](function(_0x543fef){_0x2c70a9['count']=_0x543fef;if(_0x4b4554[_0x7439('0x33')][_0x7439('0x40')]){_0x29c028[_0x7439('0x41')]=[{'all':!![]}];}return db['CmCompany'][_0x7439('0x42')](_0x29c028);})[_0x7439('0x24')](function(_0x53a61f){_0x2c70a9['rows']=_0x53a61f;return _0x2c70a9;})['then'](respondWithFilteredResult(_0x380677,_0x29c028))[_0x7439('0x43')](handleError(_0x380677,null));})[_0x7439('0x43')](handleError(_0x380677,null));};exports[_0x7439('0x44')]=function(_0x1542a6,_0x3307eb){var _0x3c6b3f={'raw':![],'where':{'id':_0x1542a6[_0x7439('0x45')]['id']}},_0x2a1889={};_0x2a1889[_0x7439('0x31')]=_[_0x7439('0x32')](db['CmCompany'][_0x7439('0x46')]);_0x2a1889[_0x7439('0x33')]=_[_0x7439('0x32')](_0x1542a6['query']);_0x2a1889['filters']=_[_0x7439('0x35')](_0x2a1889[_0x7439('0x31')],_0x2a1889['query']);_0x3c6b3f[_0x7439('0x37')]=_[_0x7439('0x35')](_0x2a1889[_0x7439('0x31')],qs[_0x7439('0x36')](_0x1542a6[_0x7439('0x33')][_0x7439('0x36')]));_0x3c6b3f['attributes']=_0x3c6b3f[_0x7439('0x37')][_0x7439('0x47')]?_0x3c6b3f[_0x7439('0x37')]:_0x2a1889[_0x7439('0x31')];if(_0x1542a6[_0x7439('0x33')][_0x7439('0x40')]){_0x3c6b3f[_0x7439('0x41')]=[{'all':!![]}];}_0x3c6b3f=_[_0x7439('0x3f')]({},_0x3c6b3f,_0x1542a6[_0x7439('0x48')]);return db[_0x7439('0x2f')][_0x7439('0x49')](_0x3c6b3f)['then'](handleEntityNotFound(_0x3307eb,null))['then'](respondWithResult(_0x3307eb,null))['catch'](handleError(_0x3307eb,null));};exports['create']=function(_0x46075b,_0x573ad2){return db['CmCompany'][_0x7439('0x4a')](_0x46075b[_0x7439('0x4b')],{})[_0x7439('0x24')](function(_0xf2b53b){var _0x3cc722=_0x46075b[_0x7439('0x4c')]['get']({'plain':!![]});if(!_0x3cc722)throw new Error(_0x7439('0x4d'));if(_0x3cc722['role']==='user'){var _0x28bb5f=_0xf2b53b[_0x7439('0x26')]({'plain':!![]});var _0x5c47cc=_0x7439('0x27');return db[_0x7439('0x4e')][_0x7439('0x49')]({'where':{'name':_0x5c47cc,'userProfileId':_0x3cc722[_0x7439('0x4f')]},'raw':!![]})['then'](function(_0x2b09d1){if(_0x2b09d1&&_0x2b09d1[_0x7439('0x50')]===0x0){return db[_0x7439('0x28')]['create']({'name':_0x28bb5f['name'],'resourceId':_0x28bb5f['id'],'type':_0x2b09d1[_0x7439('0x2c')],'sectionId':_0x2b09d1['id']},{})[_0x7439('0x24')](function(){return _0xf2b53b;});}else{return _0xf2b53b;}})['catch'](function(_0x4b2e43){logger['error'](_0x7439('0x51'),_0x4b2e43);throw _0x4b2e43;});}return _0xf2b53b;})['then'](respondWithResult(_0x573ad2,0xc9))[_0x7439('0x43')](handleError(_0x573ad2,null));};exports[_0x7439('0x23')]=function(_0x218f71,_0x15e240){if(_0x218f71[_0x7439('0x4b')]['id']){delete _0x218f71[_0x7439('0x4b')]['id'];}return db[_0x7439('0x2f')][_0x7439('0x49')]({'where':{'id':_0x218f71['params']['id']}})[_0x7439('0x24')](handleEntityNotFound(_0x15e240,null))[_0x7439('0x24')](saveUpdates(_0x218f71[_0x7439('0x4b')],null))[_0x7439('0x24')](respondWithResult(_0x15e240,null))[_0x7439('0x43')](handleError(_0x15e240,null));};exports[_0x7439('0x25')]=function(_0x5bdd12,_0x1d8ba9){return db['CmCompany']['find']({'where':{'id':_0x5bdd12[_0x7439('0x45')]['id']}})[_0x7439('0x24')](handleEntityNotFound(_0x1d8ba9,null))[_0x7439('0x24')](removeEntity(_0x1d8ba9,null))['catch'](handleError(_0x1d8ba9,null));};exports[_0x7439('0x30')]=function(_0x4136af,_0x478206){return db[_0x7439('0x2f')][_0x7439('0x30')]()[_0x7439('0x24')](respondWithResult(_0x478206,null))[_0x7439('0x43')](handleError(_0x478206,null));};exports['addContacts']=function(_0x10b5bc,_0x35df13,_0x376100){return db[_0x7439('0x52')][_0x7439('0x49')]({'where':{'id':_0x10b5bc[_0x7439('0x45')]['id']}})[_0x7439('0x24')](handleEntityNotFound(_0x35df13,null))['then'](function(_0x57df7d){if(_0x57df7d){return _0x57df7d['addContacts'](_0x10b5bc['body'][_0x7439('0x53')],_[_0x7439('0x54')](_0x10b5bc[_0x7439('0x4b')],[_0x7439('0x53'),'id'])||{});}})[_0x7439('0x24')](respondWithResult(_0x35df13,null))[_0x7439('0x43')](handleError(_0x35df13,null));};exports[_0x7439('0x55')]=function(_0x366c31,_0x5c1914,_0x4d24b1){var _0x48cbba={};var _0x5bc849={};var _0x2a05ef;var _0x2ab915;return db[_0x7439('0x2f')]['findOne']({'where':{'id':_0x366c31['params']['id']}})[_0x7439('0x24')](handleEntityNotFound(_0x5c1914,null))[_0x7439('0x24')](function(_0x17eb63){if(_0x17eb63){_0x2a05ef=_0x17eb63;_0x5bc849[_0x7439('0x31')]=_[_0x7439('0x32')](db[_0x7439('0x52')]['rawAttributes']);_0x5bc849[_0x7439('0x33')]=_['keys'](_0x366c31[_0x7439('0x33')]);_0x5bc849[_0x7439('0x34')]=_['intersection'](_0x5bc849[_0x7439('0x31')],_0x5bc849[_0x7439('0x33')]);_0x48cbba['attributes']=_[_0x7439('0x35')](_0x5bc849[_0x7439('0x31')],qs[_0x7439('0x36')](_0x366c31[_0x7439('0x33')]['fields']));_0x48cbba[_0x7439('0x37')]=_0x48cbba[_0x7439('0x37')]['length']?_0x48cbba['attributes']:_0x5bc849[_0x7439('0x31')];_0x48cbba[_0x7439('0x3a')]=qs[_0x7439('0x3b')](_0x366c31['query']['sort']);_0x48cbba[_0x7439('0x3e')]=qs[_0x7439('0x34')](_[_0x7439('0x3c')](_0x366c31['query'],_0x5bc849[_0x7439('0x34')]));if(_0x366c31['query'][_0x7439('0x3d')]){_0x48cbba[_0x7439('0x3e')]=_[_0x7439('0x3f')](_0x48cbba['where'],{'$or':_[_0x7439('0x56')](_0x48cbba[_0x7439('0x37')],function(_0x105ba1){var _0x172fe9={};_0x172fe9[_0x105ba1]={'$like':'%'+_0x366c31[_0x7439('0x33')][_0x7439('0x3d')]+'%'};return _0x172fe9;})});}_0x48cbba=_[_0x7439('0x3f')]({},_0x48cbba,_0x366c31[_0x7439('0x48')]);return _0x2a05ef[_0x7439('0x55')](_0x48cbba);}})[_0x7439('0x24')](function(_0x46e697){if(_0x46e697){_0x2ab915=_0x46e697[_0x7439('0x47')];if(!_0x366c31['query'][_0x7439('0x38')]('nolimit')){_0x48cbba[_0x7439('0x1e')]=qs[_0x7439('0x1e')](_0x366c31[_0x7439('0x33')][_0x7439('0x1e')]);_0x48cbba[_0x7439('0x1b')]=qs[_0x7439('0x1b')](_0x366c31[_0x7439('0x33')]['offset']);}return _0x2a05ef[_0x7439('0x55')](_0x48cbba);}})[_0x7439('0x24')](function(_0x5523d3){if(_0x5523d3){return _0x5523d3?{'count':_0x2ab915,'rows':_0x5523d3}:null;}})['then'](respondWithResult(_0x5c1914,null))[_0x7439('0x43')](handleError(_0x5c1914,null));};