Built motion from commit 14588770.|2.5.38
[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 _0xbf72=['../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','then','Companies','UserProfileResource','destroy','name','send','describe','keys','query','filters','intersection','model','attributes','fields','nolimit','order','sort','pick','where','map','merge','CmCompany','include','catch','show','params','includeAll','options','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addContacts','omit','ids','getContacts','findOne','length','filter','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis'];(function(_0x18abd2,_0x22d4b3){var _0x1dcad6=function(_0xcc08c4){while(--_0xcc08c4){_0x18abd2['push'](_0x18abd2['shift']());}};_0x1dcad6(++_0x22d4b3);}(_0xbf72,0x143));var _0x2bf7=function(_0x3eafa0,_0x418fc6){_0x3eafa0=_0x3eafa0-0x0;var _0x3fdabc=_0xbf72[_0x3eafa0];return _0x3fdabc;};'use strict';var emlformat=require(_0x2bf7('0x0'));var rimraf=require(_0x2bf7('0x1'));var zipdir=require(_0x2bf7('0x2'));var jsonpatch=require(_0x2bf7('0x3'));var rp=require(_0x2bf7('0x4'));var moment=require(_0x2bf7('0x5'));var BPromise=require(_0x2bf7('0x6'));var Mustache=require(_0x2bf7('0x7'));var util=require(_0x2bf7('0x8'));var path=require(_0x2bf7('0x9'));var sox=require(_0x2bf7('0xa'));var csv=require(_0x2bf7('0xb'));var ejs=require(_0x2bf7('0xc'));var fs=require('fs');var fs_extra=require(_0x2bf7('0xd'));var _=require(_0x2bf7('0xe'));var squel=require(_0x2bf7('0xf'));var crypto=require('crypto');var jsforce=require(_0x2bf7('0x10'));var deskjs=require(_0x2bf7('0x11'));var toCsv=require(_0x2bf7('0xb'));var querystring=require(_0x2bf7('0x12'));var Papa=require(_0x2bf7('0x13'));var Redis=require(_0x2bf7('0x14'));var authService=require(_0x2bf7('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0x2bf7('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2bf7('0x17'))(_0x2bf7('0x18'));var utils=require(_0x2bf7('0x19'));var config=require(_0x2bf7('0x1a'));var licenseUtil=require(_0x2bf7('0x1b'));var db=require(_0x2bf7('0x1c'))['db'];function respondWithStatusCode(_0x29be65,_0x46e2e5){_0x46e2e5=_0x46e2e5||0xcc;return function(_0x1938d0){if(_0x1938d0){return _0x29be65[_0x2bf7('0x1d')](_0x46e2e5);}return _0x29be65[_0x2bf7('0x1e')](_0x46e2e5)[_0x2bf7('0x1f')]();};}function respondWithResult(_0xcb2982,_0x344357){_0x344357=_0x344357||0xc8;return function(_0x289de5){if(_0x289de5){return _0xcb2982[_0x2bf7('0x1e')](_0x344357)[_0x2bf7('0x20')](_0x289de5);}};}function respondWithFilteredResult(_0x3c1f23,_0x482d4f){return function(_0x1f0476){if(_0x1f0476){var _0x239743=typeof _0x482d4f[_0x2bf7('0x21')]===_0x2bf7('0x22')&&typeof _0x482d4f[_0x2bf7('0x23')]===_0x2bf7('0x22');var _0x5c8211=_0x1f0476['count'];var _0x371229=_0x239743?0x0:_0x482d4f[_0x2bf7('0x21')];var _0x134c4d=_0x239743?_0x1f0476[_0x2bf7('0x24')]:_0x482d4f[_0x2bf7('0x21')]+_0x482d4f[_0x2bf7('0x23')];var _0x502424;if(_0x134c4d>=_0x5c8211){_0x134c4d=_0x5c8211;_0x502424=0xc8;}else{_0x502424=0xce;}_0x3c1f23['status'](_0x502424);return _0x3c1f23[_0x2bf7('0x25')](_0x2bf7('0x26'),_0x371229+'-'+_0x134c4d+'/'+_0x5c8211)[_0x2bf7('0x20')](_0x1f0476);}return null;};}function patchUpdates(_0x4367ef){return function(_0x2e396b){try{jsonpatch['apply'](_0x2e396b,_0x4367ef,!![]);}catch(_0xdc9cff){return BPromise['reject'](_0xdc9cff);}return _0x2e396b['save']();};}function saveUpdates(_0xc5ee25,_0x51cd21){return function(_0x63531f){if(_0x63531f){return _0x63531f[_0x2bf7('0x27')](_0xc5ee25)[_0x2bf7('0x28')](function(_0x244382){return _0x244382;});}return null;};}function removeEntity(_0x147e84,_0x464e2a){return function(_0x40babd){if(_0x40babd){return _0x40babd['destroy']()[_0x2bf7('0x28')](function(){var _0x359b22=_0x40babd['get']({'plain':!![]});var _0x5031a1=_0x2bf7('0x29');return db[_0x2bf7('0x2a')][_0x2bf7('0x2b')]({'where':{'type':_0x5031a1,'resourceId':_0x359b22['id']}})[_0x2bf7('0x28')](function(){return _0x40babd;});})[_0x2bf7('0x28')](function(){_0x147e84[_0x2bf7('0x1e')](0xcc)[_0x2bf7('0x1f')]();});}};}function handleEntityNotFound(_0x46f97f,_0x51b5ad){return function(_0x4d0399){if(!_0x4d0399){_0x46f97f[_0x2bf7('0x1d')](0x194);}return _0x4d0399;};}function handleError(_0x37456a,_0x336662){_0x336662=_0x336662||0x1f4;return function(_0x24d8e1){logger['error'](_0x24d8e1['stack']);if(_0x24d8e1[_0x2bf7('0x2c')]){delete _0x24d8e1[_0x2bf7('0x2c')];}_0x37456a[_0x2bf7('0x1e')](_0x336662)[_0x2bf7('0x2d')](_0x24d8e1);};}exports['index']=function(_0x60bdec,_0x16336a){var _0x4d6317={},_0x54f98a={},_0x3e3234={'count':0x0,'rows':[]};return db['CmCompany'][_0x2bf7('0x2e')]()[_0x2bf7('0x28')](function(_0x5a3101){_0x54f98a['model']=_[_0x2bf7('0x2f')](_0x5a3101);_0x54f98a[_0x2bf7('0x30')]=_[_0x2bf7('0x2f')](_0x60bdec['query']);_0x54f98a[_0x2bf7('0x31')]=_[_0x2bf7('0x32')](_0x54f98a[_0x2bf7('0x33')],_0x54f98a[_0x2bf7('0x30')]);_0x4d6317[_0x2bf7('0x34')]=_[_0x2bf7('0x32')](_0x54f98a['model'],qs['fields'](_0x60bdec[_0x2bf7('0x30')][_0x2bf7('0x35')]));_0x4d6317['attributes']=_0x4d6317[_0x2bf7('0x34')]['length']?_0x4d6317[_0x2bf7('0x34')]:_0x54f98a[_0x2bf7('0x33')];if(!_0x60bdec[_0x2bf7('0x30')]['hasOwnProperty'](_0x2bf7('0x36'))){_0x4d6317['limit']=qs[_0x2bf7('0x23')](_0x60bdec['query'][_0x2bf7('0x23')]);_0x4d6317[_0x2bf7('0x21')]=qs[_0x2bf7('0x21')](_0x60bdec[_0x2bf7('0x30')][_0x2bf7('0x21')]);}_0x4d6317[_0x2bf7('0x37')]=qs[_0x2bf7('0x38')](_0x60bdec[_0x2bf7('0x30')]['sort']);_0x4d6317['where']=qs[_0x2bf7('0x31')](_[_0x2bf7('0x39')](_0x60bdec['query'],_0x54f98a[_0x2bf7('0x31')]),_0x5a3101);if(_0x60bdec[_0x2bf7('0x30')]['filter']){_0x4d6317[_0x2bf7('0x3a')]=_['merge'](_0x4d6317[_0x2bf7('0x3a')],{'$or':_[_0x2bf7('0x3b')](_0x4d6317['attributes'],function(_0x3f6e1e){var _0x547bbc={};_0x547bbc[_0x3f6e1e]={'$like':'%'+_0x60bdec[_0x2bf7('0x30')]['filter']+'%'};return _0x547bbc;})});}_0x4d6317=_[_0x2bf7('0x3c')]({},_0x4d6317,_0x60bdec['options']);var _0x443485={'where':_0x4d6317[_0x2bf7('0x3a')]};return db[_0x2bf7('0x3d')]['count'](_0x443485)[_0x2bf7('0x28')](function(_0x4a7b60){_0x3e3234[_0x2bf7('0x24')]=_0x4a7b60;if(_0x60bdec[_0x2bf7('0x30')]['includeAll']){_0x4d6317[_0x2bf7('0x3e')]=[{'all':!![]}];}return db[_0x2bf7('0x3d')]['findAll'](_0x4d6317);})[_0x2bf7('0x28')](function(_0x220769){_0x3e3234['rows']=_0x220769;return _0x3e3234;})[_0x2bf7('0x28')](respondWithFilteredResult(_0x16336a,_0x4d6317))['catch'](handleError(_0x16336a,null));})[_0x2bf7('0x3f')](handleError(_0x16336a,null));};exports[_0x2bf7('0x40')]=function(_0x2569c3,_0x4b5dc3){var _0x145d91={'raw':![],'where':{'id':_0x2569c3[_0x2bf7('0x41')]['id']}},_0x2d22d5={};_0x2d22d5[_0x2bf7('0x33')]=_['keys'](db['CmCompany']['rawAttributes']);_0x2d22d5[_0x2bf7('0x30')]=_[_0x2bf7('0x2f')](_0x2569c3[_0x2bf7('0x30')]);_0x2d22d5[_0x2bf7('0x31')]=_[_0x2bf7('0x32')](_0x2d22d5['model'],_0x2d22d5[_0x2bf7('0x30')]);_0x145d91[_0x2bf7('0x34')]=_[_0x2bf7('0x32')](_0x2d22d5[_0x2bf7('0x33')],qs[_0x2bf7('0x35')](_0x2569c3['query']['fields']));_0x145d91['attributes']=_0x145d91['attributes']['length']?_0x145d91[_0x2bf7('0x34')]:_0x2d22d5[_0x2bf7('0x33')];if(_0x2569c3[_0x2bf7('0x30')][_0x2bf7('0x42')]){_0x145d91[_0x2bf7('0x3e')]=[{'all':!![]}];}_0x145d91=_[_0x2bf7('0x3c')]({},_0x145d91,_0x2569c3[_0x2bf7('0x43')]);return db[_0x2bf7('0x3d')][_0x2bf7('0x44')](_0x145d91)['then'](handleEntityNotFound(_0x4b5dc3,null))[_0x2bf7('0x28')](respondWithResult(_0x4b5dc3,null))[_0x2bf7('0x3f')](handleError(_0x4b5dc3,null));};exports[_0x2bf7('0x45')]=function(_0x5ea010,_0x2dd445){return db[_0x2bf7('0x3d')][_0x2bf7('0x45')](_0x5ea010['body'],{})[_0x2bf7('0x28')](function(_0x4bacef){var _0x2ea477=_0x5ea010[_0x2bf7('0x46')]['get']({'plain':!![]});if(!_0x2ea477)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2ea477[_0x2bf7('0x47')]===_0x2bf7('0x46')){var _0x50f216=_0x4bacef['get']({'plain':!![]});var _0x4a4525=_0x2bf7('0x29');return db[_0x2bf7('0x48')]['find']({'where':{'name':_0x4a4525,'userProfileId':_0x2ea477[_0x2bf7('0x49')]},'raw':!![]})[_0x2bf7('0x28')](function(_0x17e6c1){if(_0x17e6c1&&_0x17e6c1[_0x2bf7('0x4a')]===0x0){return db[_0x2bf7('0x2a')][_0x2bf7('0x45')]({'name':_0x50f216[_0x2bf7('0x2c')],'resourceId':_0x50f216['id'],'type':_0x17e6c1[_0x2bf7('0x2c')],'sectionId':_0x17e6c1['id']},{})[_0x2bf7('0x28')](function(){return _0x4bacef;});}else{return _0x4bacef;}})[_0x2bf7('0x3f')](function(_0x3fdb5b){logger[_0x2bf7('0x4b')](_0x2bf7('0x4c'),_0x3fdb5b);throw _0x3fdb5b;});}return _0x4bacef;})[_0x2bf7('0x28')](respondWithResult(_0x2dd445,0xc9))[_0x2bf7('0x3f')](handleError(_0x2dd445,null));};exports[_0x2bf7('0x27')]=function(_0x355b4c,_0x513872){if(_0x355b4c['body']['id']){delete _0x355b4c[_0x2bf7('0x4d')]['id'];}return db['CmCompany'][_0x2bf7('0x44')]({'where':{'id':_0x355b4c['params']['id']}})[_0x2bf7('0x28')](handleEntityNotFound(_0x513872,null))[_0x2bf7('0x28')](saveUpdates(_0x355b4c[_0x2bf7('0x4d')],null))[_0x2bf7('0x28')](respondWithResult(_0x513872,null))[_0x2bf7('0x3f')](handleError(_0x513872,null));};exports[_0x2bf7('0x2b')]=function(_0x2e159e,_0x5a8943){return db['CmCompany'][_0x2bf7('0x44')]({'where':{'id':_0x2e159e[_0x2bf7('0x41')]['id']}})['then'](handleEntityNotFound(_0x5a8943,null))[_0x2bf7('0x28')](removeEntity(_0x5a8943,null))[_0x2bf7('0x3f')](handleError(_0x5a8943,null));};exports[_0x2bf7('0x2e')]=function(_0x413ea8,_0x3b31aa){return db['CmCompany'][_0x2bf7('0x2e')]()[_0x2bf7('0x28')](respondWithResult(_0x3b31aa,null))['catch'](handleError(_0x3b31aa,null));};exports['addContacts']=function(_0x1f264d,_0x4185b5,_0x48d189){return db['CmContact'][_0x2bf7('0x44')]({'where':{'id':_0x1f264d[_0x2bf7('0x41')]['id']}})[_0x2bf7('0x28')](handleEntityNotFound(_0x4185b5,null))[_0x2bf7('0x28')](function(_0x3d7811){if(_0x3d7811){return _0x3d7811[_0x2bf7('0x4e')](_0x1f264d['body']['ids'],_[_0x2bf7('0x4f')](_0x1f264d[_0x2bf7('0x4d')],[_0x2bf7('0x50'),'id'])||{});}})['then'](respondWithResult(_0x4185b5,null))['catch'](handleError(_0x4185b5,null));};exports[_0x2bf7('0x51')]=function(_0x2e6738,_0x36c82b,_0xd3b6ab){var _0x3e5e2b={};var _0x324955={};var _0x3877f2;var _0x801a12;return db[_0x2bf7('0x3d')][_0x2bf7('0x52')]({'where':{'id':_0x2e6738[_0x2bf7('0x41')]['id']}})[_0x2bf7('0x28')](handleEntityNotFound(_0x36c82b,null))[_0x2bf7('0x28')](function(_0x196ce0){if(_0x196ce0){_0x3877f2=_0x196ce0;_0x324955[_0x2bf7('0x33')]=_[_0x2bf7('0x2f')](db['CmContact']['rawAttributes']);_0x324955[_0x2bf7('0x30')]=_[_0x2bf7('0x2f')](_0x2e6738[_0x2bf7('0x30')]);_0x324955[_0x2bf7('0x31')]=_[_0x2bf7('0x32')](_0x324955['model'],_0x324955[_0x2bf7('0x30')]);_0x3e5e2b['attributes']=_[_0x2bf7('0x32')](_0x324955[_0x2bf7('0x33')],qs['fields'](_0x2e6738[_0x2bf7('0x30')][_0x2bf7('0x35')]));_0x3e5e2b[_0x2bf7('0x34')]=_0x3e5e2b[_0x2bf7('0x34')][_0x2bf7('0x53')]?_0x3e5e2b[_0x2bf7('0x34')]:_0x324955['model'];_0x3e5e2b['order']=qs[_0x2bf7('0x38')](_0x2e6738[_0x2bf7('0x30')][_0x2bf7('0x38')]);_0x3e5e2b[_0x2bf7('0x3a')]=qs['filters'](_[_0x2bf7('0x39')](_0x2e6738[_0x2bf7('0x30')],_0x324955[_0x2bf7('0x31')]));if(_0x2e6738['query'][_0x2bf7('0x54')]){_0x3e5e2b[_0x2bf7('0x3a')]=_[_0x2bf7('0x3c')](_0x3e5e2b['where'],{'$or':_[_0x2bf7('0x3b')](_0x3e5e2b[_0x2bf7('0x34')],function(_0x428bb){var _0x1cd9cb={};_0x1cd9cb[_0x428bb]={'$like':'%'+_0x2e6738[_0x2bf7('0x30')][_0x2bf7('0x54')]+'%'};return _0x1cd9cb;})});}_0x3e5e2b=_[_0x2bf7('0x3c')]({},_0x3e5e2b,_0x2e6738['options']);return _0x3877f2[_0x2bf7('0x51')](_0x3e5e2b);}})[_0x2bf7('0x28')](function(_0x1c6fea){if(_0x1c6fea){_0x801a12=_0x1c6fea[_0x2bf7('0x53')];if(!_0x2e6738[_0x2bf7('0x30')][_0x2bf7('0x55')]('nolimit')){_0x3e5e2b[_0x2bf7('0x23')]=qs[_0x2bf7('0x23')](_0x2e6738[_0x2bf7('0x30')][_0x2bf7('0x23')]);_0x3e5e2b[_0x2bf7('0x21')]=qs[_0x2bf7('0x21')](_0x2e6738[_0x2bf7('0x30')][_0x2bf7('0x21')]);}return _0x3877f2[_0x2bf7('0x51')](_0x3e5e2b);}})[_0x2bf7('0x28')](function(_0x37d9f0){if(_0x37d9f0){return _0x37d9f0?{'count':_0x801a12,'rows':_0x37d9f0}:null;}})['then'](respondWithResult(_0x36c82b,null))[_0x2bf7('0x3f')](handleError(_0x36c82b,null));};