42424adf8225c6c0832d5830a7da76b9f86f2d26
[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 _0xe071=['to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','save','then','get','Companies','UserProfileResource','sendStatus','error','stack','name','index','describe','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','map','options','includeAll','CmCompany','findAll','rows','show','params','rawAttributes','length','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','destroy','addContacts','CmContact','omit','ids','getContacts','findOne','hasOwnProperty','eml-format','zip-dir','fast-json-patch','request-promise','mustache','ejs','lodash','squel','crypto','jsforce','desk.js'];(function(_0x11b2ce,_0x31f8d4){var _0x35d74e=function(_0x3fe74f){while(--_0x3fe74f){_0x11b2ce['push'](_0x11b2ce['shift']());}};_0x35d74e(++_0x31f8d4);}(_0xe071,0xf7));var _0x1e07=function(_0x4fab79,_0x4f76dc){_0x4fab79=_0x4fab79-0x0;var _0x31ec8e=_0xe071[_0x4fab79];return _0x31ec8e;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1e07('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1e07('0x1'));var jsonpatch=require(_0x1e07('0x2'));var rp=require(_0x1e07('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x1e07('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1e07('0x5'));var fs=require('fs');var _=require(_0x1e07('0x6'));var squel=require(_0x1e07('0x7'));var crypto=require(_0x1e07('0x8'));var jsforce=require(_0x1e07('0x9'));var deskjs=require(_0x1e07('0xa'));var toCsv=require(_0x1e07('0xb'));var querystring=require(_0x1e07('0xc'));var Papa=require(_0x1e07('0xd'));var Redis=require(_0x1e07('0xe'));var authService=require(_0x1e07('0xf'));var qs=require(_0x1e07('0x10'));var as=require(_0x1e07('0x11'));var hardwareService=require(_0x1e07('0x12'));var logger=require('../../config/logger')(_0x1e07('0x13'));var utils=require(_0x1e07('0x14'));var config=require(_0x1e07('0x15'));var db=require(_0x1e07('0x16'))['db'];function respondWithStatusCode(_0x1d544c,_0x81ef9f){_0x81ef9f=_0x81ef9f||0xcc;return function(_0x42a648){if(_0x42a648){return _0x1d544c['sendStatus'](_0x81ef9f);}return _0x1d544c[_0x1e07('0x17')](_0x81ef9f)[_0x1e07('0x18')]();};}function respondWithResult(_0x20e386,_0x186fb6){_0x186fb6=_0x186fb6||0xc8;return function(_0x27ad6a){if(_0x27ad6a){return _0x20e386[_0x1e07('0x17')](_0x186fb6)[_0x1e07('0x19')](_0x27ad6a);}};}function respondWithFilteredResult(_0x180d6d,_0x19f8a3){return function(_0x1090ef){if(_0x1090ef){var _0x2d6044=_0x1090ef[_0x1e07('0x1a')],_0x53ad8e=_0x19f8a3[_0x1e07('0x1b')],_0x57f82f=_0x19f8a3[_0x1e07('0x1b')]+_0x19f8a3[_0x1e07('0x1c')],_0x246f65;if(_0x57f82f>=_0x2d6044){_0x57f82f=_0x2d6044;_0x246f65=0xc8;}else{_0x246f65=0xce;}_0x180d6d[_0x1e07('0x17')](_0x246f65);return _0x180d6d[_0x1e07('0x1d')](_0x1e07('0x1e'),_0x53ad8e+'-'+_0x57f82f+'/'+_0x2d6044)[_0x1e07('0x19')](_0x1090ef);}return null;};}function patchUpdates(_0x26e361){return function(_0x5a619a){try{jsonpatch['apply'](_0x5a619a,_0x26e361,!![]);}catch(_0x2f6063){return BPromise['reject'](_0x2f6063);}return _0x5a619a[_0x1e07('0x1f')]();};}function saveUpdates(_0x41ce7e,_0x1c76da){return function(_0x4ed88b){if(_0x4ed88b){return _0x4ed88b['update'](_0x41ce7e)[_0x1e07('0x20')](function(_0x585230){return _0x585230;});}return null;};}function removeEntity(_0x962cbe,_0x51ef1e){return function(_0x222beb){if(_0x222beb){return _0x222beb['destroy']()[_0x1e07('0x20')](function(){var _0x2be076=_0x222beb[_0x1e07('0x21')]({'plain':!![]});var _0x72661c=_0x1e07('0x22');return db[_0x1e07('0x23')]['destroy']({'where':{'type':_0x72661c,'resourceId':_0x2be076['id']}})[_0x1e07('0x20')](function(){return _0x222beb;});})['then'](function(){_0x962cbe[_0x1e07('0x17')](0xcc)[_0x1e07('0x18')]();});}};}function handleEntityNotFound(_0x12a06d,_0x17ed08){return function(_0x30677c){if(!_0x30677c){_0x12a06d[_0x1e07('0x24')](0x194);}return _0x30677c;};}function handleError(_0x1ac57a,_0x4b6c46){_0x4b6c46=_0x4b6c46||0x1f4;return function(_0x275545){logger[_0x1e07('0x25')](_0x275545[_0x1e07('0x26')]);if(_0x275545[_0x1e07('0x27')]){delete _0x275545[_0x1e07('0x27')];}_0x1ac57a[_0x1e07('0x17')](_0x4b6c46)['send'](_0x275545);};}exports[_0x1e07('0x28')]=function(_0x29171f,_0xb76556){var _0x418165={},_0x338081={},_0x289efa={'count':0x0,'rows':[]};return db['CmCompany'][_0x1e07('0x29')]()['then'](function(_0xbc86ea){_0x338081[_0x1e07('0x2a')]=_['keys'](_0xbc86ea);_0x338081[_0x1e07('0x2b')]=_[_0x1e07('0x2c')](_0x29171f['query']);_0x338081[_0x1e07('0x2d')]=_[_0x1e07('0x2e')](_0x338081[_0x1e07('0x2a')],_0x338081[_0x1e07('0x2b')]);_0x418165['attributes']=_[_0x1e07('0x2e')](_0x338081[_0x1e07('0x2a')],qs[_0x1e07('0x2f')](_0x29171f[_0x1e07('0x2b')][_0x1e07('0x2f')]));_0x418165[_0x1e07('0x30')]=_0x418165[_0x1e07('0x30')]['length']?_0x418165[_0x1e07('0x30')]:_0x338081[_0x1e07('0x2a')];if(!_0x29171f[_0x1e07('0x2b')]['hasOwnProperty'](_0x1e07('0x31'))){_0x418165['limit']=qs[_0x1e07('0x1c')](_0x29171f[_0x1e07('0x2b')][_0x1e07('0x1c')]);_0x418165[_0x1e07('0x1b')]=qs[_0x1e07('0x1b')](_0x29171f[_0x1e07('0x2b')][_0x1e07('0x1b')]);}_0x418165[_0x1e07('0x32')]=qs[_0x1e07('0x33')](_0x29171f[_0x1e07('0x2b')][_0x1e07('0x33')]);_0x418165[_0x1e07('0x34')]=qs[_0x1e07('0x2d')](_[_0x1e07('0x35')](_0x29171f['query'],_0x338081[_0x1e07('0x2d')]),_0xbc86ea);if(_0x29171f[_0x1e07('0x2b')][_0x1e07('0x36')]){_0x418165[_0x1e07('0x34')]=_[_0x1e07('0x37')](_0x418165[_0x1e07('0x34')],{'$or':_[_0x1e07('0x38')](_0x418165[_0x1e07('0x30')],function(_0x88ebec){var _0x20443a={};_0x20443a[_0x88ebec]={'$like':'%'+_0x29171f[_0x1e07('0x2b')][_0x1e07('0x36')]+'%'};return _0x20443a;})});}_0x418165=_['merge']({},_0x418165,_0x29171f[_0x1e07('0x39')]);var _0x257ef3={'where':_0x418165['where']};return db['CmCompany']['count'](_0x257ef3)[_0x1e07('0x20')](function(_0x41c365){_0x289efa[_0x1e07('0x1a')]=_0x41c365;if(_0x29171f[_0x1e07('0x2b')][_0x1e07('0x3a')]){_0x418165['include']=[{'all':!![]}];}return db[_0x1e07('0x3b')][_0x1e07('0x3c')](_0x418165);})[_0x1e07('0x20')](function(_0x10eab5){_0x289efa[_0x1e07('0x3d')]=_0x10eab5;return _0x289efa;})[_0x1e07('0x20')](respondWithFilteredResult(_0xb76556,_0x418165))['catch'](handleError(_0xb76556,null));})['catch'](handleError(_0xb76556,null));};exports[_0x1e07('0x3e')]=function(_0x4effbe,_0x584bcd){var _0x5a51f6={'raw':![],'where':{'id':_0x4effbe[_0x1e07('0x3f')]['id']}},_0x5b809c={};_0x5b809c[_0x1e07('0x2a')]=_[_0x1e07('0x2c')](db[_0x1e07('0x3b')][_0x1e07('0x40')]);_0x5b809c['query']=_[_0x1e07('0x2c')](_0x4effbe['query']);_0x5b809c[_0x1e07('0x2d')]=_[_0x1e07('0x2e')](_0x5b809c['model'],_0x5b809c[_0x1e07('0x2b')]);_0x5a51f6['attributes']=_['intersection'](_0x5b809c['model'],qs[_0x1e07('0x2f')](_0x4effbe[_0x1e07('0x2b')]['fields']));_0x5a51f6[_0x1e07('0x30')]=_0x5a51f6['attributes'][_0x1e07('0x41')]?_0x5a51f6[_0x1e07('0x30')]:_0x5b809c['model'];if(_0x4effbe[_0x1e07('0x2b')]['includeAll']){_0x5a51f6[_0x1e07('0x42')]=[{'all':!![]}];}_0x5a51f6=_[_0x1e07('0x37')]({},_0x5a51f6,_0x4effbe[_0x1e07('0x39')]);return db['CmCompany'][_0x1e07('0x43')](_0x5a51f6)[_0x1e07('0x20')](handleEntityNotFound(_0x584bcd,null))['then'](respondWithResult(_0x584bcd,null))[_0x1e07('0x44')](handleError(_0x584bcd,null));};exports['create']=function(_0x2b273b,_0x16e5de){return db[_0x1e07('0x3b')][_0x1e07('0x45')](_0x2b273b[_0x1e07('0x46')],{})[_0x1e07('0x20')](function(_0x718fa1){var _0x70d36a=_0x2b273b[_0x1e07('0x47')][_0x1e07('0x21')]({'plain':!![]});if(!_0x70d36a)throw new Error(_0x1e07('0x48'));if(_0x70d36a[_0x1e07('0x49')]===_0x1e07('0x47')){var _0x15d724=_0x718fa1[_0x1e07('0x21')]({'plain':!![]});var _0x3719d1=_0x1e07('0x22');return db[_0x1e07('0x4a')][_0x1e07('0x43')]({'where':{'name':_0x3719d1,'userProfileId':_0x70d36a['userProfileId']},'raw':!![]})[_0x1e07('0x20')](function(_0x4a7c83){if(_0x4a7c83&&_0x4a7c83[_0x1e07('0x4b')]===0x0){return db[_0x1e07('0x23')]['create']({'name':_0x15d724['name'],'resourceId':_0x15d724['id'],'type':_0x4a7c83[_0x1e07('0x27')],'sectionId':_0x4a7c83['id']},{})[_0x1e07('0x20')](function(){return _0x718fa1;});}else{return _0x718fa1;}})[_0x1e07('0x44')](function(_0x5266af){logger[_0x1e07('0x25')](_0x1e07('0x4c'),_0x5266af);throw _0x5266af;});}return _0x718fa1;})[_0x1e07('0x20')](respondWithResult(_0x16e5de,0xc9))['catch'](handleError(_0x16e5de,null));};exports[_0x1e07('0x4d')]=function(_0x5069b6,_0x2cf626){if(_0x5069b6[_0x1e07('0x46')]['id']){delete _0x5069b6[_0x1e07('0x46')]['id'];}return db[_0x1e07('0x3b')][_0x1e07('0x43')]({'where':{'id':_0x5069b6[_0x1e07('0x3f')]['id']}})[_0x1e07('0x20')](handleEntityNotFound(_0x2cf626,null))[_0x1e07('0x20')](saveUpdates(_0x5069b6['body'],null))[_0x1e07('0x20')](respondWithResult(_0x2cf626,null))[_0x1e07('0x44')](handleError(_0x2cf626,null));};exports[_0x1e07('0x4e')]=function(_0x22c76a,_0x1c63d8){return db[_0x1e07('0x3b')][_0x1e07('0x43')]({'where':{'id':_0x22c76a[_0x1e07('0x3f')]['id']}})['then'](handleEntityNotFound(_0x1c63d8,null))['then'](removeEntity(_0x1c63d8,null))[_0x1e07('0x44')](handleError(_0x1c63d8,null));};exports[_0x1e07('0x29')]=function(_0x8fbf13,_0x37356a){return db[_0x1e07('0x3b')]['describe']()['then'](respondWithResult(_0x37356a,null))[_0x1e07('0x44')](handleError(_0x37356a,null));};exports[_0x1e07('0x4f')]=function(_0x5331d3,_0x124391,_0x5886fb){return db[_0x1e07('0x50')]['find']({'where':{'id':_0x5331d3[_0x1e07('0x3f')]['id']}})[_0x1e07('0x20')](handleEntityNotFound(_0x124391,null))['then'](function(_0x168072){if(_0x168072){return _0x168072[_0x1e07('0x4f')](_0x5331d3['body']['ids'],_[_0x1e07('0x51')](_0x5331d3[_0x1e07('0x46')],[_0x1e07('0x52'),'id'])||{});}})['then'](respondWithResult(_0x124391,null))['catch'](handleError(_0x124391,null));};exports[_0x1e07('0x53')]=function(_0x19499e,_0x38a972,_0x4c3b57){var _0x30e426={};var _0x3fd280={};var _0x206618;var _0x213833;return db[_0x1e07('0x3b')][_0x1e07('0x54')]({'where':{'id':_0x19499e[_0x1e07('0x3f')]['id']}})[_0x1e07('0x20')](handleEntityNotFound(_0x38a972,null))[_0x1e07('0x20')](function(_0x44e064){if(_0x44e064){_0x206618=_0x44e064;_0x3fd280[_0x1e07('0x2a')]=_[_0x1e07('0x2c')](db[_0x1e07('0x50')]['rawAttributes']);_0x3fd280['query']=_['keys'](_0x19499e['query']);_0x3fd280[_0x1e07('0x2d')]=_['intersection'](_0x3fd280[_0x1e07('0x2a')],_0x3fd280[_0x1e07('0x2b')]);_0x30e426[_0x1e07('0x30')]=_['intersection'](_0x3fd280[_0x1e07('0x2a')],qs[_0x1e07('0x2f')](_0x19499e['query'][_0x1e07('0x2f')]));_0x30e426['attributes']=_0x30e426[_0x1e07('0x30')][_0x1e07('0x41')]?_0x30e426[_0x1e07('0x30')]:_0x3fd280[_0x1e07('0x2a')];_0x30e426['order']=qs[_0x1e07('0x33')](_0x19499e[_0x1e07('0x2b')]['sort']);_0x30e426[_0x1e07('0x34')]=qs[_0x1e07('0x2d')](_[_0x1e07('0x35')](_0x19499e[_0x1e07('0x2b')],_0x3fd280['filters']));if(_0x19499e['query'][_0x1e07('0x36')]){_0x30e426[_0x1e07('0x34')]=_['merge'](_0x30e426[_0x1e07('0x34')],{'$or':_[_0x1e07('0x38')](_0x30e426['attributes'],function(_0x55bac2){var _0x535463={};_0x535463[_0x55bac2]={'$like':'%'+_0x19499e[_0x1e07('0x2b')]['filter']+'%'};return _0x535463;})});}_0x30e426=_['merge']({},_0x30e426,_0x19499e['options']);return _0x206618[_0x1e07('0x53')](_0x30e426);}})[_0x1e07('0x20')](function(_0x336450){if(_0x336450){_0x213833=_0x336450[_0x1e07('0x41')];if(!_0x19499e['query'][_0x1e07('0x55')](_0x1e07('0x31'))){_0x30e426[_0x1e07('0x1c')]=qs[_0x1e07('0x1c')](_0x19499e[_0x1e07('0x2b')][_0x1e07('0x1c')]);_0x30e426['offset']=qs[_0x1e07('0x1b')](_0x19499e[_0x1e07('0x2b')]['offset']);}return _0x206618['getContacts'](_0x30e426);}})[_0x1e07('0x20')](function(_0x56ba10){if(_0x56ba10){return _0x56ba10?{'count':_0x213833,'rows':_0x56ba10}:null;}})[_0x1e07('0x20')](respondWithResult(_0x38a972,null))[_0x1e07('0x44')](handleError(_0x38a972,null));};