Built motion from commit a61a4a20.|2.5.46
[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 _0x27b3=['CmContact','map','nolimit','eml-format','rimraf','fast-json-patch','util','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','status','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Companies','end','sendStatus','error','name','send','CmCompany','describe','keys','query','filters','model','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show','params','rawAttributes','intersection','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','ids','getContacts'];(function(_0x53b0a0,_0x50b6f3){var _0x379a31=function(_0x144413){while(--_0x144413){_0x53b0a0['push'](_0x53b0a0['shift']());}};_0x379a31(++_0x50b6f3);}(_0x27b3,0xa7));var _0x327b=function(_0x50fa42,_0x3197d2){_0x50fa42=_0x50fa42-0x0;var _0x443ed1=_0x27b3[_0x50fa42];return _0x443ed1;};'use strict';var emlformat=require(_0x327b('0x0'));var rimraf=require(_0x327b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x327b('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x327b('0x3'));var path=require('path');var sox=require(_0x327b('0x4'));var csv=require(_0x327b('0x5'));var ejs=require(_0x327b('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x327b('0x7'));var crypto=require(_0x327b('0x8'));var jsforce=require(_0x327b('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x327b('0x5'));var querystring=require(_0x327b('0xa'));var Papa=require(_0x327b('0xb'));var Redis=require(_0x327b('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x327b('0xd'));var as=require(_0x327b('0xe'));var hardwareService=require(_0x327b('0xf'));var logger=require(_0x327b('0x10'))('api');var utils=require(_0x327b('0x11'));var config=require(_0x327b('0x12'));var licenseUtil=require(_0x327b('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e6c69,_0x403106){_0x403106=_0x403106||0xcc;return function(_0x834c11){if(_0x834c11){return _0x1e6c69['sendStatus'](_0x403106);}return _0x1e6c69[_0x327b('0x14')](_0x403106)['end']();};}function respondWithResult(_0x459ecf,_0x3e89fd){_0x3e89fd=_0x3e89fd||0xc8;return function(_0x2f4cf4){if(_0x2f4cf4){return _0x459ecf[_0x327b('0x14')](_0x3e89fd)[_0x327b('0x15')](_0x2f4cf4);}};}function respondWithFilteredResult(_0xa0e99,_0x4b2857){return function(_0x3cd8a4){if(_0x3cd8a4){var _0x41ce37=typeof _0x4b2857['offset']===_0x327b('0x16')&&typeof _0x4b2857[_0x327b('0x17')]===_0x327b('0x16');var _0x271c83=_0x3cd8a4['count'];var _0x247a4f=_0x41ce37?0x0:_0x4b2857[_0x327b('0x18')];var _0x2eaa79=_0x41ce37?_0x3cd8a4[_0x327b('0x19')]:_0x4b2857[_0x327b('0x18')]+_0x4b2857[_0x327b('0x17')];var _0x2644d1;if(_0x2eaa79>=_0x271c83){_0x2eaa79=_0x271c83;_0x2644d1=0xc8;}else{_0x2644d1=0xce;}_0xa0e99['status'](_0x2644d1);return _0xa0e99[_0x327b('0x1a')](_0x327b('0x1b'),_0x247a4f+'-'+_0x2eaa79+'/'+_0x271c83)[_0x327b('0x15')](_0x3cd8a4);}return null;};}function patchUpdates(_0x3a2ab0){return function(_0x3a4052){try{jsonpatch[_0x327b('0x1c')](_0x3a4052,_0x3a2ab0,!![]);}catch(_0x21f231){return BPromise[_0x327b('0x1d')](_0x21f231);}return _0x3a4052[_0x327b('0x1e')]();};}function saveUpdates(_0x53dd84,_0x2e1e61){return function(_0x981c1c){if(_0x981c1c){return _0x981c1c[_0x327b('0x1f')](_0x53dd84)[_0x327b('0x20')](function(_0x586a2f){return _0x586a2f;});}return null;};}function removeEntity(_0x35e954,_0x5b1172){return function(_0x455502){if(_0x455502){return _0x455502[_0x327b('0x21')]()['then'](function(){var _0x191e5e=_0x455502[_0x327b('0x22')]({'plain':!![]});var _0x532d6b=_0x327b('0x23');return db['UserProfileResource'][_0x327b('0x21')]({'where':{'type':_0x532d6b,'resourceId':_0x191e5e['id']}})[_0x327b('0x20')](function(){return _0x455502;});})[_0x327b('0x20')](function(){_0x35e954['status'](0xcc)[_0x327b('0x24')]();});}};}function handleEntityNotFound(_0x25c84f,_0x39ec22){return function(_0x2f3eb2){if(!_0x2f3eb2){_0x25c84f[_0x327b('0x25')](0x194);}return _0x2f3eb2;};}function handleError(_0x1677d6,_0x4cac06){_0x4cac06=_0x4cac06||0x1f4;return function(_0x419f1e){logger[_0x327b('0x26')](_0x419f1e['stack']);if(_0x419f1e[_0x327b('0x27')]){delete _0x419f1e[_0x327b('0x27')];}_0x1677d6[_0x327b('0x14')](_0x4cac06)[_0x327b('0x28')](_0x419f1e);};}exports['index']=function(_0x559dbb,_0x559742){var _0x296722={},_0x34eb2c={},_0x26da6f={'count':0x0,'rows':[]};return db[_0x327b('0x29')][_0x327b('0x2a')]()[_0x327b('0x20')](function(_0x17a67f){_0x34eb2c['model']=_[_0x327b('0x2b')](_0x17a67f);_0x34eb2c[_0x327b('0x2c')]=_[_0x327b('0x2b')](_0x559dbb[_0x327b('0x2c')]);_0x34eb2c[_0x327b('0x2d')]=_['intersection'](_0x34eb2c[_0x327b('0x2e')],_0x34eb2c[_0x327b('0x2c')]);_0x296722['attributes']=_['intersection'](_0x34eb2c['model'],qs[_0x327b('0x2f')](_0x559dbb['query'][_0x327b('0x2f')]));_0x296722[_0x327b('0x30')]=_0x296722[_0x327b('0x30')][_0x327b('0x31')]?_0x296722[_0x327b('0x30')]:_0x34eb2c[_0x327b('0x2e')];if(!_0x559dbb[_0x327b('0x2c')][_0x327b('0x32')]('nolimit')){_0x296722['limit']=qs[_0x327b('0x17')](_0x559dbb[_0x327b('0x2c')][_0x327b('0x17')]);_0x296722['offset']=qs['offset'](_0x559dbb[_0x327b('0x2c')][_0x327b('0x18')]);}_0x296722[_0x327b('0x33')]=qs['sort'](_0x559dbb[_0x327b('0x2c')][_0x327b('0x34')]);_0x296722[_0x327b('0x35')]=qs[_0x327b('0x2d')](_[_0x327b('0x36')](_0x559dbb['query'],_0x34eb2c[_0x327b('0x2d')]),_0x17a67f);if(_0x559dbb['query'][_0x327b('0x37')]){_0x296722[_0x327b('0x35')]=_[_0x327b('0x38')](_0x296722['where'],{'$or':_['map'](_0x296722['attributes'],function(_0x30ff5e){var _0x353f3d={};_0x353f3d[_0x30ff5e]={'$like':'%'+_0x559dbb[_0x327b('0x2c')]['filter']+'%'};return _0x353f3d;})});}_0x296722=_[_0x327b('0x38')]({},_0x296722,_0x559dbb[_0x327b('0x39')]);var _0x4e2319={'where':_0x296722[_0x327b('0x35')]};return db[_0x327b('0x29')]['count'](_0x4e2319)[_0x327b('0x20')](function(_0x34b78e){_0x26da6f[_0x327b('0x19')]=_0x34b78e;if(_0x559dbb[_0x327b('0x2c')][_0x327b('0x3a')]){_0x296722[_0x327b('0x3b')]=[{'all':!![]}];}return db[_0x327b('0x29')][_0x327b('0x3c')](_0x296722);})[_0x327b('0x20')](function(_0x84f5d9){_0x26da6f[_0x327b('0x3d')]=_0x84f5d9;return _0x26da6f;})[_0x327b('0x20')](respondWithFilteredResult(_0x559742,_0x296722))['catch'](handleError(_0x559742,null));})['catch'](handleError(_0x559742,null));};exports[_0x327b('0x3e')]=function(_0x2e9291,_0x63b674){var _0x301fed={'raw':![],'where':{'id':_0x2e9291[_0x327b('0x3f')]['id']}},_0x42c062={};_0x42c062['model']=_[_0x327b('0x2b')](db[_0x327b('0x29')][_0x327b('0x40')]);_0x42c062['query']=_[_0x327b('0x2b')](_0x2e9291[_0x327b('0x2c')]);_0x42c062[_0x327b('0x2d')]=_['intersection'](_0x42c062[_0x327b('0x2e')],_0x42c062[_0x327b('0x2c')]);_0x301fed[_0x327b('0x30')]=_[_0x327b('0x41')](_0x42c062[_0x327b('0x2e')],qs[_0x327b('0x2f')](_0x2e9291['query'][_0x327b('0x2f')]));_0x301fed[_0x327b('0x30')]=_0x301fed[_0x327b('0x30')][_0x327b('0x31')]?_0x301fed[_0x327b('0x30')]:_0x42c062['model'];if(_0x2e9291[_0x327b('0x2c')][_0x327b('0x3a')]){_0x301fed[_0x327b('0x3b')]=[{'all':!![]}];}_0x301fed=_[_0x327b('0x38')]({},_0x301fed,_0x2e9291['options']);return db[_0x327b('0x29')][_0x327b('0x42')](_0x301fed)[_0x327b('0x20')](handleEntityNotFound(_0x63b674,null))['then'](respondWithResult(_0x63b674,null))[_0x327b('0x43')](handleError(_0x63b674,null));};exports[_0x327b('0x44')]=function(_0x1d6e2e,_0x4a6123){return db['CmCompany']['create'](_0x1d6e2e[_0x327b('0x45')],{})[_0x327b('0x20')](function(_0x31666a){var _0x451569=_0x1d6e2e['user'][_0x327b('0x22')]({'plain':!![]});if(!_0x451569)throw new Error(_0x327b('0x46'));if(_0x451569[_0x327b('0x47')]==='user'){var _0x12ca27=_0x31666a[_0x327b('0x22')]({'plain':!![]});var _0x595407=_0x327b('0x23');return db[_0x327b('0x48')]['find']({'where':{'name':_0x595407,'userProfileId':_0x451569[_0x327b('0x49')]},'raw':!![]})[_0x327b('0x20')](function(_0x359b50){if(_0x359b50&&_0x359b50['autoAssociation']===0x0){return db[_0x327b('0x4a')]['create']({'name':_0x12ca27[_0x327b('0x27')],'resourceId':_0x12ca27['id'],'type':_0x359b50['name'],'sectionId':_0x359b50['id']},{})[_0x327b('0x20')](function(){return _0x31666a;});}else{return _0x31666a;}})[_0x327b('0x43')](function(_0x196f87){logger[_0x327b('0x26')](_0x327b('0x4b'),_0x196f87);throw _0x196f87;});}return _0x31666a;})['then'](respondWithResult(_0x4a6123,0xc9))[_0x327b('0x43')](handleError(_0x4a6123,null));};exports[_0x327b('0x1f')]=function(_0x1e1c6a,_0x5d4663){if(_0x1e1c6a[_0x327b('0x45')]['id']){delete _0x1e1c6a[_0x327b('0x45')]['id'];}return db[_0x327b('0x29')][_0x327b('0x42')]({'where':{'id':_0x1e1c6a[_0x327b('0x3f')]['id']}})[_0x327b('0x20')](handleEntityNotFound(_0x5d4663,null))['then'](saveUpdates(_0x1e1c6a[_0x327b('0x45')],null))[_0x327b('0x20')](respondWithResult(_0x5d4663,null))['catch'](handleError(_0x5d4663,null));};exports[_0x327b('0x21')]=function(_0x16bb67,_0x50eaac){return db[_0x327b('0x29')][_0x327b('0x42')]({'where':{'id':_0x16bb67[_0x327b('0x3f')]['id']}})[_0x327b('0x20')](handleEntityNotFound(_0x50eaac,null))[_0x327b('0x20')](removeEntity(_0x50eaac,null))[_0x327b('0x43')](handleError(_0x50eaac,null));};exports[_0x327b('0x2a')]=function(_0x2240e0,_0x54b092){return db['CmCompany'][_0x327b('0x2a')]()[_0x327b('0x20')](respondWithResult(_0x54b092,null))[_0x327b('0x43')](handleError(_0x54b092,null));};exports[_0x327b('0x4c')]=function(_0x43440f,_0x5d3c53,_0x453931){return db['CmContact']['find']({'where':{'id':_0x43440f[_0x327b('0x3f')]['id']}})['then'](handleEntityNotFound(_0x5d3c53,null))['then'](function(_0x3ade18){if(_0x3ade18){return _0x3ade18[_0x327b('0x4c')](_0x43440f['body'][_0x327b('0x4d')],_['omit'](_0x43440f[_0x327b('0x45')],[_0x327b('0x4d'),'id'])||{});}})['then'](respondWithResult(_0x5d3c53,null))[_0x327b('0x43')](handleError(_0x5d3c53,null));};exports[_0x327b('0x4e')]=function(_0x94a667,_0x7e3b72,_0x24c6a3){var _0x245642={};var _0x20587c={};var _0x40ce66;var _0x35943b;return db['CmCompany']['findOne']({'where':{'id':_0x94a667[_0x327b('0x3f')]['id']}})[_0x327b('0x20')](handleEntityNotFound(_0x7e3b72,null))[_0x327b('0x20')](function(_0x3e70b0){if(_0x3e70b0){_0x40ce66=_0x3e70b0;_0x20587c['model']=_[_0x327b('0x2b')](db[_0x327b('0x4f')][_0x327b('0x40')]);_0x20587c[_0x327b('0x2c')]=_[_0x327b('0x2b')](_0x94a667[_0x327b('0x2c')]);_0x20587c[_0x327b('0x2d')]=_[_0x327b('0x41')](_0x20587c[_0x327b('0x2e')],_0x20587c[_0x327b('0x2c')]);_0x245642[_0x327b('0x30')]=_['intersection'](_0x20587c[_0x327b('0x2e')],qs[_0x327b('0x2f')](_0x94a667['query']['fields']));_0x245642[_0x327b('0x30')]=_0x245642['attributes'][_0x327b('0x31')]?_0x245642[_0x327b('0x30')]:_0x20587c['model'];_0x245642[_0x327b('0x33')]=qs[_0x327b('0x34')](_0x94a667[_0x327b('0x2c')][_0x327b('0x34')]);_0x245642[_0x327b('0x35')]=qs['filters'](_[_0x327b('0x36')](_0x94a667[_0x327b('0x2c')],_0x20587c[_0x327b('0x2d')]));if(_0x94a667[_0x327b('0x2c')][_0x327b('0x37')]){_0x245642[_0x327b('0x35')]=_[_0x327b('0x38')](_0x245642[_0x327b('0x35')],{'$or':_[_0x327b('0x50')](_0x245642[_0x327b('0x30')],function(_0x42113f){var _0x46f603={};_0x46f603[_0x42113f]={'$like':'%'+_0x94a667[_0x327b('0x2c')]['filter']+'%'};return _0x46f603;})});}_0x245642=_[_0x327b('0x38')]({},_0x245642,_0x94a667['options']);return _0x40ce66['getContacts'](_0x245642);}})['then'](function(_0x112b46){if(_0x112b46){_0x35943b=_0x112b46[_0x327b('0x31')];if(!_0x94a667[_0x327b('0x2c')][_0x327b('0x32')](_0x327b('0x51'))){_0x245642[_0x327b('0x17')]=qs['limit'](_0x94a667[_0x327b('0x2c')][_0x327b('0x17')]);_0x245642['offset']=qs['offset'](_0x94a667['query'][_0x327b('0x18')]);}return _0x40ce66[_0x327b('0x4e')](_0x245642);}})['then'](function(_0x4fb36d){if(_0x4fb36d){return _0x4fb36d?{'count':_0x35943b,'rows':_0x4fb36d}:null;}})[_0x327b('0x20')](respondWithResult(_0x7e3b72,null))[_0x327b('0x43')](handleError(_0x7e3b72,null));};