Built motion from commit da617fac.|2.6.6
[motion2.git] / server / api / intSugarcrmAccount / intSugarcrmAccount.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 _0x1dbb=['map','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','order','filters','pick','filter','where','VIRTUAL','merge','options','SugarcrmAccount','includeAll','include','findAll','rows','catch','show','params','keys','find','body','update','SugarcrmConfiguration','sort','getConfigurations','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','created_by','description','date_start','duration_hours','duration_minutes','parent_id','parent_type','username','password','remoteUri','slice','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','get_module_fields','Calls','values','label','endsWith','value','test','statusCode','send','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','offset','undefined','limit','count','Content-Range','json','reject','save','then','destroy','error','stack','name'];(function(_0x35a3e2,_0x12afc8){var _0x35fe0f=function(_0x2dd731){while(--_0x2dd731){_0x35a3e2['push'](_0x35a3e2['shift']());}};_0x35fe0f(++_0x12afc8);}(_0x1dbb,0x135));var _0xb1db=function(_0x3b9512,_0x20ab2e){_0x3b9512=_0x3b9512-0x0;var _0x29e098=_0x1dbb[_0x3b9512];return _0x29e098;};'use strict';var emlformat=require(_0xb1db('0x0'));var rimraf=require(_0xb1db('0x1'));var zipdir=require(_0xb1db('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xb1db('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xb1db('0x4'));var util=require(_0xb1db('0x5'));var path=require('path');var sox=require(_0xb1db('0x6'));var csv=require(_0xb1db('0x7'));var ejs=require(_0xb1db('0x8'));var fs=require('fs');var fs_extra=require(_0xb1db('0x9'));var _=require(_0xb1db('0xa'));var squel=require(_0xb1db('0xb'));var crypto=require(_0xb1db('0xc'));var jsforce=require(_0xb1db('0xd'));var deskjs=require(_0xb1db('0xe'));var toCsv=require(_0xb1db('0x7'));var querystring=require('querystring');var Papa=require(_0xb1db('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xb1db('0x10'));var hardwareService=require(_0xb1db('0x11'));var logger=require('../../config/logger')(_0xb1db('0x12'));var utils=require(_0xb1db('0x13'));var config=require(_0xb1db('0x14'));var licenseUtil=require(_0xb1db('0x15'));var db=require('../../mysqldb')['db'];var integrations=require(_0xb1db('0x16'));function respondWithStatusCode(_0x5b94a7,_0x152ff3){_0x152ff3=_0x152ff3||0xcc;return function(_0x48c67b){if(_0x48c67b){return _0x5b94a7[_0xb1db('0x17')](_0x152ff3);}return _0x5b94a7['status'](_0x152ff3)[_0xb1db('0x18')]();};}function respondWithResult(_0x2613e4,_0x141636){_0x141636=_0x141636||0xc8;return function(_0x25db90){if(_0x25db90){return _0x2613e4[_0xb1db('0x19')](_0x141636)['json'](_0x25db90);}};}function respondWithFilteredResult(_0x2679b9,_0xfe7b36){return function(_0x15a996){if(_0x15a996){var _0x298fde=typeof _0xfe7b36[_0xb1db('0x1a')]===_0xb1db('0x1b')&&typeof _0xfe7b36[_0xb1db('0x1c')]===_0xb1db('0x1b');var _0x717a3c=_0x15a996[_0xb1db('0x1d')];var _0x101b46=_0x298fde?0x0:_0xfe7b36[_0xb1db('0x1a')];var _0x5540d9=_0x298fde?_0x15a996[_0xb1db('0x1d')]:_0xfe7b36['offset']+_0xfe7b36[_0xb1db('0x1c')];var _0x58dcc3;if(_0x5540d9>=_0x717a3c){_0x5540d9=_0x717a3c;_0x58dcc3=0xc8;}else{_0x58dcc3=0xce;}_0x2679b9['status'](_0x58dcc3);return _0x2679b9['set'](_0xb1db('0x1e'),_0x101b46+'-'+_0x5540d9+'/'+_0x717a3c)[_0xb1db('0x1f')](_0x15a996);}return null;};}function patchUpdates(_0x52f3fc){return function(_0x273bf7){try{jsonpatch['apply'](_0x273bf7,_0x52f3fc,!![]);}catch(_0x1a18ee){return BPromise[_0xb1db('0x20')](_0x1a18ee);}return _0x273bf7[_0xb1db('0x21')]();};}function saveUpdates(_0x2a6328,_0x84895e){return function(_0xfa5ab6){if(_0xfa5ab6){return _0xfa5ab6['update'](_0x2a6328)[_0xb1db('0x22')](function(_0x2c7fa0){return _0x2c7fa0;});}return null;};}function removeEntity(_0x2943a7,_0x4d9d4a){return function(_0x49b74b){if(_0x49b74b){return _0x49b74b[_0xb1db('0x23')]()[_0xb1db('0x22')](function(){_0x2943a7[_0xb1db('0x19')](0xcc)[_0xb1db('0x18')]();});}};}function handleEntityNotFound(_0x4c558f,_0x36e449){return function(_0x11a80c){if(!_0x11a80c){_0x4c558f['sendStatus'](0x194);}return _0x11a80c;};}function handleError(_0x40f07d,_0x2fc708){_0x2fc708=_0x2fc708||0x1f4;return function(_0x50cc9a){logger[_0xb1db('0x24')](_0x50cc9a[_0xb1db('0x25')]);if(_0x50cc9a[_0xb1db('0x26')]){delete _0x50cc9a[_0xb1db('0x26')];}_0x40f07d[_0xb1db('0x19')](_0x2fc708)['send'](_0x50cc9a);};}exports['index']=function(_0x1c63a7,_0x15b813){var _0x250ce1={},_0x570ab7={},_0xe34d06={'count':0x0,'rows':[]};var _0x1c6a87=_[_0xb1db('0x27')](db['SugarcrmAccount'][_0xb1db('0x28')],function(_0x31d6c7){return{'name':_0x31d6c7[_0xb1db('0x29')],'type':_0x31d6c7[_0xb1db('0x2a')][_0xb1db('0x2b')]};});_0x570ab7[_0xb1db('0x2c')]=_[_0xb1db('0x27')](_0x1c6a87,_0xb1db('0x26'));_0x570ab7[_0xb1db('0x2d')]=_['keys'](_0x1c63a7[_0xb1db('0x2d')]);_0x570ab7['filters']=_[_0xb1db('0x2e')](_0x570ab7[_0xb1db('0x2c')],_0x570ab7[_0xb1db('0x2d')]);_0x250ce1[_0xb1db('0x2f')]=_[_0xb1db('0x2e')](_0x570ab7[_0xb1db('0x2c')],qs[_0xb1db('0x30')](_0x1c63a7[_0xb1db('0x2d')][_0xb1db('0x30')]));_0x250ce1[_0xb1db('0x2f')]=_0x250ce1[_0xb1db('0x2f')][_0xb1db('0x31')]?_0x250ce1['attributes']:_0x570ab7[_0xb1db('0x2c')];if(!_0x1c63a7[_0xb1db('0x2d')][_0xb1db('0x32')]('nolimit')){_0x250ce1[_0xb1db('0x1c')]=qs[_0xb1db('0x1c')](_0x1c63a7[_0xb1db('0x2d')][_0xb1db('0x1c')]);_0x250ce1[_0xb1db('0x1a')]=qs[_0xb1db('0x1a')](_0x1c63a7[_0xb1db('0x2d')][_0xb1db('0x1a')]);}_0x250ce1[_0xb1db('0x33')]=qs['sort'](_0x1c63a7[_0xb1db('0x2d')]['sort']);_0x250ce1['where']=qs[_0xb1db('0x34')](_[_0xb1db('0x35')](_0x1c63a7[_0xb1db('0x2d')],_0x570ab7[_0xb1db('0x34')]),_0x1c6a87);if(_0x1c63a7[_0xb1db('0x2d')][_0xb1db('0x36')]){_0x250ce1[_0xb1db('0x37')]=_['merge'](_0x250ce1[_0xb1db('0x37')],{'$or':_['map'](_0x1c6a87,function(_0x47c5b0){if(_0x47c5b0['type']!==_0xb1db('0x38')){var _0x4787a7={};_0x4787a7[_0x47c5b0[_0xb1db('0x26')]]={'$like':'%'+_0x1c63a7[_0xb1db('0x2d')][_0xb1db('0x36')]+'%'};return _0x4787a7;}})});}_0x250ce1=_[_0xb1db('0x39')]({},_0x250ce1,_0x1c63a7[_0xb1db('0x3a')]);var _0x5f083d={'where':_0x250ce1[_0xb1db('0x37')]};return db[_0xb1db('0x3b')][_0xb1db('0x1d')](_0x5f083d)[_0xb1db('0x22')](function(_0x236a81){_0xe34d06[_0xb1db('0x1d')]=_0x236a81;if(_0x1c63a7['query'][_0xb1db('0x3c')]){_0x250ce1[_0xb1db('0x3d')]=[{'all':!![]}];}return db[_0xb1db('0x3b')][_0xb1db('0x3e')](_0x250ce1);})[_0xb1db('0x22')](function(_0x325ac8){_0xe34d06[_0xb1db('0x3f')]=_0x325ac8;return _0xe34d06;})['then'](respondWithFilteredResult(_0x15b813,_0x250ce1))[_0xb1db('0x40')](handleError(_0x15b813,null));};exports[_0xb1db('0x41')]=function(_0x1c4885,_0x91e305){var _0x56b477={'raw':![],'where':{'id':_0x1c4885[_0xb1db('0x42')]['id']}},_0x2eea82={};_0x2eea82[_0xb1db('0x2c')]=_[_0xb1db('0x43')](db['SugarcrmAccount'][_0xb1db('0x28')]);_0x2eea82['query']=_[_0xb1db('0x43')](_0x1c4885[_0xb1db('0x2d')]);_0x2eea82[_0xb1db('0x34')]=_[_0xb1db('0x2e')](_0x2eea82[_0xb1db('0x2c')],_0x2eea82[_0xb1db('0x2d')]);_0x56b477[_0xb1db('0x2f')]=_[_0xb1db('0x2e')](_0x2eea82[_0xb1db('0x2c')],qs[_0xb1db('0x30')](_0x1c4885[_0xb1db('0x2d')][_0xb1db('0x30')]));_0x56b477['attributes']=_0x56b477[_0xb1db('0x2f')]['length']?_0x56b477[_0xb1db('0x2f')]:_0x2eea82['model'];if(_0x1c4885[_0xb1db('0x2d')][_0xb1db('0x3c')]){_0x56b477[_0xb1db('0x3d')]=[{'all':!![]}];}_0x56b477=_[_0xb1db('0x39')]({},_0x56b477,_0x1c4885[_0xb1db('0x3a')]);return db[_0xb1db('0x3b')][_0xb1db('0x44')](_0x56b477)['then'](handleEntityNotFound(_0x91e305,null))['then'](respondWithResult(_0x91e305,null))['catch'](handleError(_0x91e305,null));};exports['create']=function(_0x5739e8,_0x3e845a){return db[_0xb1db('0x3b')]['create'](_0x5739e8[_0xb1db('0x45')],{})[_0xb1db('0x22')](respondWithResult(_0x3e845a,0xc9))[_0xb1db('0x40')](handleError(_0x3e845a,null));};exports[_0xb1db('0x46')]=function(_0x3a18f0,_0xb99d86){if(_0x3a18f0[_0xb1db('0x45')]['id']){delete _0x3a18f0[_0xb1db('0x45')]['id'];}return db[_0xb1db('0x3b')][_0xb1db('0x44')]({'where':{'id':_0x3a18f0[_0xb1db('0x42')]['id']}})['then'](handleEntityNotFound(_0xb99d86,null))[_0xb1db('0x22')](saveUpdates(_0x3a18f0[_0xb1db('0x45')],null))[_0xb1db('0x22')](respondWithResult(_0xb99d86,null))['catch'](handleError(_0xb99d86,null));};exports['destroy']=function(_0xc4e28c,_0x5f26ce){return db['SugarcrmAccount']['find']({'where':{'id':_0xc4e28c['params']['id']}})[_0xb1db('0x22')](handleEntityNotFound(_0x5f26ce,null))[_0xb1db('0x22')](removeEntity(_0x5f26ce,null))[_0xb1db('0x40')](handleError(_0x5f26ce,null));};exports['getConfigurations']=function(_0x1bc41a,_0x457a2c,_0x3c9f1c){var _0x22d931={};var _0x58abac={};var _0x52469a;var _0x7977cf;return db[_0xb1db('0x3b')]['findOne']({'where':{'id':_0x1bc41a[_0xb1db('0x42')]['id']}})[_0xb1db('0x22')](handleEntityNotFound(_0x457a2c,null))[_0xb1db('0x22')](function(_0x5c9aae){if(_0x5c9aae){_0x52469a=_0x5c9aae;_0x58abac[_0xb1db('0x2c')]=_['keys'](db[_0xb1db('0x47')][_0xb1db('0x28')]);_0x58abac[_0xb1db('0x2d')]=_['keys'](_0x1bc41a['query']);_0x58abac[_0xb1db('0x34')]=_['intersection'](_0x58abac[_0xb1db('0x2c')],_0x58abac[_0xb1db('0x2d')]);_0x22d931[_0xb1db('0x2f')]=_[_0xb1db('0x2e')](_0x58abac['model'],qs['fields'](_0x1bc41a[_0xb1db('0x2d')][_0xb1db('0x30')]));_0x22d931[_0xb1db('0x2f')]=_0x22d931['attributes'][_0xb1db('0x31')]?_0x22d931['attributes']:_0x58abac[_0xb1db('0x2c')];_0x22d931['order']=qs[_0xb1db('0x48')](_0x1bc41a[_0xb1db('0x2d')][_0xb1db('0x48')]);_0x22d931[_0xb1db('0x37')]=qs[_0xb1db('0x34')](_['pick'](_0x1bc41a[_0xb1db('0x2d')],_0x58abac[_0xb1db('0x34')]));if(_0x1bc41a[_0xb1db('0x2d')][_0xb1db('0x36')]){_0x22d931[_0xb1db('0x37')]=_[_0xb1db('0x39')](_0x22d931['where'],{'$or':_[_0xb1db('0x27')](_0x22d931['attributes'],function(_0x547ab5){var _0x4b5585={};_0x4b5585[_0x547ab5]={'$like':'%'+_0x1bc41a[_0xb1db('0x2d')]['filter']+'%'};return _0x4b5585;})});}_0x22d931=_[_0xb1db('0x39')]({},_0x22d931,_0x1bc41a[_0xb1db('0x3a')]);return _0x52469a[_0xb1db('0x49')](_0x22d931);}})[_0xb1db('0x22')](function(_0x1495d8){if(_0x1495d8){_0x7977cf=_0x1495d8[_0xb1db('0x31')];if(!_0x1bc41a[_0xb1db('0x2d')][_0xb1db('0x32')]('nolimit')){_0x22d931[_0xb1db('0x1c')]=qs[_0xb1db('0x1c')](_0x1bc41a[_0xb1db('0x2d')][_0xb1db('0x1c')]);_0x22d931[_0xb1db('0x1a')]=qs[_0xb1db('0x1a')](_0x1bc41a[_0xb1db('0x2d')][_0xb1db('0x1a')]);}return _0x52469a[_0xb1db('0x49')](_0x22d931);}})[_0xb1db('0x22')](function(_0x5c3437){if(_0x5c3437){return _0x5c3437?{'count':_0x7977cf,'rows':_0x5c3437}:null;}})[_0xb1db('0x22')](respondWithResult(_0x457a2c,null))[_0xb1db('0x40')](handleError(_0x457a2c,null));};exports[_0xb1db('0x4a')]=function(_0x4b38a7,_0x4b8742,_0x3e072a){if(_0x4b38a7[_0xb1db('0x45')]['id']){delete _0x4b38a7[_0xb1db('0x45')]['id'];}return db[_0xb1db('0x3b')][_0xb1db('0x4b')]({'where':{'id':_0x4b38a7[_0xb1db('0x42')]['id']}})[_0xb1db('0x22')](handleEntityNotFound(_0x4b8742,null))[_0xb1db('0x22')](function(_0x4a4a70){if(_0x4a4a70){_0x4b38a7['body'][_0xb1db('0x4c')]=_0x4a4a70['id'];_0x4b38a7[_0xb1db('0x45')][_0xb1db('0x4d')]=integrations[_0xb1db('0x4e')](_0x4b38a7[_0xb1db('0x45')][_0xb1db('0x4f')],_0x4b38a7[_0xb1db('0x45')][_0xb1db('0x2a')]);_0x4b38a7[_0xb1db('0x45')][_0xb1db('0x50')]=integrations[_0xb1db('0x51')](_0x4b38a7[_0xb1db('0x45')][_0xb1db('0x4f')],_0x4b38a7[_0xb1db('0x45')][_0xb1db('0x2a')]);return db[_0xb1db('0x47')]['create'](_0x4b38a7[_0xb1db('0x45')],{'include':[{'model':db['SugarcrmField'],'as':_0xb1db('0x4d')},{'model':db[_0xb1db('0x52')],'as':'Descriptions'}]});}return null;})[_0xb1db('0x22')](respondWithResult(_0x4b8742,null))['catch'](handleError(_0x4b8742,null));};exports[_0xb1db('0x53')]=function(_0x433187,_0x4dc954,_0x565bb5){var _0x5e7839='';var _0x1b9ae0=['id',_0xb1db('0x26'),'assigned_user_id',_0xb1db('0x54'),_0xb1db('0x55'),_0xb1db('0x56'),_0xb1db('0x57'),_0xb1db('0x58'),_0xb1db('0x59'),_0xb1db('0x5a'),'parent_name','direction'];return db[_0xb1db('0x3b')][_0xb1db('0x4b')]({'where':{'id':_0x433187['params']['id']},'attributes':['id',_0xb1db('0x5b'),_0xb1db('0x5c'),_0xb1db('0x5d')]})[_0xb1db('0x22')](handleEntityNotFound(_0x4dc954,null))[_0xb1db('0x22')](function(_0x598951){if(_0x598951){_0x5e7839=_0x598951[_0xb1db('0x5d')];var _0x199d07=_0x5e7839[_0xb1db('0x5e')](-0x1);if(_0x199d07==='/'){_0x5e7839=_0x5e7839['substring'](0x0,_0x5e7839[_0xb1db('0x5f')](_0x199d07));}return rp({'method':_0xb1db('0x60'),'uri':util[_0xb1db('0x61')](_0xb1db('0x62'),_0x5e7839,_0xb1db('0x63')),'json':!![],'form':{'method':_0xb1db('0x64'),'input_type':_0xb1db('0x65'),'response_type':_0xb1db('0x65'),'rest_data':JSON[_0xb1db('0x66')]({'user_auth':{'user_name':_0x598951[_0xb1db('0x5b')],'password':_0x598951[_0xb1db('0x5c')],'encryption':'PLAIN'},'application':_0xb1db('0x67')})}});}})[_0xb1db('0x22')](function(_0x4f4f90){if(_0x4f4f90&&_0x4f4f90[_0xb1db('0x26')]!==_0xb1db('0x68')&&_0x4f4f90['name']!==_0xb1db('0x69')){return rp({'method':_0xb1db('0x60'),'uri':util['format'](_0xb1db('0x62'),_0x5e7839,_0xb1db('0x63')),'json':!![],'form':{'method':_0xb1db('0x6a'),'input_type':_0xb1db('0x65'),'response_type':_0xb1db('0x65'),'rest_data':JSON[_0xb1db('0x66')]({'session':_0x4f4f90['id'],'module_name':_0xb1db('0x6b')})}})[_0xb1db('0x22')](function(_0x1896d9){if(_0x1896d9){var _0x2b09b9=_[_0xb1db('0x6c')](_0x1896d9['module_fields']);_['remove'](_0x2b09b9,function(_0x30b009){return _0x1b9ae0['includes'](_0x30b009[_0xb1db('0x26')]);});return{'count':_0x2b09b9['length'],'rows':_[_0xb1db('0x27')](_0x2b09b9,function(_0x13bbda){return{'id':_0x13bbda[_0xb1db('0x26')],'name':_0x13bbda[_0xb1db('0x6d')],'custom':_[_0xb1db('0x6e')](_0x13bbda['name'],'_c')?!![]:![],'options':_0x13bbda[_0xb1db('0x3a')]?_[_0xb1db('0x27')](_[_0xb1db('0x6c')](_0x13bbda[_0xb1db('0x3a')]),function(_0x2733ee){return{'name':_0x2733ee[_0xb1db('0x6f')],'value':_0x2733ee['name']};}):[]};})};}})[_0xb1db('0x22')](respondWithResult(_0x4dc954,null))[_0xb1db('0x40')](function(_0x4789fe){var _0x588fb4=_0x433187[_0xb1db('0x2d')][_0xb1db('0x70')]?0x1f4:_0x4789fe[_0xb1db('0x71')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xb1db('0x53'),_0x588fb4,JSON['stringify'](_0x4789fe));delete _0x4789fe[_0xb1db('0x26')];if(_0x588fb4===0x191){_0x588fb4=0x190;}_0x4dc954[_0xb1db('0x19')](_0x588fb4)[_0xb1db('0x72')](_0x433187['query'][_0xb1db('0x70')]?{'message':_0xb1db('0x73'),'statusCode':_0x4789fe[_0xb1db('0x71')]}:_0x4789fe);});}else{var _0x4c889a=0x1f4;_0x4dc954[_0xb1db('0x19')](_0x4c889a)[_0xb1db('0x72')]({'message':_0xb1db('0x73'),'statusCode':0x190});}});};