Built motion from commit efa66e19.|2.6.22
[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 _0x9a20=['hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','includeAll','include','findAll','catch','show','params','rawAttributes','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','update','addContacts','CmContact','ids','getContacts','findOne','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','undefined','limit','offset','count','set','apply','reject','then','destroy','get','Companies','sendStatus','error','name','send','index','CmCompany','describe','model','keys','query','filters','intersection','attributes','fields','length'];(function(_0xad9d4d,_0x5bf432){var _0x195e72=function(_0x1d2e78){while(--_0x1d2e78){_0xad9d4d['push'](_0xad9d4d['shift']());}};_0x195e72(++_0x5bf432);}(_0x9a20,0x16f));var _0x09a2=function(_0x1b5855,_0xd30d2c){_0x1b5855=_0x1b5855-0x0;var _0x461e4d=_0x9a20[_0x1b5855];return _0x461e4d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x09a2('0x0'));var zipdir=require(_0x09a2('0x1'));var jsonpatch=require(_0x09a2('0x2'));var rp=require(_0x09a2('0x3'));var moment=require(_0x09a2('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x09a2('0x5'));var path=require('path');var sox=require(_0x09a2('0x6'));var csv=require(_0x09a2('0x7'));var ejs=require(_0x09a2('0x8'));var fs=require('fs');var fs_extra=require(_0x09a2('0x9'));var _=require(_0x09a2('0xa'));var squel=require(_0x09a2('0xb'));var crypto=require(_0x09a2('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x09a2('0x7'));var querystring=require(_0x09a2('0xd'));var Papa=require(_0x09a2('0xe'));var Redis=require('ioredis');var authService=require(_0x09a2('0xf'));var qs=require(_0x09a2('0x10'));var as=require(_0x09a2('0x11'));var hardwareService=require(_0x09a2('0x12'));var logger=require(_0x09a2('0x13'))(_0x09a2('0x14'));var utils=require(_0x09a2('0x15'));var config=require(_0x09a2('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x09a2('0x17'))['db'];function respondWithStatusCode(_0x4f8595,_0x340396){_0x340396=_0x340396||0xcc;return function(_0x344bbe){if(_0x344bbe){return _0x4f8595['sendStatus'](_0x340396);}return _0x4f8595[_0x09a2('0x18')](_0x340396)[_0x09a2('0x19')]();};}function respondWithResult(_0x2e4104,_0x32056c){_0x32056c=_0x32056c||0xc8;return function(_0x46bb40){if(_0x46bb40){return _0x2e4104[_0x09a2('0x18')](_0x32056c)[_0x09a2('0x1a')](_0x46bb40);}};}function respondWithFilteredResult(_0x17c530,_0x3ace99){return function(_0x4067e9){if(_0x4067e9){var _0x322339=typeof _0x3ace99['offset']===_0x09a2('0x1b')&&typeof _0x3ace99[_0x09a2('0x1c')]===_0x09a2('0x1b');var _0xbc956=_0x4067e9['count'];var _0x540ac7=_0x322339?0x0:_0x3ace99[_0x09a2('0x1d')];var _0x53d421=_0x322339?_0x4067e9[_0x09a2('0x1e')]:_0x3ace99[_0x09a2('0x1d')]+_0x3ace99['limit'];var _0x5adca8;if(_0x53d421>=_0xbc956){_0x53d421=_0xbc956;_0x5adca8=0xc8;}else{_0x5adca8=0xce;}_0x17c530[_0x09a2('0x18')](_0x5adca8);return _0x17c530[_0x09a2('0x1f')]('Content-Range',_0x540ac7+'-'+_0x53d421+'/'+_0xbc956)['json'](_0x4067e9);}return null;};}function patchUpdates(_0x107895){return function(_0x4f835e){try{jsonpatch[_0x09a2('0x20')](_0x4f835e,_0x107895,!![]);}catch(_0x55727f){return BPromise[_0x09a2('0x21')](_0x55727f);}return _0x4f835e['save']();};}function saveUpdates(_0x3eca0c,_0x388055){return function(_0x3d02b3){if(_0x3d02b3){return _0x3d02b3['update'](_0x3eca0c)[_0x09a2('0x22')](function(_0x114311){return _0x114311;});}return null;};}function removeEntity(_0x108938,_0x563642){return function(_0x440bdd){if(_0x440bdd){return _0x440bdd[_0x09a2('0x23')]()[_0x09a2('0x22')](function(){var _0x1d6abe=_0x440bdd[_0x09a2('0x24')]({'plain':!![]});var _0x6591b2=_0x09a2('0x25');return db['UserProfileResource'][_0x09a2('0x23')]({'where':{'type':_0x6591b2,'resourceId':_0x1d6abe['id']}})['then'](function(){return _0x440bdd;});})['then'](function(){_0x108938[_0x09a2('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d0ae6,_0x3097cd){return function(_0x4c690f){if(!_0x4c690f){_0x1d0ae6[_0x09a2('0x26')](0x194);}return _0x4c690f;};}function handleError(_0x10192f,_0x6a5f05){_0x6a5f05=_0x6a5f05||0x1f4;return function(_0x399120){logger[_0x09a2('0x27')](_0x399120['stack']);if(_0x399120[_0x09a2('0x28')]){delete _0x399120[_0x09a2('0x28')];}_0x10192f[_0x09a2('0x18')](_0x6a5f05)[_0x09a2('0x29')](_0x399120);};}exports[_0x09a2('0x2a')]=function(_0x37a7e8,_0x509fcd){var _0x53743={},_0x6778d3={},_0x38cf1f={'count':0x0,'rows':[]};return db[_0x09a2('0x2b')][_0x09a2('0x2c')]()['then'](function(_0x5a97b7){_0x6778d3[_0x09a2('0x2d')]=_[_0x09a2('0x2e')](_0x5a97b7);_0x6778d3[_0x09a2('0x2f')]=_[_0x09a2('0x2e')](_0x37a7e8['query']);_0x6778d3[_0x09a2('0x30')]=_[_0x09a2('0x31')](_0x6778d3['model'],_0x6778d3[_0x09a2('0x2f')]);_0x53743[_0x09a2('0x32')]=_[_0x09a2('0x31')](_0x6778d3['model'],qs[_0x09a2('0x33')](_0x37a7e8['query'][_0x09a2('0x33')]));_0x53743['attributes']=_0x53743['attributes'][_0x09a2('0x34')]?_0x53743['attributes']:_0x6778d3['model'];if(!_0x37a7e8[_0x09a2('0x2f')][_0x09a2('0x35')](_0x09a2('0x36'))){_0x53743[_0x09a2('0x1c')]=qs[_0x09a2('0x1c')](_0x37a7e8['query'][_0x09a2('0x1c')]);_0x53743[_0x09a2('0x1d')]=qs[_0x09a2('0x1d')](_0x37a7e8[_0x09a2('0x2f')][_0x09a2('0x1d')]);}_0x53743[_0x09a2('0x37')]=qs[_0x09a2('0x38')](_0x37a7e8[_0x09a2('0x2f')][_0x09a2('0x38')]);_0x53743[_0x09a2('0x39')]=qs[_0x09a2('0x30')](_[_0x09a2('0x3a')](_0x37a7e8[_0x09a2('0x2f')],_0x6778d3['filters']),_0x5a97b7);if(_0x37a7e8[_0x09a2('0x2f')][_0x09a2('0x3b')]){_0x53743[_0x09a2('0x39')]=_[_0x09a2('0x3c')](_0x53743[_0x09a2('0x39')],{'$or':_[_0x09a2('0x3d')](_0x53743[_0x09a2('0x32')],function(_0xa2040e){var _0x2ad5cc={};_0x2ad5cc[_0xa2040e]={'$like':'%'+_0x37a7e8[_0x09a2('0x2f')][_0x09a2('0x3b')]+'%'};return _0x2ad5cc;})});}_0x53743=_['merge']({},_0x53743,_0x37a7e8['options']);var _0x44dfd8={'where':_0x53743[_0x09a2('0x39')]};return db[_0x09a2('0x2b')][_0x09a2('0x1e')](_0x44dfd8)['then'](function(_0x2a0199){_0x38cf1f['count']=_0x2a0199;if(_0x37a7e8[_0x09a2('0x2f')][_0x09a2('0x3e')]){_0x53743[_0x09a2('0x3f')]=[{'all':!![]}];}return db[_0x09a2('0x2b')][_0x09a2('0x40')](_0x53743);})[_0x09a2('0x22')](function(_0x33bcd6){_0x38cf1f['rows']=_0x33bcd6;return _0x38cf1f;})[_0x09a2('0x22')](respondWithFilteredResult(_0x509fcd,_0x53743))[_0x09a2('0x41')](handleError(_0x509fcd,null));})[_0x09a2('0x41')](handleError(_0x509fcd,null));};exports[_0x09a2('0x42')]=function(_0x37e039,_0x58eac9){var _0x3e4270={'raw':![],'where':{'id':_0x37e039[_0x09a2('0x43')]['id']}},_0x338d13={};_0x338d13[_0x09a2('0x2d')]=_[_0x09a2('0x2e')](db['CmCompany'][_0x09a2('0x44')]);_0x338d13[_0x09a2('0x2f')]=_[_0x09a2('0x2e')](_0x37e039[_0x09a2('0x2f')]);_0x338d13['filters']=_[_0x09a2('0x31')](_0x338d13[_0x09a2('0x2d')],_0x338d13[_0x09a2('0x2f')]);_0x3e4270[_0x09a2('0x32')]=_[_0x09a2('0x31')](_0x338d13[_0x09a2('0x2d')],qs[_0x09a2('0x33')](_0x37e039[_0x09a2('0x2f')][_0x09a2('0x33')]));_0x3e4270[_0x09a2('0x32')]=_0x3e4270[_0x09a2('0x32')][_0x09a2('0x34')]?_0x3e4270[_0x09a2('0x32')]:_0x338d13[_0x09a2('0x2d')];if(_0x37e039['query']['includeAll']){_0x3e4270[_0x09a2('0x3f')]=[{'all':!![]}];}_0x3e4270=_[_0x09a2('0x3c')]({},_0x3e4270,_0x37e039[_0x09a2('0x45')]);return db[_0x09a2('0x2b')][_0x09a2('0x46')](_0x3e4270)['then'](handleEntityNotFound(_0x58eac9,null))[_0x09a2('0x22')](respondWithResult(_0x58eac9,null))[_0x09a2('0x41')](handleError(_0x58eac9,null));};exports[_0x09a2('0x47')]=function(_0x167d05,_0x20f3cf){return db[_0x09a2('0x2b')]['create'](_0x167d05[_0x09a2('0x48')],{})[_0x09a2('0x22')](function(_0x568d1b){var _0x499f1c=_0x167d05['user'][_0x09a2('0x24')]({'plain':!![]});if(!_0x499f1c)throw new Error(_0x09a2('0x49'));if(_0x499f1c[_0x09a2('0x4a')]==='user'){var _0x3c1811=_0x568d1b[_0x09a2('0x24')]({'plain':!![]});var _0x53963d='Companies';return db[_0x09a2('0x4b')][_0x09a2('0x46')]({'where':{'name':_0x53963d,'userProfileId':_0x499f1c[_0x09a2('0x4c')]},'raw':!![]})[_0x09a2('0x22')](function(_0x891a48){if(_0x891a48&&_0x891a48['autoAssociation']===0x0){return db[_0x09a2('0x4d')]['create']({'name':_0x3c1811[_0x09a2('0x28')],'resourceId':_0x3c1811['id'],'type':_0x891a48[_0x09a2('0x28')],'sectionId':_0x891a48['id']},{})[_0x09a2('0x22')](function(){return _0x568d1b;});}else{return _0x568d1b;}})[_0x09a2('0x41')](function(_0x344746){logger[_0x09a2('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x344746);throw _0x344746;});}return _0x568d1b;})['then'](respondWithResult(_0x20f3cf,0xc9))[_0x09a2('0x41')](handleError(_0x20f3cf,null));};exports[_0x09a2('0x4e')]=function(_0x22f9be,_0x3eaa02){if(_0x22f9be[_0x09a2('0x48')]['id']){delete _0x22f9be[_0x09a2('0x48')]['id'];}return db[_0x09a2('0x2b')][_0x09a2('0x46')]({'where':{'id':_0x22f9be[_0x09a2('0x43')]['id']}})[_0x09a2('0x22')](handleEntityNotFound(_0x3eaa02,null))[_0x09a2('0x22')](saveUpdates(_0x22f9be[_0x09a2('0x48')],null))['then'](respondWithResult(_0x3eaa02,null))[_0x09a2('0x41')](handleError(_0x3eaa02,null));};exports[_0x09a2('0x23')]=function(_0x1c67fc,_0x58ffcc){return db[_0x09a2('0x2b')][_0x09a2('0x46')]({'where':{'id':_0x1c67fc['params']['id']}})[_0x09a2('0x22')](handleEntityNotFound(_0x58ffcc,null))['then'](removeEntity(_0x58ffcc,null))[_0x09a2('0x41')](handleError(_0x58ffcc,null));};exports[_0x09a2('0x2c')]=function(_0x5f485c,_0x50454b){return db['CmCompany'][_0x09a2('0x2c')]()['then'](respondWithResult(_0x50454b,null))['catch'](handleError(_0x50454b,null));};exports[_0x09a2('0x4f')]=function(_0x2dc21d,_0x8c1b3,_0x5e1c9c){return db[_0x09a2('0x50')]['find']({'where':{'id':_0x2dc21d[_0x09a2('0x43')]['id']}})[_0x09a2('0x22')](handleEntityNotFound(_0x8c1b3,null))[_0x09a2('0x22')](function(_0x2b3203){if(_0x2b3203){return _0x2b3203['addContacts'](_0x2dc21d[_0x09a2('0x48')][_0x09a2('0x51')],_['omit'](_0x2dc21d[_0x09a2('0x48')],['ids','id'])||{});}})[_0x09a2('0x22')](respondWithResult(_0x8c1b3,null))['catch'](handleError(_0x8c1b3,null));};exports[_0x09a2('0x52')]=function(_0x718416,_0x443091,_0x5e97df){var _0x5f17f0={};var _0x5ec6c3={};var _0x50bd50;var _0x45256a;return db['CmCompany'][_0x09a2('0x53')]({'where':{'id':_0x718416[_0x09a2('0x43')]['id']}})[_0x09a2('0x22')](handleEntityNotFound(_0x443091,null))[_0x09a2('0x22')](function(_0x4bc797){if(_0x4bc797){_0x50bd50=_0x4bc797;_0x5ec6c3[_0x09a2('0x2d')]=_[_0x09a2('0x2e')](db[_0x09a2('0x50')][_0x09a2('0x44')]);_0x5ec6c3['query']=_[_0x09a2('0x2e')](_0x718416[_0x09a2('0x2f')]);_0x5ec6c3[_0x09a2('0x30')]=_['intersection'](_0x5ec6c3[_0x09a2('0x2d')],_0x5ec6c3[_0x09a2('0x2f')]);_0x5f17f0[_0x09a2('0x32')]=_[_0x09a2('0x31')](_0x5ec6c3[_0x09a2('0x2d')],qs[_0x09a2('0x33')](_0x718416[_0x09a2('0x2f')]['fields']));_0x5f17f0[_0x09a2('0x32')]=_0x5f17f0['attributes']['length']?_0x5f17f0[_0x09a2('0x32')]:_0x5ec6c3[_0x09a2('0x2d')];_0x5f17f0[_0x09a2('0x37')]=qs[_0x09a2('0x38')](_0x718416[_0x09a2('0x2f')][_0x09a2('0x38')]);_0x5f17f0[_0x09a2('0x39')]=qs[_0x09a2('0x30')](_['pick'](_0x718416[_0x09a2('0x2f')],_0x5ec6c3[_0x09a2('0x30')]));if(_0x718416[_0x09a2('0x2f')]['filter']){_0x5f17f0['where']=_[_0x09a2('0x3c')](_0x5f17f0['where'],{'$or':_[_0x09a2('0x3d')](_0x5f17f0['attributes'],function(_0x51f5f6){var _0x4d0cf4={};_0x4d0cf4[_0x51f5f6]={'$like':'%'+_0x718416[_0x09a2('0x2f')][_0x09a2('0x3b')]+'%'};return _0x4d0cf4;})});}_0x5f17f0=_['merge']({},_0x5f17f0,_0x718416[_0x09a2('0x45')]);return _0x50bd50['getContacts'](_0x5f17f0);}})[_0x09a2('0x22')](function(_0x4c7934){if(_0x4c7934){_0x45256a=_0x4c7934[_0x09a2('0x34')];if(!_0x718416['query'][_0x09a2('0x35')](_0x09a2('0x36'))){_0x5f17f0[_0x09a2('0x1c')]=qs[_0x09a2('0x1c')](_0x718416['query'][_0x09a2('0x1c')]);_0x5f17f0[_0x09a2('0x1d')]=qs[_0x09a2('0x1d')](_0x718416[_0x09a2('0x2f')][_0x09a2('0x1d')]);}return _0x50bd50[_0x09a2('0x52')](_0x5f17f0);}})['then'](function(_0xa1fa98){if(_0xa1fa98){return _0xa1fa98?{'count':_0x45256a,'rows':_0xa1fa98}:null;}})['then'](respondWithResult(_0x443091,null))['catch'](handleError(_0x443091,null));};