Built motion from commit f67b3b02.|2.6.31
[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 _0x7a67=['show','params','length','include','find','create','body','user','role','UserProfileSection','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','omit','CmContact','rawAttributes','getContacts','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','undefined','count','offset','limit','Content-Range','json','apply','update','destroy','then','get','UserProfileResource','stack','name','send','index','describe','model','keys','query','intersection','attributes','fields','order','sort','where','pick','filters','filter','merge','map','options','CmCompany','includeAll','findAll','rows','catch'];(function(_0x3877c6,_0x12bb7f){var _0x4e3936=function(_0x1aaa93){while(--_0x1aaa93){_0x3877c6['push'](_0x3877c6['shift']());}};_0x4e3936(++_0x12bb7f);}(_0x7a67,0x10e));var _0x77a6=function(_0x41462e,_0x4af00a){_0x41462e=_0x41462e-0x0;var _0x354bc1=_0x7a67[_0x41462e];return _0x354bc1;};'use strict';var emlformat=require(_0x77a6('0x0'));var rimraf=require(_0x77a6('0x1'));var zipdir=require(_0x77a6('0x2'));var jsonpatch=require(_0x77a6('0x3'));var rp=require(_0x77a6('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x77a6('0x5'));var util=require('util');var path=require(_0x77a6('0x6'));var sox=require(_0x77a6('0x7'));var csv=require('to-csv');var ejs=require(_0x77a6('0x8'));var fs=require('fs');var fs_extra=require(_0x77a6('0x9'));var _=require(_0x77a6('0xa'));var squel=require(_0x77a6('0xb'));var crypto=require(_0x77a6('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x77a6('0xd'));var toCsv=require(_0x77a6('0xe'));var querystring=require(_0x77a6('0xf'));var Papa=require(_0x77a6('0x10'));var Redis=require(_0x77a6('0x11'));var authService=require(_0x77a6('0x12'));var qs=require(_0x77a6('0x13'));var as=require(_0x77a6('0x14'));var hardwareService=require(_0x77a6('0x15'));var logger=require(_0x77a6('0x16'))(_0x77a6('0x17'));var utils=require('../../config/utils');var config=require(_0x77a6('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x77a6('0x19'))['db'];function respondWithStatusCode(_0x2b1215,_0x10e850){_0x10e850=_0x10e850||0xcc;return function(_0x38fa78){if(_0x38fa78){return _0x2b1215[_0x77a6('0x1a')](_0x10e850);}return _0x2b1215[_0x77a6('0x1b')](_0x10e850)[_0x77a6('0x1c')]();};}function respondWithResult(_0x5d2cf3,_0x1d5997){_0x1d5997=_0x1d5997||0xc8;return function(_0xa5cc0b){if(_0xa5cc0b){return _0x5d2cf3[_0x77a6('0x1b')](_0x1d5997)['json'](_0xa5cc0b);}};}function respondWithFilteredResult(_0x343bc0,_0x4762d9){return function(_0x3c8561){if(_0x3c8561){var _0x3997bb=typeof _0x4762d9['offset']===_0x77a6('0x1d')&&typeof _0x4762d9['limit']===_0x77a6('0x1d');var _0x43efd0=_0x3c8561[_0x77a6('0x1e')];var _0x5cb482=_0x3997bb?0x0:_0x4762d9['offset'];var _0x9cd957=_0x3997bb?_0x3c8561[_0x77a6('0x1e')]:_0x4762d9[_0x77a6('0x1f')]+_0x4762d9[_0x77a6('0x20')];var _0x4410c2;if(_0x9cd957>=_0x43efd0){_0x9cd957=_0x43efd0;_0x4410c2=0xc8;}else{_0x4410c2=0xce;}_0x343bc0[_0x77a6('0x1b')](_0x4410c2);return _0x343bc0['set'](_0x77a6('0x21'),_0x5cb482+'-'+_0x9cd957+'/'+_0x43efd0)[_0x77a6('0x22')](_0x3c8561);}return null;};}function patchUpdates(_0x502e70){return function(_0x448b49){try{jsonpatch[_0x77a6('0x23')](_0x448b49,_0x502e70,!![]);}catch(_0x1b74a7){return BPromise['reject'](_0x1b74a7);}return _0x448b49['save']();};}function saveUpdates(_0x132c23,_0x1c61cc){return function(_0x19334f){if(_0x19334f){return _0x19334f[_0x77a6('0x24')](_0x132c23)['then'](function(_0xccdc75){return _0xccdc75;});}return null;};}function removeEntity(_0x771e00,_0xd448cb){return function(_0x534694){if(_0x534694){return _0x534694[_0x77a6('0x25')]()[_0x77a6('0x26')](function(){var _0x2fdc41=_0x534694[_0x77a6('0x27')]({'plain':!![]});var _0xc281e7='Companies';return db[_0x77a6('0x28')]['destroy']({'where':{'type':_0xc281e7,'resourceId':_0x2fdc41['id']}})['then'](function(){return _0x534694;});})[_0x77a6('0x26')](function(){_0x771e00['status'](0xcc)[_0x77a6('0x1c')]();});}};}function handleEntityNotFound(_0x2729ee,_0x4aaf8a){return function(_0x3911a8){if(!_0x3911a8){_0x2729ee[_0x77a6('0x1a')](0x194);}return _0x3911a8;};}function handleError(_0x45207f,_0x4da1c6){_0x4da1c6=_0x4da1c6||0x1f4;return function(_0x52831b){logger['error'](_0x52831b[_0x77a6('0x29')]);if(_0x52831b[_0x77a6('0x2a')]){delete _0x52831b[_0x77a6('0x2a')];}_0x45207f[_0x77a6('0x1b')](_0x4da1c6)[_0x77a6('0x2b')](_0x52831b);};}exports[_0x77a6('0x2c')]=function(_0x2d2f77,_0x689fb3){var _0x3809e7={},_0xfb485b={},_0x534f2c={'count':0x0,'rows':[]};return db['CmCompany'][_0x77a6('0x2d')]()[_0x77a6('0x26')](function(_0x39cf57){_0xfb485b[_0x77a6('0x2e')]=_[_0x77a6('0x2f')](_0x39cf57);_0xfb485b[_0x77a6('0x30')]=_['keys'](_0x2d2f77[_0x77a6('0x30')]);_0xfb485b['filters']=_[_0x77a6('0x31')](_0xfb485b[_0x77a6('0x2e')],_0xfb485b[_0x77a6('0x30')]);_0x3809e7[_0x77a6('0x32')]=_['intersection'](_0xfb485b[_0x77a6('0x2e')],qs[_0x77a6('0x33')](_0x2d2f77['query'][_0x77a6('0x33')]));_0x3809e7[_0x77a6('0x32')]=_0x3809e7['attributes']['length']?_0x3809e7[_0x77a6('0x32')]:_0xfb485b[_0x77a6('0x2e')];if(!_0x2d2f77[_0x77a6('0x30')]['hasOwnProperty']('nolimit')){_0x3809e7[_0x77a6('0x20')]=qs['limit'](_0x2d2f77[_0x77a6('0x30')][_0x77a6('0x20')]);_0x3809e7[_0x77a6('0x1f')]=qs['offset'](_0x2d2f77[_0x77a6('0x30')][_0x77a6('0x1f')]);}_0x3809e7[_0x77a6('0x34')]=qs[_0x77a6('0x35')](_0x2d2f77[_0x77a6('0x30')][_0x77a6('0x35')]);_0x3809e7[_0x77a6('0x36')]=qs['filters'](_[_0x77a6('0x37')](_0x2d2f77[_0x77a6('0x30')],_0xfb485b[_0x77a6('0x38')]),_0x39cf57);if(_0x2d2f77['query'][_0x77a6('0x39')]){_0x3809e7['where']=_[_0x77a6('0x3a')](_0x3809e7[_0x77a6('0x36')],{'$or':_[_0x77a6('0x3b')](_0x3809e7[_0x77a6('0x32')],function(_0x5ac8cc){var _0x4793c9={};_0x4793c9[_0x5ac8cc]={'$like':'%'+_0x2d2f77[_0x77a6('0x30')]['filter']+'%'};return _0x4793c9;})});}_0x3809e7=_[_0x77a6('0x3a')]({},_0x3809e7,_0x2d2f77[_0x77a6('0x3c')]);var _0x1aa89c={'where':_0x3809e7[_0x77a6('0x36')]};return db[_0x77a6('0x3d')]['count'](_0x1aa89c)[_0x77a6('0x26')](function(_0x5b3620){_0x534f2c['count']=_0x5b3620;if(_0x2d2f77[_0x77a6('0x30')][_0x77a6('0x3e')]){_0x3809e7['include']=[{'all':!![]}];}return db[_0x77a6('0x3d')][_0x77a6('0x3f')](_0x3809e7);})[_0x77a6('0x26')](function(_0x268ee4){_0x534f2c[_0x77a6('0x40')]=_0x268ee4;return _0x534f2c;})[_0x77a6('0x26')](respondWithFilteredResult(_0x689fb3,_0x3809e7))[_0x77a6('0x41')](handleError(_0x689fb3,null));})[_0x77a6('0x41')](handleError(_0x689fb3,null));};exports[_0x77a6('0x42')]=function(_0x214de4,_0x40e5a8){var _0x2ebf99={'raw':![],'where':{'id':_0x214de4[_0x77a6('0x43')]['id']}},_0x527102={};_0x527102['model']=_['keys'](db[_0x77a6('0x3d')]['rawAttributes']);_0x527102[_0x77a6('0x30')]=_['keys'](_0x214de4[_0x77a6('0x30')]);_0x527102[_0x77a6('0x38')]=_['intersection'](_0x527102['model'],_0x527102[_0x77a6('0x30')]);_0x2ebf99['attributes']=_[_0x77a6('0x31')](_0x527102[_0x77a6('0x2e')],qs[_0x77a6('0x33')](_0x214de4[_0x77a6('0x30')]['fields']));_0x2ebf99[_0x77a6('0x32')]=_0x2ebf99[_0x77a6('0x32')][_0x77a6('0x44')]?_0x2ebf99[_0x77a6('0x32')]:_0x527102['model'];if(_0x214de4[_0x77a6('0x30')][_0x77a6('0x3e')]){_0x2ebf99[_0x77a6('0x45')]=[{'all':!![]}];}_0x2ebf99=_['merge']({},_0x2ebf99,_0x214de4[_0x77a6('0x3c')]);return db[_0x77a6('0x3d')][_0x77a6('0x46')](_0x2ebf99)[_0x77a6('0x26')](handleEntityNotFound(_0x40e5a8,null))['then'](respondWithResult(_0x40e5a8,null))[_0x77a6('0x41')](handleError(_0x40e5a8,null));};exports[_0x77a6('0x47')]=function(_0x1bcafd,_0x558583){return db[_0x77a6('0x3d')][_0x77a6('0x47')](_0x1bcafd[_0x77a6('0x48')],{})[_0x77a6('0x26')](function(_0x5b2a5a){var _0x4c2149=_0x1bcafd[_0x77a6('0x49')][_0x77a6('0x27')]({'plain':!![]});if(!_0x4c2149)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4c2149[_0x77a6('0x4a')]===_0x77a6('0x49')){var _0x1f0ae0=_0x5b2a5a[_0x77a6('0x27')]({'plain':!![]});var _0x2150c4='Companies';return db[_0x77a6('0x4b')][_0x77a6('0x46')]({'where':{'name':_0x2150c4,'userProfileId':_0x4c2149['userProfileId']},'raw':!![]})[_0x77a6('0x26')](function(_0x340c63){if(_0x340c63&&_0x340c63['autoAssociation']===0x0){return db[_0x77a6('0x28')][_0x77a6('0x47')]({'name':_0x1f0ae0[_0x77a6('0x2a')],'resourceId':_0x1f0ae0['id'],'type':_0x340c63[_0x77a6('0x2a')],'sectionId':_0x340c63['id']},{})[_0x77a6('0x26')](function(){return _0x5b2a5a;});}else{return _0x5b2a5a;}})['catch'](function(_0x1b44db){logger[_0x77a6('0x4c')](_0x77a6('0x4d'),_0x1b44db);throw _0x1b44db;});}return _0x5b2a5a;})[_0x77a6('0x26')](respondWithResult(_0x558583,0xc9))[_0x77a6('0x41')](handleError(_0x558583,null));};exports[_0x77a6('0x24')]=function(_0x17a437,_0x5e9009){if(_0x17a437[_0x77a6('0x48')]['id']){delete _0x17a437[_0x77a6('0x48')]['id'];}return db[_0x77a6('0x3d')][_0x77a6('0x46')]({'where':{'id':_0x17a437[_0x77a6('0x43')]['id']}})[_0x77a6('0x26')](handleEntityNotFound(_0x5e9009,null))[_0x77a6('0x26')](saveUpdates(_0x17a437['body'],null))['then'](respondWithResult(_0x5e9009,null))[_0x77a6('0x41')](handleError(_0x5e9009,null));};exports[_0x77a6('0x25')]=function(_0x36b736,_0x43f791){return db[_0x77a6('0x3d')]['find']({'where':{'id':_0x36b736[_0x77a6('0x43')]['id']}})[_0x77a6('0x26')](handleEntityNotFound(_0x43f791,null))['then'](removeEntity(_0x43f791,null))[_0x77a6('0x41')](handleError(_0x43f791,null));};exports[_0x77a6('0x2d')]=function(_0x417091,_0x223dc5){return db[_0x77a6('0x3d')][_0x77a6('0x2d')]()['then'](respondWithResult(_0x223dc5,null))[_0x77a6('0x41')](handleError(_0x223dc5,null));};exports['addContacts']=function(_0x2e4a,_0x317c7f,_0x398003){return db['CmContact'][_0x77a6('0x46')]({'where':{'id':_0x2e4a[_0x77a6('0x43')]['id']}})[_0x77a6('0x26')](handleEntityNotFound(_0x317c7f,null))[_0x77a6('0x26')](function(_0xf1da7b){if(_0xf1da7b){return _0xf1da7b[_0x77a6('0x4e')](_0x2e4a[_0x77a6('0x48')]['ids'],_[_0x77a6('0x4f')](_0x2e4a[_0x77a6('0x48')],['ids','id'])||{});}})[_0x77a6('0x26')](respondWithResult(_0x317c7f,null))[_0x77a6('0x41')](handleError(_0x317c7f,null));};exports['getContacts']=function(_0x37c2bd,_0x546e70,_0x62f0d2){var _0x331eed={};var _0x30d3d1={};var _0x54fd7b;var _0xa9516;return db[_0x77a6('0x3d')]['findOne']({'where':{'id':_0x37c2bd[_0x77a6('0x43')]['id']}})[_0x77a6('0x26')](handleEntityNotFound(_0x546e70,null))[_0x77a6('0x26')](function(_0x571134){if(_0x571134){_0x54fd7b=_0x571134;_0x30d3d1[_0x77a6('0x2e')]=_[_0x77a6('0x2f')](db[_0x77a6('0x50')][_0x77a6('0x51')]);_0x30d3d1[_0x77a6('0x30')]=_[_0x77a6('0x2f')](_0x37c2bd[_0x77a6('0x30')]);_0x30d3d1[_0x77a6('0x38')]=_[_0x77a6('0x31')](_0x30d3d1[_0x77a6('0x2e')],_0x30d3d1['query']);_0x331eed[_0x77a6('0x32')]=_['intersection'](_0x30d3d1[_0x77a6('0x2e')],qs[_0x77a6('0x33')](_0x37c2bd['query'][_0x77a6('0x33')]));_0x331eed[_0x77a6('0x32')]=_0x331eed[_0x77a6('0x32')][_0x77a6('0x44')]?_0x331eed['attributes']:_0x30d3d1[_0x77a6('0x2e')];_0x331eed[_0x77a6('0x34')]=qs[_0x77a6('0x35')](_0x37c2bd[_0x77a6('0x30')][_0x77a6('0x35')]);_0x331eed['where']=qs['filters'](_['pick'](_0x37c2bd[_0x77a6('0x30')],_0x30d3d1[_0x77a6('0x38')]));if(_0x37c2bd['query'][_0x77a6('0x39')]){_0x331eed[_0x77a6('0x36')]=_['merge'](_0x331eed[_0x77a6('0x36')],{'$or':_[_0x77a6('0x3b')](_0x331eed['attributes'],function(_0x5c31a3){var _0x3f942c={};_0x3f942c[_0x5c31a3]={'$like':'%'+_0x37c2bd[_0x77a6('0x30')][_0x77a6('0x39')]+'%'};return _0x3f942c;})});}_0x331eed=_[_0x77a6('0x3a')]({},_0x331eed,_0x37c2bd[_0x77a6('0x3c')]);return _0x54fd7b[_0x77a6('0x52')](_0x331eed);}})['then'](function(_0x25feb8){if(_0x25feb8){_0xa9516=_0x25feb8['length'];if(!_0x37c2bd['query']['hasOwnProperty'](_0x77a6('0x53'))){_0x331eed[_0x77a6('0x20')]=qs['limit'](_0x37c2bd[_0x77a6('0x30')][_0x77a6('0x20')]);_0x331eed[_0x77a6('0x1f')]=qs[_0x77a6('0x1f')](_0x37c2bd[_0x77a6('0x30')][_0x77a6('0x1f')]);}return _0x54fd7b[_0x77a6('0x52')](_0x331eed);}})['then'](function(_0x14bcdb){if(_0x14bcdb){return _0x14bcdb?{'count':_0xa9516,'rows':_0x14bcdb}:null;}})[_0x77a6('0x26')](respondWithResult(_0x546e70,null))[_0x77a6('0x41')](handleError(_0x546e70,null));};