8b2d2d7da8fad24148de6bf3f4ca015d2729fc75
[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 _0x5cf8=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','status','json','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','end','sendStatus','error','name','send','describe','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','map','options','findAll','rows','catch','show','params','CmCompany','rawAttributes','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','omit','ids','getContacts','CmContact','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','lodash','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service'];(function(_0x673734,_0x3bd38c){var _0x22bf02=function(_0x1a7585){while(--_0x1a7585){_0x673734['push'](_0x673734['shift']());}};_0x22bf02(++_0x3bd38c);}(_0x5cf8,0x143));var _0x85cf=function(_0x36625f,_0x727bd6){_0x36625f=_0x36625f-0x0;var _0x135981=_0x5cf8[_0x36625f];return _0x135981;};'use strict';var pdf=require(_0x85cf('0x0'));var emlformat=require(_0x85cf('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x85cf('0x2'));var jsonpatch=require(_0x85cf('0x3'));var rp=require(_0x85cf('0x4'));var moment=require(_0x85cf('0x5'));var BPromise=require(_0x85cf('0x6'));var Mustache=require(_0x85cf('0x7'));var util=require(_0x85cf('0x8'));var path=require('path');var sox=require(_0x85cf('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x85cf('0xa'));var squel=require('squel');var crypto=require(_0x85cf('0xb'));var jsforce=require(_0x85cf('0xc'));var deskjs=require(_0x85cf('0xd'));var toCsv=require(_0x85cf('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x85cf('0xf'));var authService=require(_0x85cf('0x10'));var qs=require(_0x85cf('0x11'));var as=require(_0x85cf('0x12'));var hardwareService=require(_0x85cf('0x13'));var logger=require(_0x85cf('0x14'))(_0x85cf('0x15'));var utils=require(_0x85cf('0x16'));var config=require(_0x85cf('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4c24ba,_0x294091){_0x294091=_0x294091||0xcc;return function(_0x1b7f4f){if(_0x1b7f4f){return _0x4c24ba['sendStatus'](_0x294091);}return _0x4c24ba[_0x85cf('0x18')](_0x294091)['end']();};}function respondWithResult(_0x16bbb1,_0x1fe83a){_0x1fe83a=_0x1fe83a||0xc8;return function(_0x5a243e){if(_0x5a243e){return _0x16bbb1['status'](_0x1fe83a)[_0x85cf('0x19')](_0x5a243e);}};}function respondWithFilteredResult(_0x20ac6f,_0x1cb612){return function(_0x212b77){if(_0x212b77){var _0x5d16ad=_0x212b77[_0x85cf('0x1a')],_0x22051=_0x1cb612[_0x85cf('0x1b')],_0x27dd71=_0x1cb612[_0x85cf('0x1b')]+_0x1cb612['limit'],_0x96bb86;if(_0x27dd71>=_0x5d16ad){_0x27dd71=_0x5d16ad;_0x96bb86=0xc8;}else{_0x96bb86=0xce;}_0x20ac6f['status'](_0x96bb86);return _0x20ac6f[_0x85cf('0x1c')](_0x85cf('0x1d'),_0x22051+'-'+_0x27dd71+'/'+_0x5d16ad)['json'](_0x212b77);}return null;};}function patchUpdates(_0xced2a2){return function(_0x53c96a){try{jsonpatch[_0x85cf('0x1e')](_0x53c96a,_0xced2a2,!![]);}catch(_0x61d230){return BPromise[_0x85cf('0x1f')](_0x61d230);}return _0x53c96a[_0x85cf('0x20')]();};}function saveUpdates(_0xb6e70e,_0x1b5299){return function(_0x3b74df){if(_0x3b74df){return _0x3b74df[_0x85cf('0x21')](_0xb6e70e)[_0x85cf('0x22')](function(_0x2f6527){return _0x2f6527;});}return null;};}function removeEntity(_0x52349f,_0x1156cb){return function(_0x3f63a3){if(_0x3f63a3){return _0x3f63a3[_0x85cf('0x23')]()[_0x85cf('0x22')](function(){var _0xf4aa29=_0x3f63a3['get']({'plain':!![]});var _0x1c1121='Companies';return db[_0x85cf('0x24')][_0x85cf('0x23')]({'where':{'type':_0x1c1121,'resourceId':_0xf4aa29['id']}})['then'](function(){return _0x3f63a3;});})['then'](function(){_0x52349f[_0x85cf('0x18')](0xcc)[_0x85cf('0x25')]();});}};}function handleEntityNotFound(_0x485f15,_0x543624){return function(_0xfa4768){if(!_0xfa4768){_0x485f15[_0x85cf('0x26')](0x194);}return _0xfa4768;};}function handleError(_0x2f67cc,_0x34cb4b){_0x34cb4b=_0x34cb4b||0x1f4;return function(_0x583231){logger[_0x85cf('0x27')](_0x583231['stack']);if(_0x583231[_0x85cf('0x28')]){delete _0x583231[_0x85cf('0x28')];}_0x2f67cc[_0x85cf('0x18')](_0x34cb4b)[_0x85cf('0x29')](_0x583231);};}exports['index']=function(_0x30733b,_0x3d5695){var _0x386fb5={},_0x11e113={},_0x4f6bed={'count':0x0,'rows':[]};return db['CmCompany'][_0x85cf('0x2a')]()['then'](function(_0x48d920){_0x11e113[_0x85cf('0x2b')]=_[_0x85cf('0x2c')](_0x48d920);_0x11e113[_0x85cf('0x2d')]=_['keys'](_0x30733b[_0x85cf('0x2d')]);_0x11e113[_0x85cf('0x2e')]=_[_0x85cf('0x2f')](_0x11e113[_0x85cf('0x2b')],_0x11e113[_0x85cf('0x2d')]);_0x386fb5[_0x85cf('0x30')]=_['intersection'](_0x11e113[_0x85cf('0x2b')],qs['fields'](_0x30733b[_0x85cf('0x2d')][_0x85cf('0x31')]));_0x386fb5[_0x85cf('0x30')]=_0x386fb5['attributes'][_0x85cf('0x32')]?_0x386fb5[_0x85cf('0x30')]:_0x11e113['model'];if(!_0x30733b[_0x85cf('0x2d')][_0x85cf('0x33')](_0x85cf('0x34'))){_0x386fb5[_0x85cf('0x35')]=qs[_0x85cf('0x35')](_0x30733b['query']['limit']);_0x386fb5['offset']=qs['offset'](_0x30733b[_0x85cf('0x2d')]['offset']);}_0x386fb5[_0x85cf('0x36')]=qs['sort'](_0x30733b[_0x85cf('0x2d')][_0x85cf('0x37')]);_0x386fb5['where']=qs[_0x85cf('0x2e')](_[_0x85cf('0x38')](_0x30733b[_0x85cf('0x2d')],_0x11e113['filters']),_0x48d920);if(_0x30733b[_0x85cf('0x2d')][_0x85cf('0x39')]){_0x386fb5[_0x85cf('0x3a')]=_[_0x85cf('0x3b')](_0x386fb5[_0x85cf('0x3a')],{'$or':_[_0x85cf('0x3c')](_0x386fb5[_0x85cf('0x30')],function(_0x3a1995){var _0x327e69={};_0x327e69[_0x3a1995]={'$like':'%'+_0x30733b['query'][_0x85cf('0x39')]+'%'};return _0x327e69;})});}_0x386fb5=_[_0x85cf('0x3b')]({},_0x386fb5,_0x30733b[_0x85cf('0x3d')]);var _0x1d0f1e={'where':_0x386fb5['where']};return db['CmCompany'][_0x85cf('0x1a')](_0x1d0f1e)[_0x85cf('0x22')](function(_0x249f9f){_0x4f6bed[_0x85cf('0x1a')]=_0x249f9f;if(_0x30733b[_0x85cf('0x2d')]['includeAll']){_0x386fb5['include']=[{'all':!![]}];}return db['CmCompany'][_0x85cf('0x3e')](_0x386fb5);})[_0x85cf('0x22')](function(_0x4842c7){_0x4f6bed[_0x85cf('0x3f')]=_0x4842c7;return _0x4f6bed;})['then'](respondWithFilteredResult(_0x3d5695,_0x386fb5))[_0x85cf('0x40')](handleError(_0x3d5695,null));})['catch'](handleError(_0x3d5695,null));};exports[_0x85cf('0x41')]=function(_0x1e64fa,_0x18e542){var _0x2768ef={'raw':![],'where':{'id':_0x1e64fa[_0x85cf('0x42')]['id']}},_0x1df328={};_0x1df328[_0x85cf('0x2b')]=_[_0x85cf('0x2c')](db[_0x85cf('0x43')][_0x85cf('0x44')]);_0x1df328[_0x85cf('0x2d')]=_[_0x85cf('0x2c')](_0x1e64fa[_0x85cf('0x2d')]);_0x1df328[_0x85cf('0x2e')]=_[_0x85cf('0x2f')](_0x1df328[_0x85cf('0x2b')],_0x1df328[_0x85cf('0x2d')]);_0x2768ef[_0x85cf('0x30')]=_[_0x85cf('0x2f')](_0x1df328[_0x85cf('0x2b')],qs['fields'](_0x1e64fa['query'][_0x85cf('0x31')]));_0x2768ef[_0x85cf('0x30')]=_0x2768ef[_0x85cf('0x30')][_0x85cf('0x32')]?_0x2768ef[_0x85cf('0x30')]:_0x1df328[_0x85cf('0x2b')];if(_0x1e64fa[_0x85cf('0x2d')][_0x85cf('0x45')]){_0x2768ef['include']=[{'all':!![]}];}_0x2768ef=_[_0x85cf('0x3b')]({},_0x2768ef,_0x1e64fa['options']);return db[_0x85cf('0x43')][_0x85cf('0x46')](_0x2768ef)['then'](handleEntityNotFound(_0x18e542,null))['then'](respondWithResult(_0x18e542,null))['catch'](handleError(_0x18e542,null));};exports[_0x85cf('0x47')]=function(_0x12ccf4,_0x4d0b51){return db['CmCompany'][_0x85cf('0x47')](_0x12ccf4[_0x85cf('0x48')],{})[_0x85cf('0x22')](function(_0x54f9b6){var _0x1e5074=_0x12ccf4[_0x85cf('0x49')][_0x85cf('0x4a')]({'plain':!![]});if(!_0x1e5074)throw new Error(_0x85cf('0x4b'));if(_0x1e5074[_0x85cf('0x4c')]===_0x85cf('0x49')){var _0x318c00=_0x54f9b6[_0x85cf('0x4a')]({'plain':!![]});var _0x5e1dc0='Companies';return db[_0x85cf('0x4d')][_0x85cf('0x46')]({'where':{'name':_0x5e1dc0,'userProfileId':_0x1e5074[_0x85cf('0x4e')]},'raw':!![]})[_0x85cf('0x22')](function(_0x1f5b7c){if(_0x1f5b7c&&_0x1f5b7c['autoAssociation']===0x0){return db[_0x85cf('0x24')]['create']({'name':_0x318c00[_0x85cf('0x28')],'resourceId':_0x318c00['id'],'type':_0x1f5b7c[_0x85cf('0x28')],'sectionId':_0x1f5b7c['id']},{})[_0x85cf('0x22')](function(){return _0x54f9b6;});}else{return _0x54f9b6;}})['catch'](function(_0x4227f2){logger[_0x85cf('0x27')](_0x85cf('0x4f'),_0x4227f2);throw _0x4227f2;});}return _0x54f9b6;})[_0x85cf('0x22')](respondWithResult(_0x4d0b51,0xc9))[_0x85cf('0x40')](handleError(_0x4d0b51,null));};exports[_0x85cf('0x21')]=function(_0x5abbbd,_0x290d82){if(_0x5abbbd['body']['id']){delete _0x5abbbd[_0x85cf('0x48')]['id'];}return db['CmCompany'][_0x85cf('0x46')]({'where':{'id':_0x5abbbd[_0x85cf('0x42')]['id']}})[_0x85cf('0x22')](handleEntityNotFound(_0x290d82,null))[_0x85cf('0x22')](saveUpdates(_0x5abbbd[_0x85cf('0x48')],null))[_0x85cf('0x22')](respondWithResult(_0x290d82,null))[_0x85cf('0x40')](handleError(_0x290d82,null));};exports[_0x85cf('0x23')]=function(_0xb62991,_0x288d34){return db[_0x85cf('0x43')]['find']({'where':{'id':_0xb62991[_0x85cf('0x42')]['id']}})[_0x85cf('0x22')](handleEntityNotFound(_0x288d34,null))[_0x85cf('0x22')](removeEntity(_0x288d34,null))[_0x85cf('0x40')](handleError(_0x288d34,null));};exports[_0x85cf('0x2a')]=function(_0x416f41,_0x41bc6f){return db[_0x85cf('0x43')]['describe']()[_0x85cf('0x22')](respondWithResult(_0x41bc6f,null))[_0x85cf('0x40')](handleError(_0x41bc6f,null));};exports[_0x85cf('0x50')]=function(_0x57b579,_0x14af12,_0x2eadba){return db['CmContact']['find']({'where':{'id':_0x57b579[_0x85cf('0x42')]['id']}})['then'](handleEntityNotFound(_0x14af12,null))['then'](function(_0x6d65be){if(_0x6d65be){return _0x6d65be[_0x85cf('0x50')](_0x57b579[_0x85cf('0x48')]['ids'],_[_0x85cf('0x51')](_0x57b579['body'],[_0x85cf('0x52'),'id'])||{});}})[_0x85cf('0x22')](respondWithResult(_0x14af12,null))['catch'](handleError(_0x14af12,null));};exports[_0x85cf('0x53')]=function(_0x5d3220,_0x22fe1a,_0x36b26){var _0x4dfa38={};var _0x428744={};var _0x5cf4dd;var _0x444514;return db[_0x85cf('0x43')]['findOne']({'where':{'id':_0x5d3220['params']['id']}})[_0x85cf('0x22')](handleEntityNotFound(_0x22fe1a,null))[_0x85cf('0x22')](function(_0x2e478d){if(_0x2e478d){_0x5cf4dd=_0x2e478d;_0x428744[_0x85cf('0x2b')]=_[_0x85cf('0x2c')](db[_0x85cf('0x54')]['rawAttributes']);_0x428744[_0x85cf('0x2d')]=_[_0x85cf('0x2c')](_0x5d3220[_0x85cf('0x2d')]);_0x428744[_0x85cf('0x2e')]=_[_0x85cf('0x2f')](_0x428744[_0x85cf('0x2b')],_0x428744[_0x85cf('0x2d')]);_0x4dfa38[_0x85cf('0x30')]=_['intersection'](_0x428744[_0x85cf('0x2b')],qs['fields'](_0x5d3220['query'][_0x85cf('0x31')]));_0x4dfa38[_0x85cf('0x30')]=_0x4dfa38[_0x85cf('0x30')]['length']?_0x4dfa38[_0x85cf('0x30')]:_0x428744[_0x85cf('0x2b')];_0x4dfa38[_0x85cf('0x36')]=qs[_0x85cf('0x37')](_0x5d3220['query'][_0x85cf('0x37')]);_0x4dfa38[_0x85cf('0x3a')]=qs[_0x85cf('0x2e')](_['pick'](_0x5d3220[_0x85cf('0x2d')],_0x428744[_0x85cf('0x2e')]));if(_0x5d3220['query'][_0x85cf('0x39')]){_0x4dfa38[_0x85cf('0x3a')]=_[_0x85cf('0x3b')](_0x4dfa38['where'],{'$or':_[_0x85cf('0x3c')](_0x4dfa38[_0x85cf('0x30')],function(_0x38aa9d){var _0x3a8ddb={};_0x3a8ddb[_0x38aa9d]={'$like':'%'+_0x5d3220[_0x85cf('0x2d')][_0x85cf('0x39')]+'%'};return _0x3a8ddb;})});}_0x4dfa38=_['merge']({},_0x4dfa38,_0x5d3220['options']);return _0x5cf4dd['getContacts'](_0x4dfa38);}})[_0x85cf('0x22')](function(_0x3746e7){if(_0x3746e7){_0x444514=_0x3746e7[_0x85cf('0x32')];if(!_0x5d3220[_0x85cf('0x2d')][_0x85cf('0x33')](_0x85cf('0x34'))){_0x4dfa38[_0x85cf('0x35')]=qs[_0x85cf('0x35')](_0x5d3220[_0x85cf('0x2d')][_0x85cf('0x35')]);_0x4dfa38[_0x85cf('0x1b')]=qs[_0x85cf('0x1b')](_0x5d3220[_0x85cf('0x2d')][_0x85cf('0x1b')]);}return _0x5cf4dd[_0x85cf('0x53')](_0x4dfa38);}})['then'](function(_0x1ebd32){if(_0x1ebd32){return _0x1ebd32?{'count':_0x444514,'rows':_0x1ebd32}:null;}})[_0x85cf('0x22')](respondWithResult(_0x22fe1a,null))[_0x85cf('0x40')](handleError(_0x22fe1a,null));};