659715b55f352cedcc27ff71ba6696a20cb5bd57
[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 _0x42dd=['../../config/environment','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','then','get','UserProfileResource','destroy','error','name','send','index','CmCompany','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','map','options','count','includeAll','rows','catch','show','params','rawAttributes','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Companies','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','addContacts','CmContact','ids','getContacts','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils'];(function(_0x160814,_0x57b5c6){var _0x427a69=function(_0x3f1485){while(--_0x3f1485){_0x160814['push'](_0x160814['shift']());}};_0x427a69(++_0x57b5c6);}(_0x42dd,0x1e1));var _0xd42d=function(_0x1beef3,_0x57c4b8){_0x1beef3=_0x1beef3-0x0;var _0x5af964=_0x42dd[_0x1beef3];return _0x5af964;};'use strict';var pdf=require(_0xd42d('0x0'));var emlformat=require(_0xd42d('0x1'));var rimraf=require(_0xd42d('0x2'));var zipdir=require(_0xd42d('0x3'));var jsonpatch=require(_0xd42d('0x4'));var rp=require(_0xd42d('0x5'));var moment=require(_0xd42d('0x6'));var BPromise=require(_0xd42d('0x7'));var Mustache=require(_0xd42d('0x8'));var util=require('util');var path=require('path');var sox=require(_0xd42d('0x9'));var csv=require(_0xd42d('0xa'));var ejs=require(_0xd42d('0xb'));var fs=require('fs');var _=require(_0xd42d('0xc'));var squel=require(_0xd42d('0xd'));var crypto=require('crypto');var jsforce=require(_0xd42d('0xe'));var deskjs=require(_0xd42d('0xf'));var toCsv=require(_0xd42d('0xa'));var querystring=require(_0xd42d('0x10'));var Papa=require(_0xd42d('0x11'));var Redis=require(_0xd42d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xd42d('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd42d('0x14'));var logger=require(_0xd42d('0x15'))('api');var utils=require(_0xd42d('0x16'));var config=require(_0xd42d('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3d968a,_0x83d1b3){_0x83d1b3=_0x83d1b3||0xcc;return function(_0x3825c9){if(_0x3825c9){return _0x3d968a[_0xd42d('0x18')](_0x83d1b3);}return _0x3d968a[_0xd42d('0x19')](_0x83d1b3)[_0xd42d('0x1a')]();};}function respondWithResult(_0xc8cac2,_0x32b910){_0x32b910=_0x32b910||0xc8;return function(_0x3b9cdb){if(_0x3b9cdb){return _0xc8cac2['status'](_0x32b910)[_0xd42d('0x1b')](_0x3b9cdb);}};}function respondWithFilteredResult(_0x4ccb36,_0x267492){return function(_0xa7f9fb){if(_0xa7f9fb){var _0xb43162=_0xa7f9fb['count'],_0x3e8837=_0x267492['offset'],_0xb4a362=_0x267492[_0xd42d('0x1c')]+_0x267492[_0xd42d('0x1d')],_0x4adfa3;if(_0xb4a362>=_0xb43162){_0xb4a362=_0xb43162;_0x4adfa3=0xc8;}else{_0x4adfa3=0xce;}_0x4ccb36['status'](_0x4adfa3);return _0x4ccb36['set'](_0xd42d('0x1e'),_0x3e8837+'-'+_0xb4a362+'/'+_0xb43162)[_0xd42d('0x1b')](_0xa7f9fb);}return null;};}function patchUpdates(_0x2d918b){return function(_0x17e3b8){try{jsonpatch[_0xd42d('0x1f')](_0x17e3b8,_0x2d918b,!![]);}catch(_0x38fc05){return BPromise[_0xd42d('0x20')](_0x38fc05);}return _0x17e3b8['save']();};}function saveUpdates(_0xe4bbfc,_0x590116){return function(_0x4b1165){if(_0x4b1165){return _0x4b1165['update'](_0xe4bbfc)[_0xd42d('0x21')](function(_0x21892c){return _0x21892c;});}return null;};}function removeEntity(_0x524b79,_0x5aa59a){return function(_0x2a9de6){if(_0x2a9de6){return _0x2a9de6['destroy']()[_0xd42d('0x21')](function(){var _0x47683f=_0x2a9de6[_0xd42d('0x22')]({'plain':!![]});var _0x1308a6='Companies';return db[_0xd42d('0x23')][_0xd42d('0x24')]({'where':{'type':_0x1308a6,'resourceId':_0x47683f['id']}})[_0xd42d('0x21')](function(){return _0x2a9de6;});})[_0xd42d('0x21')](function(){_0x524b79[_0xd42d('0x19')](0xcc)[_0xd42d('0x1a')]();});}};}function handleEntityNotFound(_0xcd54cf,_0xdee76d){return function(_0x35d1dd){if(!_0x35d1dd){_0xcd54cf[_0xd42d('0x18')](0x194);}return _0x35d1dd;};}function handleError(_0x3ec93b,_0x5bee4c){_0x5bee4c=_0x5bee4c||0x1f4;return function(_0x2d03d4){logger[_0xd42d('0x25')](_0x2d03d4['stack']);if(_0x2d03d4[_0xd42d('0x26')]){delete _0x2d03d4['name'];}_0x3ec93b[_0xd42d('0x19')](_0x5bee4c)[_0xd42d('0x27')](_0x2d03d4);};}exports[_0xd42d('0x28')]=function(_0x110179,_0x1a6648){var _0x668bae={},_0x5516e5={},_0x1bd53a={'count':0x0,'rows':[]};return db[_0xd42d('0x29')]['describe']()[_0xd42d('0x21')](function(_0x27b1aa){_0x5516e5[_0xd42d('0x2a')]=_[_0xd42d('0x2b')](_0x27b1aa);_0x5516e5['query']=_['keys'](_0x110179['query']);_0x5516e5[_0xd42d('0x2c')]=_[_0xd42d('0x2d')](_0x5516e5['model'],_0x5516e5[_0xd42d('0x2e')]);_0x668bae[_0xd42d('0x2f')]=_[_0xd42d('0x2d')](_0x5516e5[_0xd42d('0x2a')],qs[_0xd42d('0x30')](_0x110179['query'][_0xd42d('0x30')]));_0x668bae[_0xd42d('0x2f')]=_0x668bae[_0xd42d('0x2f')][_0xd42d('0x31')]?_0x668bae[_0xd42d('0x2f')]:_0x5516e5['model'];if(!_0x110179[_0xd42d('0x2e')][_0xd42d('0x32')](_0xd42d('0x33'))){_0x668bae[_0xd42d('0x1d')]=qs[_0xd42d('0x1d')](_0x110179[_0xd42d('0x2e')][_0xd42d('0x1d')]);_0x668bae['offset']=qs[_0xd42d('0x1c')](_0x110179[_0xd42d('0x2e')]['offset']);}_0x668bae[_0xd42d('0x34')]=qs[_0xd42d('0x35')](_0x110179[_0xd42d('0x2e')][_0xd42d('0x35')]);_0x668bae['where']=qs[_0xd42d('0x2c')](_[_0xd42d('0x36')](_0x110179[_0xd42d('0x2e')],_0x5516e5[_0xd42d('0x2c')]),_0x27b1aa);if(_0x110179[_0xd42d('0x2e')][_0xd42d('0x37')]){_0x668bae[_0xd42d('0x38')]=_[_0xd42d('0x39')](_0x668bae[_0xd42d('0x38')],{'$or':_[_0xd42d('0x3a')](_0x668bae[_0xd42d('0x2f')],function(_0x25b05f){var _0x21108e={};_0x21108e[_0x25b05f]={'$like':'%'+_0x110179[_0xd42d('0x2e')][_0xd42d('0x37')]+'%'};return _0x21108e;})});}_0x668bae=_[_0xd42d('0x39')]({},_0x668bae,_0x110179[_0xd42d('0x3b')]);var _0x53145f={'where':_0x668bae[_0xd42d('0x38')]};return db[_0xd42d('0x29')][_0xd42d('0x3c')](_0x53145f)[_0xd42d('0x21')](function(_0x189c98){_0x1bd53a[_0xd42d('0x3c')]=_0x189c98;if(_0x110179[_0xd42d('0x2e')][_0xd42d('0x3d')]){_0x668bae['include']=[{'all':!![]}];}return db['CmCompany']['findAll'](_0x668bae);})['then'](function(_0x287c24){_0x1bd53a[_0xd42d('0x3e')]=_0x287c24;return _0x1bd53a;})[_0xd42d('0x21')](respondWithFilteredResult(_0x1a6648,_0x668bae))[_0xd42d('0x3f')](handleError(_0x1a6648,null));})[_0xd42d('0x3f')](handleError(_0x1a6648,null));};exports[_0xd42d('0x40')]=function(_0x16db39,_0x113500){var _0x260757={'raw':![],'where':{'id':_0x16db39[_0xd42d('0x41')]['id']}},_0x194bcd={};_0x194bcd[_0xd42d('0x2a')]=_[_0xd42d('0x2b')](db['CmCompany'][_0xd42d('0x42')]);_0x194bcd[_0xd42d('0x2e')]=_[_0xd42d('0x2b')](_0x16db39['query']);_0x194bcd[_0xd42d('0x2c')]=_[_0xd42d('0x2d')](_0x194bcd[_0xd42d('0x2a')],_0x194bcd[_0xd42d('0x2e')]);_0x260757[_0xd42d('0x2f')]=_[_0xd42d('0x2d')](_0x194bcd[_0xd42d('0x2a')],qs[_0xd42d('0x30')](_0x16db39['query'][_0xd42d('0x30')]));_0x260757['attributes']=_0x260757[_0xd42d('0x2f')][_0xd42d('0x31')]?_0x260757[_0xd42d('0x2f')]:_0x194bcd[_0xd42d('0x2a')];if(_0x16db39[_0xd42d('0x2e')][_0xd42d('0x3d')]){_0x260757[_0xd42d('0x43')]=[{'all':!![]}];}_0x260757=_[_0xd42d('0x39')]({},_0x260757,_0x16db39[_0xd42d('0x3b')]);return db['CmCompany'][_0xd42d('0x44')](_0x260757)[_0xd42d('0x21')](handleEntityNotFound(_0x113500,null))['then'](respondWithResult(_0x113500,null))[_0xd42d('0x3f')](handleError(_0x113500,null));};exports[_0xd42d('0x45')]=function(_0x39e02e,_0x45169b){return db[_0xd42d('0x29')]['create'](_0x39e02e[_0xd42d('0x46')],{})[_0xd42d('0x21')](function(_0x417a63){var _0x209d01=_0x39e02e[_0xd42d('0x47')][_0xd42d('0x22')]({'plain':!![]});if(!_0x209d01)throw new Error(_0xd42d('0x48'));if(_0x209d01[_0xd42d('0x49')]==='user'){var _0x108cec=_0x417a63[_0xd42d('0x22')]({'plain':!![]});var _0x68b809=_0xd42d('0x4a');return db[_0xd42d('0x4b')][_0xd42d('0x44')]({'where':{'name':_0x68b809,'userProfileId':_0x209d01[_0xd42d('0x4c')]},'raw':!![]})[_0xd42d('0x21')](function(_0x3de4a7){if(_0x3de4a7&&_0x3de4a7['autoAssociation']===0x0){return db[_0xd42d('0x23')][_0xd42d('0x45')]({'name':_0x108cec[_0xd42d('0x26')],'resourceId':_0x108cec['id'],'type':_0x3de4a7[_0xd42d('0x26')],'sectionId':_0x3de4a7['id']},{})['then'](function(){return _0x417a63;});}else{return _0x417a63;}})[_0xd42d('0x3f')](function(_0x2269d2){logger['error'](_0xd42d('0x4d'),_0x2269d2);throw _0x2269d2;});}return _0x417a63;})[_0xd42d('0x21')](respondWithResult(_0x45169b,0xc9))['catch'](handleError(_0x45169b,null));};exports[_0xd42d('0x4e')]=function(_0x43c9df,_0x32a9ba){if(_0x43c9df[_0xd42d('0x46')]['id']){delete _0x43c9df[_0xd42d('0x46')]['id'];}return db[_0xd42d('0x29')]['find']({'where':{'id':_0x43c9df[_0xd42d('0x41')]['id']}})[_0xd42d('0x21')](handleEntityNotFound(_0x32a9ba,null))[_0xd42d('0x21')](saveUpdates(_0x43c9df[_0xd42d('0x46')],null))[_0xd42d('0x21')](respondWithResult(_0x32a9ba,null))[_0xd42d('0x3f')](handleError(_0x32a9ba,null));};exports[_0xd42d('0x24')]=function(_0x50a7c7,_0x15a3cc){return db[_0xd42d('0x29')]['find']({'where':{'id':_0x50a7c7['params']['id']}})[_0xd42d('0x21')](handleEntityNotFound(_0x15a3cc,null))[_0xd42d('0x21')](removeEntity(_0x15a3cc,null))[_0xd42d('0x3f')](handleError(_0x15a3cc,null));};exports['describe']=function(_0x474b62,_0x261863){return db[_0xd42d('0x29')][_0xd42d('0x4f')]()[_0xd42d('0x21')](respondWithResult(_0x261863,null))['catch'](handleError(_0x261863,null));};exports[_0xd42d('0x50')]=function(_0x3cb927,_0x39dd88,_0x213eca){return db[_0xd42d('0x51')]['find']({'where':{'id':_0x3cb927[_0xd42d('0x41')]['id']}})[_0xd42d('0x21')](handleEntityNotFound(_0x39dd88,null))[_0xd42d('0x21')](function(_0x16869a){if(_0x16869a){return _0x16869a[_0xd42d('0x50')](_0x3cb927[_0xd42d('0x46')]['ids'],_['omit'](_0x3cb927['body'],[_0xd42d('0x52'),'id'])||{});}})['then'](respondWithResult(_0x39dd88,null))[_0xd42d('0x3f')](handleError(_0x39dd88,null));};exports[_0xd42d('0x53')]=function(_0x16c84,_0x2e2f89,_0x3219fd){var _0x3e61eb={};var _0x54fb99={};var _0x34abcd;var _0x157089;return db[_0xd42d('0x29')]['findOne']({'where':{'id':_0x16c84[_0xd42d('0x41')]['id']}})[_0xd42d('0x21')](handleEntityNotFound(_0x2e2f89,null))[_0xd42d('0x21')](function(_0x404306){if(_0x404306){_0x34abcd=_0x404306;_0x54fb99[_0xd42d('0x2a')]=_[_0xd42d('0x2b')](db[_0xd42d('0x51')][_0xd42d('0x42')]);_0x54fb99['query']=_[_0xd42d('0x2b')](_0x16c84['query']);_0x54fb99[_0xd42d('0x2c')]=_[_0xd42d('0x2d')](_0x54fb99[_0xd42d('0x2a')],_0x54fb99[_0xd42d('0x2e')]);_0x3e61eb[_0xd42d('0x2f')]=_[_0xd42d('0x2d')](_0x54fb99[_0xd42d('0x2a')],qs[_0xd42d('0x30')](_0x16c84[_0xd42d('0x2e')]['fields']));_0x3e61eb[_0xd42d('0x2f')]=_0x3e61eb[_0xd42d('0x2f')]['length']?_0x3e61eb[_0xd42d('0x2f')]:_0x54fb99[_0xd42d('0x2a')];_0x3e61eb[_0xd42d('0x34')]=qs[_0xd42d('0x35')](_0x16c84[_0xd42d('0x2e')]['sort']);_0x3e61eb['where']=qs[_0xd42d('0x2c')](_['pick'](_0x16c84[_0xd42d('0x2e')],_0x54fb99['filters']));if(_0x16c84['query'][_0xd42d('0x37')]){_0x3e61eb[_0xd42d('0x38')]=_[_0xd42d('0x39')](_0x3e61eb[_0xd42d('0x38')],{'$or':_['map'](_0x3e61eb[_0xd42d('0x2f')],function(_0x5cb829){var _0x48a842={};_0x48a842[_0x5cb829]={'$like':'%'+_0x16c84[_0xd42d('0x2e')][_0xd42d('0x37')]+'%'};return _0x48a842;})});}_0x3e61eb=_[_0xd42d('0x39')]({},_0x3e61eb,_0x16c84[_0xd42d('0x3b')]);return _0x34abcd['getContacts'](_0x3e61eb);}})['then'](function(_0x27e220){if(_0x27e220){_0x157089=_0x27e220[_0xd42d('0x31')];if(!_0x16c84[_0xd42d('0x2e')][_0xd42d('0x32')](_0xd42d('0x33'))){_0x3e61eb[_0xd42d('0x1d')]=qs[_0xd42d('0x1d')](_0x16c84[_0xd42d('0x2e')][_0xd42d('0x1d')]);_0x3e61eb[_0xd42d('0x1c')]=qs[_0xd42d('0x1c')](_0x16c84['query'][_0xd42d('0x1c')]);}return _0x34abcd[_0xd42d('0x53')](_0x3e61eb);}})[_0xd42d('0x21')](function(_0xc39e4c){if(_0xc39e4c){return _0xc39e4c?{'count':_0x157089,'rows':_0xc39e4c}:null;}})[_0xd42d('0x21')](respondWithResult(_0x2e2f89,null))['catch'](handleError(_0x2e2f89,null));};