e463c0b96e21b62136e5939dcf79ec99bd32731e
[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 _0x0060=['limit','count','set','Content-Range','apply','reject','save','update','destroy','then','end','error','stack','name','send','index','map','SugarcrmAccount','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','type','VIRTUAL','filter','merge','includeAll','include','findAll','rows','catch','show','params','filters','options','find','create','body','getConfigurations','findOne','SugarcrmConfiguration','rawAttributes','AccountId','getSubjects','channel','Descriptions','getDescriptions','Subjects','SugarcrmField','getFields','assigned_user_id','description','date_start','duration_minutes','parent_id','parent_type','direction','username','password','remoteUri','slice','substring','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','POST','get_module_fields','Calls','values','module_fields','remove','includes','endsWith','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','fs-extra','lodash','squel','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined'];(function(_0x39e4b6,_0x2cb332){var _0x33d76c=function(_0x4704c9){while(--_0x4704c9){_0x39e4b6['push'](_0x39e4b6['shift']());}};_0x33d76c(++_0x2cb332);}(_0x0060,0xda));var _0x0006=function(_0x1d99a1,_0x2baa4b){_0x1d99a1=_0x1d99a1-0x0;var _0x46571b=_0x0060[_0x1d99a1];return _0x46571b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0006('0x0'));var zipdir=require(_0x0006('0x1'));var jsonpatch=require(_0x0006('0x2'));var rp=require(_0x0006('0x3'));var moment=require('moment');var BPromise=require(_0x0006('0x4'));var Mustache=require('mustache');var util=require(_0x0006('0x5'));var path=require(_0x0006('0x6'));var sox=require(_0x0006('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0006('0x8'));var _=require(_0x0006('0x9'));var squel=require(_0x0006('0xa'));var crypto=require('crypto');var jsforce=require(_0x0006('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x0006('0xc'));var querystring=require(_0x0006('0xd'));var Papa=require('papaparse');var Redis=require(_0x0006('0xe'));var authService=require(_0x0006('0xf'));var qs=require(_0x0006('0x10'));var as=require(_0x0006('0x11'));var hardwareService=require(_0x0006('0x12'));var logger=require('../../config/logger')(_0x0006('0x13'));var utils=require(_0x0006('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0006('0x15'))['db'];var integrations=require(_0x0006('0x16'));function respondWithStatusCode(_0x10f96d,_0x2fd21b){_0x2fd21b=_0x2fd21b||0xcc;return function(_0x4fcdb2){if(_0x4fcdb2){return _0x10f96d[_0x0006('0x17')](_0x2fd21b);}return _0x10f96d[_0x0006('0x18')](_0x2fd21b)['end']();};}function respondWithResult(_0x19d86b,_0x3690f6){_0x3690f6=_0x3690f6||0xc8;return function(_0x135936){if(_0x135936){return _0x19d86b['status'](_0x3690f6)[_0x0006('0x19')](_0x135936);}};}function respondWithFilteredResult(_0x475bf2,_0x591131){return function(_0x130093){if(_0x130093){var _0x648ebc=typeof _0x591131[_0x0006('0x1a')]===_0x0006('0x1b')&&typeof _0x591131[_0x0006('0x1c')]===_0x0006('0x1b');var _0x15c3b1=_0x130093['count'];var _0x3bff1f=_0x648ebc?0x0:_0x591131[_0x0006('0x1a')];var _0xe4b31a=_0x648ebc?_0x130093[_0x0006('0x1d')]:_0x591131[_0x0006('0x1a')]+_0x591131[_0x0006('0x1c')];var _0x31d1b5;if(_0xe4b31a>=_0x15c3b1){_0xe4b31a=_0x15c3b1;_0x31d1b5=0xc8;}else{_0x31d1b5=0xce;}_0x475bf2['status'](_0x31d1b5);return _0x475bf2[_0x0006('0x1e')](_0x0006('0x1f'),_0x3bff1f+'-'+_0xe4b31a+'/'+_0x15c3b1)[_0x0006('0x19')](_0x130093);}return null;};}function patchUpdates(_0x5b4424){return function(_0x240e15){try{jsonpatch[_0x0006('0x20')](_0x240e15,_0x5b4424,!![]);}catch(_0x1a6829){return BPromise[_0x0006('0x21')](_0x1a6829);}return _0x240e15[_0x0006('0x22')]();};}function saveUpdates(_0x3fe9d7,_0x11faed){return function(_0x34c11d){if(_0x34c11d){return _0x34c11d[_0x0006('0x23')](_0x3fe9d7)['then'](function(_0x4f1f4e){return _0x4f1f4e;});}return null;};}function removeEntity(_0x5e5af9,_0xb40613){return function(_0x26f441){if(_0x26f441){return _0x26f441[_0x0006('0x24')]()[_0x0006('0x25')](function(){_0x5e5af9[_0x0006('0x18')](0xcc)[_0x0006('0x26')]();});}};}function handleEntityNotFound(_0x199243,_0x5f5a4e){return function(_0x262e36){if(!_0x262e36){_0x199243[_0x0006('0x17')](0x194);}return _0x262e36;};}function handleError(_0x47d94f,_0x5a66a3){_0x5a66a3=_0x5a66a3||0x1f4;return function(_0x28a3fa){logger[_0x0006('0x27')](_0x28a3fa[_0x0006('0x28')]);if(_0x28a3fa[_0x0006('0x29')]){delete _0x28a3fa[_0x0006('0x29')];}_0x47d94f['status'](_0x5a66a3)[_0x0006('0x2a')](_0x28a3fa);};}exports[_0x0006('0x2b')]=function(_0x2ad560,_0x57c1d9){var _0x1c92b3={},_0x261b71={},_0x152aab={'count':0x0,'rows':[]};var _0x221d8d=_[_0x0006('0x2c')](db[_0x0006('0x2d')]['rawAttributes'],function(_0x65c818){return{'name':_0x65c818['fieldName'],'type':_0x65c818['type'][_0x0006('0x2e')]};});_0x261b71[_0x0006('0x2f')]=_[_0x0006('0x2c')](_0x221d8d,_0x0006('0x29'));_0x261b71[_0x0006('0x30')]=_[_0x0006('0x31')](_0x2ad560['query']);_0x261b71['filters']=_[_0x0006('0x32')](_0x261b71[_0x0006('0x2f')],_0x261b71[_0x0006('0x30')]);_0x1c92b3[_0x0006('0x33')]=_['intersection'](_0x261b71[_0x0006('0x2f')],qs['fields'](_0x2ad560[_0x0006('0x30')][_0x0006('0x34')]));_0x1c92b3['attributes']=_0x1c92b3[_0x0006('0x33')][_0x0006('0x35')]?_0x1c92b3[_0x0006('0x33')]:_0x261b71[_0x0006('0x2f')];if(!_0x2ad560['query'][_0x0006('0x36')](_0x0006('0x37'))){_0x1c92b3[_0x0006('0x1c')]=qs[_0x0006('0x1c')](_0x2ad560[_0x0006('0x30')][_0x0006('0x1c')]);_0x1c92b3[_0x0006('0x1a')]=qs[_0x0006('0x1a')](_0x2ad560[_0x0006('0x30')][_0x0006('0x1a')]);}_0x1c92b3[_0x0006('0x38')]=qs['sort'](_0x2ad560[_0x0006('0x30')][_0x0006('0x39')]);_0x1c92b3['where']=qs['filters'](_[_0x0006('0x3a')](_0x2ad560[_0x0006('0x30')],_0x261b71['filters']),_0x221d8d);if(_0x2ad560[_0x0006('0x30')]['filter']){_0x1c92b3['where']=_['merge'](_0x1c92b3[_0x0006('0x3b')],{'$or':_[_0x0006('0x2c')](_0x221d8d,function(_0xb46d9){if(_0xb46d9[_0x0006('0x3c')]!==_0x0006('0x3d')){var _0xa58d5f={};_0xa58d5f[_0xb46d9[_0x0006('0x29')]]={'$like':'%'+_0x2ad560[_0x0006('0x30')][_0x0006('0x3e')]+'%'};return _0xa58d5f;}})});}_0x1c92b3=_[_0x0006('0x3f')]({},_0x1c92b3,_0x2ad560['options']);var _0x26bfdd={'where':_0x1c92b3['where']};return db[_0x0006('0x2d')][_0x0006('0x1d')](_0x26bfdd)[_0x0006('0x25')](function(_0x33a023){_0x152aab[_0x0006('0x1d')]=_0x33a023;if(_0x2ad560['query'][_0x0006('0x40')]){_0x1c92b3[_0x0006('0x41')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0x0006('0x42')](_0x1c92b3);})[_0x0006('0x25')](function(_0x312b85){_0x152aab[_0x0006('0x43')]=_0x312b85;return _0x152aab;})[_0x0006('0x25')](respondWithFilteredResult(_0x57c1d9,_0x1c92b3))[_0x0006('0x44')](handleError(_0x57c1d9,null));};exports[_0x0006('0x45')]=function(_0x2fe519,_0x30c03d){var _0x28d639={'raw':![],'where':{'id':_0x2fe519[_0x0006('0x46')]['id']}},_0x549e05={};_0x549e05[_0x0006('0x2f')]=_['keys'](db[_0x0006('0x2d')]['rawAttributes']);_0x549e05[_0x0006('0x30')]=_[_0x0006('0x31')](_0x2fe519[_0x0006('0x30')]);_0x549e05[_0x0006('0x47')]=_[_0x0006('0x32')](_0x549e05['model'],_0x549e05[_0x0006('0x30')]);_0x28d639[_0x0006('0x33')]=_['intersection'](_0x549e05[_0x0006('0x2f')],qs[_0x0006('0x34')](_0x2fe519[_0x0006('0x30')][_0x0006('0x34')]));_0x28d639[_0x0006('0x33')]=_0x28d639[_0x0006('0x33')][_0x0006('0x35')]?_0x28d639['attributes']:_0x549e05[_0x0006('0x2f')];if(_0x2fe519[_0x0006('0x30')]['includeAll']){_0x28d639[_0x0006('0x41')]=[{'all':!![]}];}_0x28d639=_[_0x0006('0x3f')]({},_0x28d639,_0x2fe519[_0x0006('0x48')]);return db['SugarcrmAccount'][_0x0006('0x49')](_0x28d639)['then'](handleEntityNotFound(_0x30c03d,null))['then'](respondWithResult(_0x30c03d,null))[_0x0006('0x44')](handleError(_0x30c03d,null));};exports['create']=function(_0x3a0d65,_0x43aa2e){return db['SugarcrmAccount'][_0x0006('0x4a')](_0x3a0d65[_0x0006('0x4b')],{})[_0x0006('0x25')](respondWithResult(_0x43aa2e,0xc9))[_0x0006('0x44')](handleError(_0x43aa2e,null));};exports[_0x0006('0x23')]=function(_0x549e0d,_0x482700){if(_0x549e0d[_0x0006('0x4b')]['id']){delete _0x549e0d[_0x0006('0x4b')]['id'];}return db[_0x0006('0x2d')][_0x0006('0x49')]({'where':{'id':_0x549e0d[_0x0006('0x46')]['id']}})[_0x0006('0x25')](handleEntityNotFound(_0x482700,null))[_0x0006('0x25')](saveUpdates(_0x549e0d[_0x0006('0x4b')],null))[_0x0006('0x25')](respondWithResult(_0x482700,null))[_0x0006('0x44')](handleError(_0x482700,null));};exports[_0x0006('0x24')]=function(_0x6c495e,_0x187ed7){return db[_0x0006('0x2d')][_0x0006('0x49')]({'where':{'id':_0x6c495e['params']['id']}})[_0x0006('0x25')](handleEntityNotFound(_0x187ed7,null))[_0x0006('0x25')](removeEntity(_0x187ed7,null))[_0x0006('0x44')](handleError(_0x187ed7,null));};exports[_0x0006('0x4c')]=function(_0x284f7f,_0x31444c,_0x2d4f49){var _0x5d1f64={};var _0x4332bc={};var _0x35b4d0;var _0x59f54d;return db[_0x0006('0x2d')][_0x0006('0x4d')]({'where':{'id':_0x284f7f[_0x0006('0x46')]['id']}})['then'](handleEntityNotFound(_0x31444c,null))[_0x0006('0x25')](function(_0x25733e){if(_0x25733e){_0x35b4d0=_0x25733e;_0x4332bc[_0x0006('0x2f')]=_[_0x0006('0x31')](db[_0x0006('0x4e')][_0x0006('0x4f')]);_0x4332bc[_0x0006('0x30')]=_[_0x0006('0x31')](_0x284f7f[_0x0006('0x30')]);_0x4332bc[_0x0006('0x47')]=_[_0x0006('0x32')](_0x4332bc['model'],_0x4332bc[_0x0006('0x30')]);_0x5d1f64[_0x0006('0x33')]=_[_0x0006('0x32')](_0x4332bc[_0x0006('0x2f')],qs[_0x0006('0x34')](_0x284f7f[_0x0006('0x30')][_0x0006('0x34')]));_0x5d1f64[_0x0006('0x33')]=_0x5d1f64[_0x0006('0x33')][_0x0006('0x35')]?_0x5d1f64[_0x0006('0x33')]:_0x4332bc['model'];_0x5d1f64[_0x0006('0x38')]=qs['sort'](_0x284f7f[_0x0006('0x30')][_0x0006('0x39')]);_0x5d1f64[_0x0006('0x3b')]=qs[_0x0006('0x47')](_[_0x0006('0x3a')](_0x284f7f[_0x0006('0x30')],_0x4332bc[_0x0006('0x47')]));if(_0x284f7f['query'][_0x0006('0x3e')]){_0x5d1f64['where']=_['merge'](_0x5d1f64['where'],{'$or':_[_0x0006('0x2c')](_0x5d1f64[_0x0006('0x33')],function(_0x1899e5){var _0x525480={};_0x525480[_0x1899e5]={'$like':'%'+_0x284f7f[_0x0006('0x30')][_0x0006('0x3e')]+'%'};return _0x525480;})});}_0x5d1f64=_['merge']({},_0x5d1f64,_0x284f7f[_0x0006('0x48')]);return _0x35b4d0[_0x0006('0x4c')](_0x5d1f64);}})[_0x0006('0x25')](function(_0x18ae4d){if(_0x18ae4d){_0x59f54d=_0x18ae4d['length'];if(!_0x284f7f[_0x0006('0x30')]['hasOwnProperty']('nolimit')){_0x5d1f64['limit']=qs['limit'](_0x284f7f[_0x0006('0x30')][_0x0006('0x1c')]);_0x5d1f64[_0x0006('0x1a')]=qs[_0x0006('0x1a')](_0x284f7f[_0x0006('0x30')][_0x0006('0x1a')]);}return _0x35b4d0[_0x0006('0x4c')](_0x5d1f64);}})[_0x0006('0x25')](function(_0x41cba9){if(_0x41cba9){return _0x41cba9?{'count':_0x59f54d,'rows':_0x41cba9}:null;}})[_0x0006('0x25')](respondWithResult(_0x31444c,null))[_0x0006('0x44')](handleError(_0x31444c,null));};exports['addConfiguration']=function(_0xf333e4,_0x6c03e8,_0x4750eb){if(_0xf333e4[_0x0006('0x4b')]['id']){delete _0xf333e4[_0x0006('0x4b')]['id'];}return db[_0x0006('0x2d')][_0x0006('0x4d')]({'where':{'id':_0xf333e4[_0x0006('0x46')]['id']}})[_0x0006('0x25')](handleEntityNotFound(_0x6c03e8,null))[_0x0006('0x25')](function(_0x143ae1){if(_0x143ae1){_0xf333e4[_0x0006('0x4b')][_0x0006('0x50')]=_0x143ae1['id'];_0xf333e4[_0x0006('0x4b')]['Subjects']=integrations[_0x0006('0x51')](_0xf333e4[_0x0006('0x4b')][_0x0006('0x52')],_0xf333e4['body']['type']);_0xf333e4[_0x0006('0x4b')][_0x0006('0x53')]=integrations[_0x0006('0x54')](_0xf333e4[_0x0006('0x4b')][_0x0006('0x52')],_0xf333e4[_0x0006('0x4b')]['type']);return db['SugarcrmConfiguration']['create'](_0xf333e4['body'],{'include':[{'model':db['SugarcrmField'],'as':_0x0006('0x55')},{'model':db[_0x0006('0x56')],'as':_0x0006('0x53')}]});}return null;})[_0x0006('0x25')](respondWithResult(_0x6c03e8,null))[_0x0006('0x44')](handleError(_0x6c03e8,null));};exports[_0x0006('0x57')]=function(_0x35b1c5,_0x357a3b,_0x432d64){var _0x5c81b3='';var _0x19ad14=['id','name',_0x0006('0x58'),'created_by',_0x0006('0x59'),_0x0006('0x5a'),'duration_hours',_0x0006('0x5b'),_0x0006('0x5c'),_0x0006('0x5d'),'parent_name',_0x0006('0x5e')];return db[_0x0006('0x2d')][_0x0006('0x4d')]({'where':{'id':_0x35b1c5[_0x0006('0x46')]['id']},'attributes':['id',_0x0006('0x5f'),_0x0006('0x60'),_0x0006('0x61')]})[_0x0006('0x25')](handleEntityNotFound(_0x357a3b,null))[_0x0006('0x25')](function(_0x4061bd){if(_0x4061bd){_0x5c81b3=_0x4061bd[_0x0006('0x61')];var _0x550813=_0x5c81b3[_0x0006('0x62')](-0x1);if(_0x550813==='/'){_0x5c81b3=_0x5c81b3[_0x0006('0x63')](0x0,_0x5c81b3['lastIndexOf'](_0x550813));}return rp({'method':'POST','uri':util[_0x0006('0x64')](_0x0006('0x65'),_0x5c81b3,_0x0006('0x66')),'json':!![],'form':{'method':_0x0006('0x67'),'input_type':'JSON','response_type':_0x0006('0x68'),'rest_data':JSON[_0x0006('0x69')]({'user_auth':{'user_name':_0x4061bd[_0x0006('0x5f')],'password':_0x4061bd[_0x0006('0x60')],'encryption':_0x0006('0x6a')},'application':_0x0006('0x6b')})}});}})['then'](function(_0x29dc26){if(_0x29dc26&&_0x29dc26[_0x0006('0x29')]!==_0x0006('0x6c')&&_0x29dc26[_0x0006('0x29')]!==_0x0006('0x6d')){return rp({'method':_0x0006('0x6e'),'uri':util[_0x0006('0x64')](_0x0006('0x65'),_0x5c81b3,_0x0006('0x66')),'json':!![],'form':{'method':_0x0006('0x6f'),'input_type':_0x0006('0x68'),'response_type':'JSON','rest_data':JSON[_0x0006('0x69')]({'session':_0x29dc26['id'],'module_name':_0x0006('0x70')})}})['then'](function(_0x470c80){if(_0x470c80){var _0x4fd4bb=_[_0x0006('0x71')](_0x470c80[_0x0006('0x72')]);_[_0x0006('0x73')](_0x4fd4bb,function(_0x1db718){return _0x19ad14[_0x0006('0x74')](_0x1db718[_0x0006('0x29')]);});return{'count':_0x4fd4bb[_0x0006('0x35')],'rows':_['map'](_0x4fd4bb,function(_0x297808){return{'id':_0x297808[_0x0006('0x29')],'name':_0x297808['label'],'custom':_[_0x0006('0x75')](_0x297808['name'],'_c')?!![]:![],'options':_0x297808['options']?_[_0x0006('0x2c')](_[_0x0006('0x71')](_0x297808[_0x0006('0x48')]),function(_0x482f5c){return{'name':_0x482f5c[_0x0006('0x76')],'value':_0x482f5c['name']};}):[]};})};}})[_0x0006('0x25')](respondWithResult(_0x357a3b,null))['catch'](function(_0x1ca56c){var _0x243f3f=_0x35b1c5[_0x0006('0x30')][_0x0006('0x77')]?0x1f4:_0x1ca56c[_0x0006('0x78')]||0x1f4;logger[_0x0006('0x27')](_0x0006('0x79'),_0x0006('0x57'),_0x243f3f,JSON[_0x0006('0x69')](_0x1ca56c));delete _0x1ca56c['name'];if(_0x243f3f===0x191){_0x243f3f=0x190;}_0x357a3b[_0x0006('0x18')](_0x243f3f)[_0x0006('0x2a')](_0x35b1c5[_0x0006('0x30')]['test']?{'message':_0x0006('0x7a'),'statusCode':_0x1ca56c[_0x0006('0x78')]}:_0x1ca56c);});}else{var _0x4ae0b8=0x1f4;_0x357a3b[_0x0006('0x18')](_0x4ae0b8)['send']({'message':_0x0006('0x7a'),'statusCode':0x190});}});};