Built motion from commit d5e4af8c.|2.6.23
[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 _0xc78d=['ids','getContacts','findOne','CmContact','eml-format','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','then','destroy','get','sendStatus','error','stack','name','send','index','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','filter','where','merge','map','options','CmCompany','includeAll','findAll','catch','show','params','rawAttributes','find','create','body','user','role','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','addContacts','omit'];(function(_0x272ea6,_0x3f0673){var _0x43ef03=function(_0x2307e2){while(--_0x2307e2){_0x272ea6['push'](_0x272ea6['shift']());}};_0x43ef03(++_0x3f0673);}(_0xc78d,0xfd));var _0xdc78=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xc78d[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xdc78('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xdc78('0x1'));var rp=require('request-promise');var moment=require(_0xdc78('0x2'));var BPromise=require(_0xdc78('0x3'));var Mustache=require(_0xdc78('0x4'));var util=require(_0xdc78('0x5'));var path=require('path');var sox=require(_0xdc78('0x6'));var csv=require('to-csv');var ejs=require(_0xdc78('0x7'));var fs=require('fs');var fs_extra=require(_0xdc78('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xdc78('0x9'));var jsforce=require(_0xdc78('0xa'));var deskjs=require(_0xdc78('0xb'));var toCsv=require(_0xdc78('0xc'));var querystring=require(_0xdc78('0xd'));var Papa=require(_0xdc78('0xe'));var Redis=require('ioredis');var authService=require(_0xdc78('0xf'));var qs=require(_0xdc78('0x10'));var as=require(_0xdc78('0x11'));var hardwareService=require(_0xdc78('0x12'));var logger=require(_0xdc78('0x13'))(_0xdc78('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xdc78('0x15'));var db=require(_0xdc78('0x16'))['db'];function respondWithStatusCode(_0x281911,_0x56c003){_0x56c003=_0x56c003||0xcc;return function(_0x2bec3d){if(_0x2bec3d){return _0x281911['sendStatus'](_0x56c003);}return _0x281911[_0xdc78('0x17')](_0x56c003)[_0xdc78('0x18')]();};}function respondWithResult(_0x7df72d,_0x35a281){_0x35a281=_0x35a281||0xc8;return function(_0x1252c0){if(_0x1252c0){return _0x7df72d[_0xdc78('0x17')](_0x35a281)[_0xdc78('0x19')](_0x1252c0);}};}function respondWithFilteredResult(_0x4d3c82,_0x3f3347){return function(_0x11208b){if(_0x11208b){var _0x29abbb=typeof _0x3f3347[_0xdc78('0x1a')]==='undefined'&&typeof _0x3f3347[_0xdc78('0x1b')]===_0xdc78('0x1c');var _0x461cc0=_0x11208b['count'];var _0x2c5d80=_0x29abbb?0x0:_0x3f3347[_0xdc78('0x1a')];var _0x318048=_0x29abbb?_0x11208b[_0xdc78('0x1d')]:_0x3f3347['offset']+_0x3f3347[_0xdc78('0x1b')];var _0x3b9a57;if(_0x318048>=_0x461cc0){_0x318048=_0x461cc0;_0x3b9a57=0xc8;}else{_0x3b9a57=0xce;}_0x4d3c82[_0xdc78('0x17')](_0x3b9a57);return _0x4d3c82['set'](_0xdc78('0x1e'),_0x2c5d80+'-'+_0x318048+'/'+_0x461cc0)[_0xdc78('0x19')](_0x11208b);}return null;};}function patchUpdates(_0x2d4bd7){return function(_0x123799){try{jsonpatch[_0xdc78('0x1f')](_0x123799,_0x2d4bd7,!![]);}catch(_0x224018){return BPromise[_0xdc78('0x20')](_0x224018);}return _0x123799['save']();};}function saveUpdates(_0x53c006,_0x40068f){return function(_0x3bce37){if(_0x3bce37){return _0x3bce37['update'](_0x53c006)[_0xdc78('0x21')](function(_0x52c206){return _0x52c206;});}return null;};}function removeEntity(_0x2a0df0,_0x715d32){return function(_0x125f97){if(_0x125f97){return _0x125f97[_0xdc78('0x22')]()[_0xdc78('0x21')](function(){var _0x10b558=_0x125f97[_0xdc78('0x23')]({'plain':!![]});var _0x5c3f6a='Companies';return db['UserProfileResource']['destroy']({'where':{'type':_0x5c3f6a,'resourceId':_0x10b558['id']}})[_0xdc78('0x21')](function(){return _0x125f97;});})[_0xdc78('0x21')](function(){_0x2a0df0[_0xdc78('0x17')](0xcc)[_0xdc78('0x18')]();});}};}function handleEntityNotFound(_0x5eff82,_0x945029){return function(_0x396623){if(!_0x396623){_0x5eff82[_0xdc78('0x24')](0x194);}return _0x396623;};}function handleError(_0x27b51d,_0x1c5731){_0x1c5731=_0x1c5731||0x1f4;return function(_0x34aa59){logger[_0xdc78('0x25')](_0x34aa59[_0xdc78('0x26')]);if(_0x34aa59[_0xdc78('0x27')]){delete _0x34aa59[_0xdc78('0x27')];}_0x27b51d[_0xdc78('0x17')](_0x1c5731)[_0xdc78('0x28')](_0x34aa59);};}exports[_0xdc78('0x29')]=function(_0x186dac,_0x3ea4a4){var _0xf040f5={},_0x2721c2={},_0x1b0456={'count':0x0,'rows':[]};return db['CmCompany']['describe']()['then'](function(_0x2a73fa){_0x2721c2[_0xdc78('0x2a')]=_[_0xdc78('0x2b')](_0x2a73fa);_0x2721c2[_0xdc78('0x2c')]=_[_0xdc78('0x2b')](_0x186dac[_0xdc78('0x2c')]);_0x2721c2[_0xdc78('0x2d')]=_[_0xdc78('0x2e')](_0x2721c2[_0xdc78('0x2a')],_0x2721c2[_0xdc78('0x2c')]);_0xf040f5[_0xdc78('0x2f')]=_['intersection'](_0x2721c2[_0xdc78('0x2a')],qs[_0xdc78('0x30')](_0x186dac[_0xdc78('0x2c')][_0xdc78('0x30')]));_0xf040f5['attributes']=_0xf040f5['attributes'][_0xdc78('0x31')]?_0xf040f5[_0xdc78('0x2f')]:_0x2721c2['model'];if(!_0x186dac[_0xdc78('0x2c')]['hasOwnProperty'](_0xdc78('0x32'))){_0xf040f5['limit']=qs[_0xdc78('0x1b')](_0x186dac[_0xdc78('0x2c')][_0xdc78('0x1b')]);_0xf040f5[_0xdc78('0x1a')]=qs['offset'](_0x186dac[_0xdc78('0x2c')]['offset']);}_0xf040f5[_0xdc78('0x33')]=qs['sort'](_0x186dac[_0xdc78('0x2c')][_0xdc78('0x34')]);_0xf040f5['where']=qs['filters'](_[_0xdc78('0x35')](_0x186dac[_0xdc78('0x2c')],_0x2721c2[_0xdc78('0x2d')]),_0x2a73fa);if(_0x186dac[_0xdc78('0x2c')][_0xdc78('0x36')]){_0xf040f5[_0xdc78('0x37')]=_[_0xdc78('0x38')](_0xf040f5[_0xdc78('0x37')],{'$or':_[_0xdc78('0x39')](_0xf040f5['attributes'],function(_0x23416f){var _0x831a4d={};_0x831a4d[_0x23416f]={'$like':'%'+_0x186dac[_0xdc78('0x2c')][_0xdc78('0x36')]+'%'};return _0x831a4d;})});}_0xf040f5=_[_0xdc78('0x38')]({},_0xf040f5,_0x186dac[_0xdc78('0x3a')]);var _0x9c2cca={'where':_0xf040f5[_0xdc78('0x37')]};return db[_0xdc78('0x3b')][_0xdc78('0x1d')](_0x9c2cca)[_0xdc78('0x21')](function(_0x40ce50){_0x1b0456[_0xdc78('0x1d')]=_0x40ce50;if(_0x186dac[_0xdc78('0x2c')][_0xdc78('0x3c')]){_0xf040f5['include']=[{'all':!![]}];}return db['CmCompany'][_0xdc78('0x3d')](_0xf040f5);})[_0xdc78('0x21')](function(_0x71f42){_0x1b0456['rows']=_0x71f42;return _0x1b0456;})[_0xdc78('0x21')](respondWithFilteredResult(_0x3ea4a4,_0xf040f5))['catch'](handleError(_0x3ea4a4,null));})[_0xdc78('0x3e')](handleError(_0x3ea4a4,null));};exports[_0xdc78('0x3f')]=function(_0x334cb8,_0x5550c7){var _0x316121={'raw':![],'where':{'id':_0x334cb8[_0xdc78('0x40')]['id']}},_0x595175={};_0x595175[_0xdc78('0x2a')]=_[_0xdc78('0x2b')](db[_0xdc78('0x3b')][_0xdc78('0x41')]);_0x595175[_0xdc78('0x2c')]=_[_0xdc78('0x2b')](_0x334cb8['query']);_0x595175['filters']=_[_0xdc78('0x2e')](_0x595175[_0xdc78('0x2a')],_0x595175['query']);_0x316121['attributes']=_[_0xdc78('0x2e')](_0x595175['model'],qs['fields'](_0x334cb8[_0xdc78('0x2c')][_0xdc78('0x30')]));_0x316121['attributes']=_0x316121[_0xdc78('0x2f')][_0xdc78('0x31')]?_0x316121[_0xdc78('0x2f')]:_0x595175[_0xdc78('0x2a')];if(_0x334cb8['query'][_0xdc78('0x3c')]){_0x316121['include']=[{'all':!![]}];}_0x316121=_[_0xdc78('0x38')]({},_0x316121,_0x334cb8['options']);return db['CmCompany'][_0xdc78('0x42')](_0x316121)[_0xdc78('0x21')](handleEntityNotFound(_0x5550c7,null))[_0xdc78('0x21')](respondWithResult(_0x5550c7,null))[_0xdc78('0x3e')](handleError(_0x5550c7,null));};exports[_0xdc78('0x43')]=function(_0x22e65c,_0x3e854a){return db['CmCompany'][_0xdc78('0x43')](_0x22e65c[_0xdc78('0x44')],{})[_0xdc78('0x21')](function(_0x1022ae){var _0x56f701=_0x22e65c[_0xdc78('0x45')]['get']({'plain':!![]});if(!_0x56f701)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x56f701[_0xdc78('0x46')]===_0xdc78('0x45')){var _0x1b4e49=_0x1022ae[_0xdc78('0x23')]({'plain':!![]});var _0x73b980='Companies';return db[_0xdc78('0x47')]['find']({'where':{'name':_0x73b980,'userProfileId':_0x56f701[_0xdc78('0x48')]},'raw':!![]})[_0xdc78('0x21')](function(_0x3d11f1){if(_0x3d11f1&&_0x3d11f1['autoAssociation']===0x0){return db[_0xdc78('0x49')][_0xdc78('0x43')]({'name':_0x1b4e49[_0xdc78('0x27')],'resourceId':_0x1b4e49['id'],'type':_0x3d11f1[_0xdc78('0x27')],'sectionId':_0x3d11f1['id']},{})[_0xdc78('0x21')](function(){return _0x1022ae;});}else{return _0x1022ae;}})[_0xdc78('0x3e')](function(_0x471b6f){logger[_0xdc78('0x25')](_0xdc78('0x4a'),_0x471b6f);throw _0x471b6f;});}return _0x1022ae;})[_0xdc78('0x21')](respondWithResult(_0x3e854a,0xc9))[_0xdc78('0x3e')](handleError(_0x3e854a,null));};exports[_0xdc78('0x4b')]=function(_0x503060,_0x522328){if(_0x503060[_0xdc78('0x44')]['id']){delete _0x503060[_0xdc78('0x44')]['id'];}return db[_0xdc78('0x3b')][_0xdc78('0x42')]({'where':{'id':_0x503060['params']['id']}})[_0xdc78('0x21')](handleEntityNotFound(_0x522328,null))['then'](saveUpdates(_0x503060['body'],null))[_0xdc78('0x21')](respondWithResult(_0x522328,null))[_0xdc78('0x3e')](handleError(_0x522328,null));};exports['destroy']=function(_0x2d2faa,_0x4b96d4){return db['CmCompany']['find']({'where':{'id':_0x2d2faa[_0xdc78('0x40')]['id']}})[_0xdc78('0x21')](handleEntityNotFound(_0x4b96d4,null))['then'](removeEntity(_0x4b96d4,null))[_0xdc78('0x3e')](handleError(_0x4b96d4,null));};exports[_0xdc78('0x4c')]=function(_0x54f302,_0x32867e){return db[_0xdc78('0x3b')][_0xdc78('0x4c')]()['then'](respondWithResult(_0x32867e,null))['catch'](handleError(_0x32867e,null));};exports[_0xdc78('0x4d')]=function(_0x5801c3,_0x3f5207,_0x30bec9){return db['CmContact']['find']({'where':{'id':_0x5801c3['params']['id']}})[_0xdc78('0x21')](handleEntityNotFound(_0x3f5207,null))[_0xdc78('0x21')](function(_0x7a6df9){if(_0x7a6df9){return _0x7a6df9[_0xdc78('0x4d')](_0x5801c3[_0xdc78('0x44')]['ids'],_[_0xdc78('0x4e')](_0x5801c3[_0xdc78('0x44')],[_0xdc78('0x4f'),'id'])||{});}})['then'](respondWithResult(_0x3f5207,null))[_0xdc78('0x3e')](handleError(_0x3f5207,null));};exports[_0xdc78('0x50')]=function(_0x35d591,_0x11c799,_0x16689b){var _0x5bd59a={};var _0x1d30dd={};var _0x5b5cef;var _0x4a2b3d;return db[_0xdc78('0x3b')][_0xdc78('0x51')]({'where':{'id':_0x35d591[_0xdc78('0x40')]['id']}})[_0xdc78('0x21')](handleEntityNotFound(_0x11c799,null))[_0xdc78('0x21')](function(_0x4f7c9e){if(_0x4f7c9e){_0x5b5cef=_0x4f7c9e;_0x1d30dd[_0xdc78('0x2a')]=_['keys'](db[_0xdc78('0x52')][_0xdc78('0x41')]);_0x1d30dd[_0xdc78('0x2c')]=_[_0xdc78('0x2b')](_0x35d591[_0xdc78('0x2c')]);_0x1d30dd['filters']=_[_0xdc78('0x2e')](_0x1d30dd['model'],_0x1d30dd['query']);_0x5bd59a['attributes']=_[_0xdc78('0x2e')](_0x1d30dd[_0xdc78('0x2a')],qs[_0xdc78('0x30')](_0x35d591[_0xdc78('0x2c')][_0xdc78('0x30')]));_0x5bd59a[_0xdc78('0x2f')]=_0x5bd59a[_0xdc78('0x2f')]['length']?_0x5bd59a[_0xdc78('0x2f')]:_0x1d30dd[_0xdc78('0x2a')];_0x5bd59a[_0xdc78('0x33')]=qs[_0xdc78('0x34')](_0x35d591[_0xdc78('0x2c')]['sort']);_0x5bd59a[_0xdc78('0x37')]=qs[_0xdc78('0x2d')](_[_0xdc78('0x35')](_0x35d591[_0xdc78('0x2c')],_0x1d30dd[_0xdc78('0x2d')]));if(_0x35d591[_0xdc78('0x2c')][_0xdc78('0x36')]){_0x5bd59a[_0xdc78('0x37')]=_['merge'](_0x5bd59a[_0xdc78('0x37')],{'$or':_[_0xdc78('0x39')](_0x5bd59a['attributes'],function(_0x2ea7f1){var _0x1f3f94={};_0x1f3f94[_0x2ea7f1]={'$like':'%'+_0x35d591[_0xdc78('0x2c')][_0xdc78('0x36')]+'%'};return _0x1f3f94;})});}_0x5bd59a=_[_0xdc78('0x38')]({},_0x5bd59a,_0x35d591[_0xdc78('0x3a')]);return _0x5b5cef[_0xdc78('0x50')](_0x5bd59a);}})[_0xdc78('0x21')](function(_0x3d5ccd){if(_0x3d5ccd){_0x4a2b3d=_0x3d5ccd[_0xdc78('0x31')];if(!_0x35d591[_0xdc78('0x2c')]['hasOwnProperty']('nolimit')){_0x5bd59a['limit']=qs[_0xdc78('0x1b')](_0x35d591[_0xdc78('0x2c')]['limit']);_0x5bd59a[_0xdc78('0x1a')]=qs[_0xdc78('0x1a')](_0x35d591[_0xdc78('0x2c')]['offset']);}return _0x5b5cef['getContacts'](_0x5bd59a);}})[_0xdc78('0x21')](function(_0x25b5aa){if(_0x25b5aa){return _0x25b5aa?{'count':_0x4a2b3d,'rows':_0x25b5aa}:null;}})[_0xdc78('0x21')](respondWithResult(_0x11c799,null))[_0xdc78('0x3e')](handleError(_0x11c799,null));};