e3920180ec19e92fc55b4c276a131280f1595545
[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 _0xe399=['save','update','destroy','then','get','UserProfileResource','sendStatus','error','stack','send','index','describe','keys','query','filters','intersection','attributes','length','order','sort','where','pick','filter','merge','options','CmCompany','includeAll','include','findAll','rows','catch','show','params','model','fields','create','body','user','UserProfileSection','find','userProfileId','autoAssociation','name','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','CmContact','ids','omit','getContacts','findOne','rawAttributes','map','nolimit','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject'];(function(_0xe1b3c7,_0x484713){var _0x5aa656=function(_0x409efe){while(--_0x409efe){_0xe1b3c7['push'](_0xe1b3c7['shift']());}};_0x5aa656(++_0x484713);}(_0xe399,0x140));var _0x9e39=function(_0x39284f,_0x43c009){_0x39284f=_0x39284f-0x0;var _0x235447=_0xe399[_0x39284f];return _0x235447;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9e39('0x0'));var zipdir=require(_0x9e39('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9e39('0x2'));var moment=require(_0x9e39('0x3'));var BPromise=require(_0x9e39('0x4'));var Mustache=require(_0x9e39('0x5'));var util=require(_0x9e39('0x6'));var path=require(_0x9e39('0x7'));var sox=require('sox');var csv=require(_0x9e39('0x8'));var ejs=require(_0x9e39('0x9'));var fs=require('fs');var fs_extra=require(_0x9e39('0xa'));var _=require(_0x9e39('0xb'));var squel=require('squel');var crypto=require(_0x9e39('0xc'));var jsforce=require(_0x9e39('0xd'));var deskjs=require(_0x9e39('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x9e39('0xf'));var Redis=require(_0x9e39('0x10'));var authService=require(_0x9e39('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x9e39('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9e39('0x13'))(_0x9e39('0x14'));var utils=require(_0x9e39('0x15'));var config=require(_0x9e39('0x16'));var licenseUtil=require(_0x9e39('0x17'));var db=require(_0x9e39('0x18'))['db'];function respondWithStatusCode(_0x1e2d47,_0x4c9260){_0x4c9260=_0x4c9260||0xcc;return function(_0x580bbe){if(_0x580bbe){return _0x1e2d47['sendStatus'](_0x4c9260);}return _0x1e2d47[_0x9e39('0x19')](_0x4c9260)[_0x9e39('0x1a')]();};}function respondWithResult(_0x3c0a91,_0x21f421){_0x21f421=_0x21f421||0xc8;return function(_0x45a57f){if(_0x45a57f){return _0x3c0a91[_0x9e39('0x19')](_0x21f421)[_0x9e39('0x1b')](_0x45a57f);}};}function respondWithFilteredResult(_0x5533be,_0x5c9e69){return function(_0x418969){if(_0x418969){var _0x45af98=typeof _0x5c9e69[_0x9e39('0x1c')]===_0x9e39('0x1d')&&typeof _0x5c9e69[_0x9e39('0x1e')]==='undefined';var _0x5688b9=_0x418969[_0x9e39('0x1f')];var _0x31f7a9=_0x45af98?0x0:_0x5c9e69['offset'];var _0x232cfb=_0x45af98?_0x418969[_0x9e39('0x1f')]:_0x5c9e69[_0x9e39('0x1c')]+_0x5c9e69[_0x9e39('0x1e')];var _0x1c2f2d;if(_0x232cfb>=_0x5688b9){_0x232cfb=_0x5688b9;_0x1c2f2d=0xc8;}else{_0x1c2f2d=0xce;}_0x5533be[_0x9e39('0x19')](_0x1c2f2d);return _0x5533be[_0x9e39('0x20')](_0x9e39('0x21'),_0x31f7a9+'-'+_0x232cfb+'/'+_0x5688b9)[_0x9e39('0x1b')](_0x418969);}return null;};}function patchUpdates(_0x4102bb){return function(_0x3b632e){try{jsonpatch[_0x9e39('0x22')](_0x3b632e,_0x4102bb,!![]);}catch(_0x347fbd){return BPromise[_0x9e39('0x23')](_0x347fbd);}return _0x3b632e[_0x9e39('0x24')]();};}function saveUpdates(_0x255394,_0x2cce29){return function(_0x550977){if(_0x550977){return _0x550977[_0x9e39('0x25')](_0x255394)['then'](function(_0x315b37){return _0x315b37;});}return null;};}function removeEntity(_0x559279,_0x19d1d1){return function(_0xf1714c){if(_0xf1714c){return _0xf1714c[_0x9e39('0x26')]()[_0x9e39('0x27')](function(){var _0x3b92b9=_0xf1714c[_0x9e39('0x28')]({'plain':!![]});var _0x235a9f='Companies';return db[_0x9e39('0x29')][_0x9e39('0x26')]({'where':{'type':_0x235a9f,'resourceId':_0x3b92b9['id']}})[_0x9e39('0x27')](function(){return _0xf1714c;});})[_0x9e39('0x27')](function(){_0x559279[_0x9e39('0x19')](0xcc)[_0x9e39('0x1a')]();});}};}function handleEntityNotFound(_0xf1bb4b,_0x745f53){return function(_0x1ef6f6){if(!_0x1ef6f6){_0xf1bb4b[_0x9e39('0x2a')](0x194);}return _0x1ef6f6;};}function handleError(_0x113bf2,_0x4cbe05){_0x4cbe05=_0x4cbe05||0x1f4;return function(_0xc53c98){logger[_0x9e39('0x2b')](_0xc53c98[_0x9e39('0x2c')]);if(_0xc53c98['name']){delete _0xc53c98['name'];}_0x113bf2[_0x9e39('0x19')](_0x4cbe05)[_0x9e39('0x2d')](_0xc53c98);};}exports[_0x9e39('0x2e')]=function(_0x341502,_0x1d87f3){var _0x2ac69c={},_0x1be571={},_0x46338d={'count':0x0,'rows':[]};return db['CmCompany'][_0x9e39('0x2f')]()['then'](function(_0x1b600e){_0x1be571['model']=_[_0x9e39('0x30')](_0x1b600e);_0x1be571['query']=_[_0x9e39('0x30')](_0x341502[_0x9e39('0x31')]);_0x1be571[_0x9e39('0x32')]=_[_0x9e39('0x33')](_0x1be571['model'],_0x1be571[_0x9e39('0x31')]);_0x2ac69c[_0x9e39('0x34')]=_[_0x9e39('0x33')](_0x1be571['model'],qs['fields'](_0x341502['query']['fields']));_0x2ac69c[_0x9e39('0x34')]=_0x2ac69c[_0x9e39('0x34')][_0x9e39('0x35')]?_0x2ac69c[_0x9e39('0x34')]:_0x1be571['model'];if(!_0x341502['query']['hasOwnProperty']('nolimit')){_0x2ac69c['limit']=qs[_0x9e39('0x1e')](_0x341502[_0x9e39('0x31')][_0x9e39('0x1e')]);_0x2ac69c['offset']=qs[_0x9e39('0x1c')](_0x341502[_0x9e39('0x31')]['offset']);}_0x2ac69c[_0x9e39('0x36')]=qs['sort'](_0x341502['query'][_0x9e39('0x37')]);_0x2ac69c[_0x9e39('0x38')]=qs['filters'](_[_0x9e39('0x39')](_0x341502['query'],_0x1be571[_0x9e39('0x32')]),_0x1b600e);if(_0x341502['query'][_0x9e39('0x3a')]){_0x2ac69c['where']=_[_0x9e39('0x3b')](_0x2ac69c[_0x9e39('0x38')],{'$or':_['map'](_0x2ac69c['attributes'],function(_0x370592){var _0x1ee377={};_0x1ee377[_0x370592]={'$like':'%'+_0x341502[_0x9e39('0x31')][_0x9e39('0x3a')]+'%'};return _0x1ee377;})});}_0x2ac69c=_[_0x9e39('0x3b')]({},_0x2ac69c,_0x341502[_0x9e39('0x3c')]);var _0x116617={'where':_0x2ac69c[_0x9e39('0x38')]};return db[_0x9e39('0x3d')][_0x9e39('0x1f')](_0x116617)['then'](function(_0x1c27af){_0x46338d[_0x9e39('0x1f')]=_0x1c27af;if(_0x341502[_0x9e39('0x31')][_0x9e39('0x3e')]){_0x2ac69c[_0x9e39('0x3f')]=[{'all':!![]}];}return db[_0x9e39('0x3d')][_0x9e39('0x40')](_0x2ac69c);})['then'](function(_0x39cf92){_0x46338d[_0x9e39('0x41')]=_0x39cf92;return _0x46338d;})[_0x9e39('0x27')](respondWithFilteredResult(_0x1d87f3,_0x2ac69c))[_0x9e39('0x42')](handleError(_0x1d87f3,null));})[_0x9e39('0x42')](handleError(_0x1d87f3,null));};exports[_0x9e39('0x43')]=function(_0x3ab2c0,_0x3d44b7){var _0x243524={'raw':![],'where':{'id':_0x3ab2c0[_0x9e39('0x44')]['id']}},_0x2e846f={};_0x2e846f['model']=_[_0x9e39('0x30')](db[_0x9e39('0x3d')]['rawAttributes']);_0x2e846f[_0x9e39('0x31')]=_[_0x9e39('0x30')](_0x3ab2c0[_0x9e39('0x31')]);_0x2e846f[_0x9e39('0x32')]=_[_0x9e39('0x33')](_0x2e846f[_0x9e39('0x45')],_0x2e846f['query']);_0x243524[_0x9e39('0x34')]=_[_0x9e39('0x33')](_0x2e846f[_0x9e39('0x45')],qs[_0x9e39('0x46')](_0x3ab2c0['query'][_0x9e39('0x46')]));_0x243524[_0x9e39('0x34')]=_0x243524['attributes'][_0x9e39('0x35')]?_0x243524[_0x9e39('0x34')]:_0x2e846f[_0x9e39('0x45')];if(_0x3ab2c0[_0x9e39('0x31')][_0x9e39('0x3e')]){_0x243524[_0x9e39('0x3f')]=[{'all':!![]}];}_0x243524=_[_0x9e39('0x3b')]({},_0x243524,_0x3ab2c0['options']);return db['CmCompany']['find'](_0x243524)[_0x9e39('0x27')](handleEntityNotFound(_0x3d44b7,null))[_0x9e39('0x27')](respondWithResult(_0x3d44b7,null))[_0x9e39('0x42')](handleError(_0x3d44b7,null));};exports[_0x9e39('0x47')]=function(_0x5b2429,_0x6853af){return db['CmCompany']['create'](_0x5b2429[_0x9e39('0x48')],{})['then'](function(_0x80b8b3){var _0x5d3e05=_0x5b2429['user'][_0x9e39('0x28')]({'plain':!![]});if(!_0x5d3e05)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5d3e05['role']===_0x9e39('0x49')){var _0xf4c2e=_0x80b8b3[_0x9e39('0x28')]({'plain':!![]});var _0x501ff7='Companies';return db[_0x9e39('0x4a')][_0x9e39('0x4b')]({'where':{'name':_0x501ff7,'userProfileId':_0x5d3e05[_0x9e39('0x4c')]},'raw':!![]})[_0x9e39('0x27')](function(_0x347a5f){if(_0x347a5f&&_0x347a5f[_0x9e39('0x4d')]===0x0){return db['UserProfileResource'][_0x9e39('0x47')]({'name':_0xf4c2e[_0x9e39('0x4e')],'resourceId':_0xf4c2e['id'],'type':_0x347a5f['name'],'sectionId':_0x347a5f['id']},{})[_0x9e39('0x27')](function(){return _0x80b8b3;});}else{return _0x80b8b3;}})[_0x9e39('0x42')](function(_0x1708e2){logger['error'](_0x9e39('0x4f'),_0x1708e2);throw _0x1708e2;});}return _0x80b8b3;})['then'](respondWithResult(_0x6853af,0xc9))['catch'](handleError(_0x6853af,null));};exports['update']=function(_0xec272e,_0x7f9c59){if(_0xec272e[_0x9e39('0x48')]['id']){delete _0xec272e['body']['id'];}return db['CmCompany'][_0x9e39('0x4b')]({'where':{'id':_0xec272e['params']['id']}})[_0x9e39('0x27')](handleEntityNotFound(_0x7f9c59,null))[_0x9e39('0x27')](saveUpdates(_0xec272e[_0x9e39('0x48')],null))[_0x9e39('0x27')](respondWithResult(_0x7f9c59,null))[_0x9e39('0x42')](handleError(_0x7f9c59,null));};exports['destroy']=function(_0x4c8637,_0x209172){return db[_0x9e39('0x3d')][_0x9e39('0x4b')]({'where':{'id':_0x4c8637[_0x9e39('0x44')]['id']}})[_0x9e39('0x27')](handleEntityNotFound(_0x209172,null))[_0x9e39('0x27')](removeEntity(_0x209172,null))[_0x9e39('0x42')](handleError(_0x209172,null));};exports[_0x9e39('0x2f')]=function(_0x1bcb44,_0x6290e4){return db[_0x9e39('0x3d')][_0x9e39('0x2f')]()['then'](respondWithResult(_0x6290e4,null))[_0x9e39('0x42')](handleError(_0x6290e4,null));};exports[_0x9e39('0x50')]=function(_0x5a37d4,_0x29700e,_0x12e548){return db[_0x9e39('0x51')][_0x9e39('0x4b')]({'where':{'id':_0x5a37d4[_0x9e39('0x44')]['id']}})[_0x9e39('0x27')](handleEntityNotFound(_0x29700e,null))[_0x9e39('0x27')](function(_0x5a49b0){if(_0x5a49b0){return _0x5a49b0[_0x9e39('0x50')](_0x5a37d4['body'][_0x9e39('0x52')],_[_0x9e39('0x53')](_0x5a37d4[_0x9e39('0x48')],[_0x9e39('0x52'),'id'])||{});}})[_0x9e39('0x27')](respondWithResult(_0x29700e,null))[_0x9e39('0x42')](handleError(_0x29700e,null));};exports[_0x9e39('0x54')]=function(_0x16fc8f,_0x3ad325,_0x1639fd){var _0x5e74b4={};var _0xaefb25={};var _0x3214d0;var _0x2842bb;return db['CmCompany'][_0x9e39('0x55')]({'where':{'id':_0x16fc8f[_0x9e39('0x44')]['id']}})[_0x9e39('0x27')](handleEntityNotFound(_0x3ad325,null))[_0x9e39('0x27')](function(_0x300e48){if(_0x300e48){_0x3214d0=_0x300e48;_0xaefb25[_0x9e39('0x45')]=_[_0x9e39('0x30')](db[_0x9e39('0x51')][_0x9e39('0x56')]);_0xaefb25['query']=_[_0x9e39('0x30')](_0x16fc8f[_0x9e39('0x31')]);_0xaefb25[_0x9e39('0x32')]=_[_0x9e39('0x33')](_0xaefb25['model'],_0xaefb25[_0x9e39('0x31')]);_0x5e74b4[_0x9e39('0x34')]=_[_0x9e39('0x33')](_0xaefb25['model'],qs[_0x9e39('0x46')](_0x16fc8f[_0x9e39('0x31')][_0x9e39('0x46')]));_0x5e74b4[_0x9e39('0x34')]=_0x5e74b4[_0x9e39('0x34')][_0x9e39('0x35')]?_0x5e74b4[_0x9e39('0x34')]:_0xaefb25['model'];_0x5e74b4['order']=qs['sort'](_0x16fc8f[_0x9e39('0x31')][_0x9e39('0x37')]);_0x5e74b4[_0x9e39('0x38')]=qs[_0x9e39('0x32')](_[_0x9e39('0x39')](_0x16fc8f[_0x9e39('0x31')],_0xaefb25[_0x9e39('0x32')]));if(_0x16fc8f[_0x9e39('0x31')][_0x9e39('0x3a')]){_0x5e74b4['where']=_[_0x9e39('0x3b')](_0x5e74b4['where'],{'$or':_[_0x9e39('0x57')](_0x5e74b4[_0x9e39('0x34')],function(_0x28b74a){var _0x1732d2={};_0x1732d2[_0x28b74a]={'$like':'%'+_0x16fc8f[_0x9e39('0x31')][_0x9e39('0x3a')]+'%'};return _0x1732d2;})});}_0x5e74b4=_[_0x9e39('0x3b')]({},_0x5e74b4,_0x16fc8f[_0x9e39('0x3c')]);return _0x3214d0[_0x9e39('0x54')](_0x5e74b4);}})[_0x9e39('0x27')](function(_0x3f0093){if(_0x3f0093){_0x2842bb=_0x3f0093['length'];if(!_0x16fc8f[_0x9e39('0x31')]['hasOwnProperty'](_0x9e39('0x58'))){_0x5e74b4[_0x9e39('0x1e')]=qs[_0x9e39('0x1e')](_0x16fc8f[_0x9e39('0x31')][_0x9e39('0x1e')]);_0x5e74b4[_0x9e39('0x1c')]=qs['offset'](_0x16fc8f[_0x9e39('0x31')][_0x9e39('0x1c')]);}return _0x3214d0[_0x9e39('0x54')](_0x5e74b4);}})[_0x9e39('0x27')](function(_0x32768b){if(_0x32768b){return _0x32768b?{'count':_0x2842bb,'rows':_0x32768b}:null;}})['then'](respondWithResult(_0x3ad325,null))[_0x9e39('0x42')](handleError(_0x3ad325,null));};