02a7a8c774cdbda7287716c15fcf56b99788ae4b
[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 _0xc362=['../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','update','destroy','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','then','include','findAll','rows','catch','show','params','includeAll','find','create','body','getConfigurations','findOne','addConfiguration','Subjects','getSubjects','Descriptions','getDescriptions','channel','SugarcrmConfiguration','SugarcrmField','getFields','assigned_user_id','created_by','duration_hours','duration_minutes','parent_id','direction','username','password','remoteUri','slice','substring','lastIndexOf','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','Invalid\x20Login','Password\x20Expired','POST','get_module_fields','Calls','values','module_fields','remove','includes','endsWith','value','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x2df507,_0x553862){var _0x1f7167=function(_0x11319e){while(--_0x11319e){_0x2df507['push'](_0x2df507['shift']());}};_0x1f7167(++_0x553862);}(_0xc362,0x149));var _0x2c36=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc362[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x2c36('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2c36('0x1'));var rp=require(_0x2c36('0x2'));var moment=require('moment');var BPromise=require(_0x2c36('0x3'));var Mustache=require(_0x2c36('0x4'));var util=require(_0x2c36('0x5'));var path=require(_0x2c36('0x6'));var sox=require(_0x2c36('0x7'));var csv=require('to-csv');var ejs=require(_0x2c36('0x8'));var fs=require('fs');var fs_extra=require(_0x2c36('0x9'));var _=require(_0x2c36('0xa'));var squel=require('squel');var crypto=require(_0x2c36('0xb'));var jsforce=require(_0x2c36('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x2c36('0xd'));var qs=require(_0x2c36('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2c36('0xf'));var logger=require(_0x2c36('0x10'))('api');var utils=require(_0x2c36('0x11'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x2c36('0x12'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x361961,_0x4725e8){_0x4725e8=_0x4725e8||0xcc;return function(_0x4e23d5){if(_0x4e23d5){return _0x361961[_0x2c36('0x13')](_0x4725e8);}return _0x361961[_0x2c36('0x14')](_0x4725e8)[_0x2c36('0x15')]();};}function respondWithResult(_0x370720,_0x12d6a6){_0x12d6a6=_0x12d6a6||0xc8;return function(_0x4662dd){if(_0x4662dd){return _0x370720[_0x2c36('0x14')](_0x12d6a6)['json'](_0x4662dd);}};}function respondWithFilteredResult(_0x92cfad,_0x5a7b1d){return function(_0x45aa87){if(_0x45aa87){var _0x4b03f5=typeof _0x5a7b1d['offset']===_0x2c36('0x16')&&typeof _0x5a7b1d[_0x2c36('0x17')]===_0x2c36('0x16');var _0x572541=_0x45aa87[_0x2c36('0x18')];var _0x433253=_0x4b03f5?0x0:_0x5a7b1d[_0x2c36('0x19')];var _0xe6d7ed=_0x4b03f5?_0x45aa87[_0x2c36('0x18')]:_0x5a7b1d[_0x2c36('0x19')]+_0x5a7b1d[_0x2c36('0x17')];var _0x2a30d9;if(_0xe6d7ed>=_0x572541){_0xe6d7ed=_0x572541;_0x2a30d9=0xc8;}else{_0x2a30d9=0xce;}_0x92cfad[_0x2c36('0x14')](_0x2a30d9);return _0x92cfad[_0x2c36('0x1a')](_0x2c36('0x1b'),_0x433253+'-'+_0xe6d7ed+'/'+_0x572541)[_0x2c36('0x1c')](_0x45aa87);}return null;};}function patchUpdates(_0x249622){return function(_0x115a9f){try{jsonpatch[_0x2c36('0x1d')](_0x115a9f,_0x249622,!![]);}catch(_0x4fc7e0){return BPromise[_0x2c36('0x1e')](_0x4fc7e0);}return _0x115a9f['save']();};}function saveUpdates(_0x50526f,_0x5c5175){return function(_0x199380){if(_0x199380){return _0x199380[_0x2c36('0x1f')](_0x50526f)['then'](function(_0x47d9a2){return _0x47d9a2;});}return null;};}function removeEntity(_0x4bdab7,_0x1c11c4){return function(_0xd47f69){if(_0xd47f69){return _0xd47f69[_0x2c36('0x20')]()['then'](function(){_0x4bdab7[_0x2c36('0x14')](0xcc)[_0x2c36('0x15')]();});}};}function handleEntityNotFound(_0x1f0c58,_0x542155){return function(_0x230e83){if(!_0x230e83){_0x1f0c58[_0x2c36('0x13')](0x194);}return _0x230e83;};}function handleError(_0x115be9,_0x29c7fb){_0x29c7fb=_0x29c7fb||0x1f4;return function(_0x5b9e91){logger['error'](_0x5b9e91['stack']);if(_0x5b9e91[_0x2c36('0x21')]){delete _0x5b9e91[_0x2c36('0x21')];}_0x115be9[_0x2c36('0x14')](_0x29c7fb)[_0x2c36('0x22')](_0x5b9e91);};}exports[_0x2c36('0x23')]=function(_0x135bb0,_0x1698b4){var _0x281933={},_0x45613b={},_0x198a41={'count':0x0,'rows':[]};var _0x462446=_[_0x2c36('0x24')](db[_0x2c36('0x25')][_0x2c36('0x26')],function(_0x1b0bcd){return{'name':_0x1b0bcd[_0x2c36('0x27')],'type':_0x1b0bcd[_0x2c36('0x28')][_0x2c36('0x29')]};});_0x45613b['model']=_[_0x2c36('0x24')](_0x462446,_0x2c36('0x21'));_0x45613b['query']=_[_0x2c36('0x2a')](_0x135bb0[_0x2c36('0x2b')]);_0x45613b[_0x2c36('0x2c')]=_[_0x2c36('0x2d')](_0x45613b[_0x2c36('0x2e')],_0x45613b[_0x2c36('0x2b')]);_0x281933[_0x2c36('0x2f')]=_[_0x2c36('0x2d')](_0x45613b[_0x2c36('0x2e')],qs[_0x2c36('0x30')](_0x135bb0[_0x2c36('0x2b')][_0x2c36('0x30')]));_0x281933[_0x2c36('0x2f')]=_0x281933[_0x2c36('0x2f')][_0x2c36('0x31')]?_0x281933[_0x2c36('0x2f')]:_0x45613b['model'];if(!_0x135bb0[_0x2c36('0x2b')][_0x2c36('0x32')]('nolimit')){_0x281933['limit']=qs[_0x2c36('0x17')](_0x135bb0[_0x2c36('0x2b')]['limit']);_0x281933[_0x2c36('0x19')]=qs[_0x2c36('0x19')](_0x135bb0[_0x2c36('0x2b')][_0x2c36('0x19')]);}_0x281933[_0x2c36('0x33')]=qs[_0x2c36('0x34')](_0x135bb0['query'][_0x2c36('0x34')]);_0x281933[_0x2c36('0x35')]=qs[_0x2c36('0x2c')](_[_0x2c36('0x36')](_0x135bb0[_0x2c36('0x2b')],_0x45613b[_0x2c36('0x2c')]),_0x462446);if(_0x135bb0[_0x2c36('0x2b')][_0x2c36('0x37')]){_0x281933[_0x2c36('0x35')]=_[_0x2c36('0x38')](_0x281933[_0x2c36('0x35')],{'$or':_[_0x2c36('0x24')](_0x462446,function(_0x5bbf04){if(_0x5bbf04[_0x2c36('0x28')]!==_0x2c36('0x39')){var _0x4e278d={};_0x4e278d[_0x5bbf04[_0x2c36('0x21')]]={'$like':'%'+_0x135bb0[_0x2c36('0x2b')]['filter']+'%'};return _0x4e278d;}})});}_0x281933=_[_0x2c36('0x38')]({},_0x281933,_0x135bb0[_0x2c36('0x3a')]);var _0xb1cfb5={'where':_0x281933[_0x2c36('0x35')]};return db[_0x2c36('0x25')]['count'](_0xb1cfb5)[_0x2c36('0x3b')](function(_0x1e10fa){_0x198a41[_0x2c36('0x18')]=_0x1e10fa;if(_0x135bb0[_0x2c36('0x2b')]['includeAll']){_0x281933[_0x2c36('0x3c')]=[{'all':!![]}];}return db[_0x2c36('0x25')][_0x2c36('0x3d')](_0x281933);})[_0x2c36('0x3b')](function(_0x33126b){_0x198a41[_0x2c36('0x3e')]=_0x33126b;return _0x198a41;})['then'](respondWithFilteredResult(_0x1698b4,_0x281933))[_0x2c36('0x3f')](handleError(_0x1698b4,null));};exports[_0x2c36('0x40')]=function(_0x37374d,_0x13da58){var _0x1cd07d={'raw':![],'where':{'id':_0x37374d[_0x2c36('0x41')]['id']}},_0x562003={};_0x562003[_0x2c36('0x2e')]=_[_0x2c36('0x2a')](db[_0x2c36('0x25')][_0x2c36('0x26')]);_0x562003[_0x2c36('0x2b')]=_[_0x2c36('0x2a')](_0x37374d[_0x2c36('0x2b')]);_0x562003['filters']=_['intersection'](_0x562003[_0x2c36('0x2e')],_0x562003['query']);_0x1cd07d[_0x2c36('0x2f')]=_['intersection'](_0x562003[_0x2c36('0x2e')],qs['fields'](_0x37374d[_0x2c36('0x2b')][_0x2c36('0x30')]));_0x1cd07d[_0x2c36('0x2f')]=_0x1cd07d[_0x2c36('0x2f')][_0x2c36('0x31')]?_0x1cd07d[_0x2c36('0x2f')]:_0x562003[_0x2c36('0x2e')];if(_0x37374d['query'][_0x2c36('0x42')]){_0x1cd07d[_0x2c36('0x3c')]=[{'all':!![]}];}_0x1cd07d=_[_0x2c36('0x38')]({},_0x1cd07d,_0x37374d[_0x2c36('0x3a')]);return db[_0x2c36('0x25')][_0x2c36('0x43')](_0x1cd07d)[_0x2c36('0x3b')](handleEntityNotFound(_0x13da58,null))['then'](respondWithResult(_0x13da58,null))[_0x2c36('0x3f')](handleError(_0x13da58,null));};exports[_0x2c36('0x44')]=function(_0x5b0804,_0x12aee9){return db['SugarcrmAccount'][_0x2c36('0x44')](_0x5b0804[_0x2c36('0x45')],{})[_0x2c36('0x3b')](respondWithResult(_0x12aee9,0xc9))[_0x2c36('0x3f')](handleError(_0x12aee9,null));};exports[_0x2c36('0x1f')]=function(_0x57d5fd,_0x21b31f){if(_0x57d5fd[_0x2c36('0x45')]['id']){delete _0x57d5fd[_0x2c36('0x45')]['id'];}return db['SugarcrmAccount'][_0x2c36('0x43')]({'where':{'id':_0x57d5fd[_0x2c36('0x41')]['id']}})[_0x2c36('0x3b')](handleEntityNotFound(_0x21b31f,null))[_0x2c36('0x3b')](saveUpdates(_0x57d5fd[_0x2c36('0x45')],null))[_0x2c36('0x3b')](respondWithResult(_0x21b31f,null))[_0x2c36('0x3f')](handleError(_0x21b31f,null));};exports[_0x2c36('0x20')]=function(_0x3774c8,_0x11f9a0){return db[_0x2c36('0x25')][_0x2c36('0x43')]({'where':{'id':_0x3774c8[_0x2c36('0x41')]['id']}})[_0x2c36('0x3b')](handleEntityNotFound(_0x11f9a0,null))[_0x2c36('0x3b')](removeEntity(_0x11f9a0,null))['catch'](handleError(_0x11f9a0,null));};exports[_0x2c36('0x46')]=function(_0x1bae44,_0xef8ee7,_0x278df9){var _0x10cba3={};var _0x485456={};var _0x5258b7;var _0x759a6;return db['SugarcrmAccount'][_0x2c36('0x47')]({'where':{'id':_0x1bae44[_0x2c36('0x41')]['id']}})[_0x2c36('0x3b')](handleEntityNotFound(_0xef8ee7,null))[_0x2c36('0x3b')](function(_0x19c4a0){if(_0x19c4a0){_0x5258b7=_0x19c4a0;_0x485456[_0x2c36('0x2e')]=_[_0x2c36('0x2a')](db['SugarcrmConfiguration'][_0x2c36('0x26')]);_0x485456[_0x2c36('0x2b')]=_[_0x2c36('0x2a')](_0x1bae44['query']);_0x485456[_0x2c36('0x2c')]=_[_0x2c36('0x2d')](_0x485456['model'],_0x485456['query']);_0x10cba3[_0x2c36('0x2f')]=_[_0x2c36('0x2d')](_0x485456[_0x2c36('0x2e')],qs[_0x2c36('0x30')](_0x1bae44['query']['fields']));_0x10cba3[_0x2c36('0x2f')]=_0x10cba3[_0x2c36('0x2f')][_0x2c36('0x31')]?_0x10cba3[_0x2c36('0x2f')]:_0x485456['model'];_0x10cba3[_0x2c36('0x33')]=qs[_0x2c36('0x34')](_0x1bae44[_0x2c36('0x2b')][_0x2c36('0x34')]);_0x10cba3[_0x2c36('0x35')]=qs[_0x2c36('0x2c')](_['pick'](_0x1bae44[_0x2c36('0x2b')],_0x485456['filters']));if(_0x1bae44[_0x2c36('0x2b')][_0x2c36('0x37')]){_0x10cba3['where']=_[_0x2c36('0x38')](_0x10cba3[_0x2c36('0x35')],{'$or':_[_0x2c36('0x24')](_0x10cba3[_0x2c36('0x2f')],function(_0x2e2a9d){var _0x5add9f={};_0x5add9f[_0x2e2a9d]={'$like':'%'+_0x1bae44[_0x2c36('0x2b')]['filter']+'%'};return _0x5add9f;})});}_0x10cba3=_[_0x2c36('0x38')]({},_0x10cba3,_0x1bae44['options']);return _0x5258b7[_0x2c36('0x46')](_0x10cba3);}})[_0x2c36('0x3b')](function(_0x3b67c4){if(_0x3b67c4){_0x759a6=_0x3b67c4[_0x2c36('0x31')];if(!_0x1bae44['query'][_0x2c36('0x32')]('nolimit')){_0x10cba3[_0x2c36('0x17')]=qs[_0x2c36('0x17')](_0x1bae44[_0x2c36('0x2b')][_0x2c36('0x17')]);_0x10cba3[_0x2c36('0x19')]=qs[_0x2c36('0x19')](_0x1bae44[_0x2c36('0x2b')][_0x2c36('0x19')]);}return _0x5258b7['getConfigurations'](_0x10cba3);}})['then'](function(_0x3ebd84){if(_0x3ebd84){return _0x3ebd84?{'count':_0x759a6,'rows':_0x3ebd84}:null;}})[_0x2c36('0x3b')](respondWithResult(_0xef8ee7,null))[_0x2c36('0x3f')](handleError(_0xef8ee7,null));};exports[_0x2c36('0x48')]=function(_0x2e33c5,_0x3ca424,_0x249141){if(_0x2e33c5[_0x2c36('0x45')]['id']){delete _0x2e33c5[_0x2c36('0x45')]['id'];}return db['SugarcrmAccount'][_0x2c36('0x47')]({'where':{'id':_0x2e33c5['params']['id']}})['then'](handleEntityNotFound(_0x3ca424,null))[_0x2c36('0x3b')](function(_0x3b7ad1){if(_0x3b7ad1){_0x2e33c5[_0x2c36('0x45')]['AccountId']=_0x3b7ad1['id'];_0x2e33c5[_0x2c36('0x45')][_0x2c36('0x49')]=integrations[_0x2c36('0x4a')](_0x2e33c5['body']['channel'],_0x2e33c5[_0x2c36('0x45')][_0x2c36('0x28')]);_0x2e33c5[_0x2c36('0x45')][_0x2c36('0x4b')]=integrations[_0x2c36('0x4c')](_0x2e33c5[_0x2c36('0x45')][_0x2c36('0x4d')],_0x2e33c5[_0x2c36('0x45')][_0x2c36('0x28')]);return db[_0x2c36('0x4e')][_0x2c36('0x44')](_0x2e33c5[_0x2c36('0x45')],{'include':[{'model':db[_0x2c36('0x4f')],'as':'Subjects'},{'model':db[_0x2c36('0x4f')],'as':_0x2c36('0x4b')}]});}return null;})[_0x2c36('0x3b')](respondWithResult(_0x3ca424,null))[_0x2c36('0x3f')](handleError(_0x3ca424,null));};exports[_0x2c36('0x50')]=function(_0x14933c,_0x2c0741,_0x7a5c5a){var _0xd5fe62='';var _0x2d22ea=['id',_0x2c36('0x21'),_0x2c36('0x51'),_0x2c36('0x52'),'description','date_start',_0x2c36('0x53'),_0x2c36('0x54'),_0x2c36('0x55'),'parent_type','parent_name',_0x2c36('0x56')];return db[_0x2c36('0x25')][_0x2c36('0x47')]({'where':{'id':_0x14933c['params']['id']},'attributes':['id',_0x2c36('0x57'),_0x2c36('0x58'),_0x2c36('0x59')]})[_0x2c36('0x3b')](handleEntityNotFound(_0x2c0741,null))[_0x2c36('0x3b')](function(_0x5d0992){if(_0x5d0992){_0xd5fe62=_0x5d0992['remoteUri'];var _0x140b9c=_0xd5fe62[_0x2c36('0x5a')](-0x1);if(_0x140b9c==='/'){_0xd5fe62=_0xd5fe62[_0x2c36('0x5b')](0x0,_0xd5fe62[_0x2c36('0x5c')](_0x140b9c));}return rp({'method':'POST','uri':util[_0x2c36('0x5d')](_0x2c36('0x5e'),_0xd5fe62,_0x2c36('0x5f')),'json':!![],'form':{'method':_0x2c36('0x60'),'input_type':_0x2c36('0x61'),'response_type':'JSON','rest_data':JSON[_0x2c36('0x62')]({'user_auth':{'user_name':_0x5d0992[_0x2c36('0x57')],'password':_0x5d0992[_0x2c36('0x58')],'encryption':'PLAIN'},'application':'xCALLY\x20Motion\x20Integration'})}});}})['then'](function(_0x1b1413){if(_0x1b1413&&_0x1b1413[_0x2c36('0x21')]!==_0x2c36('0x63')&&_0x1b1413['name']!==_0x2c36('0x64')){return rp({'method':_0x2c36('0x65'),'uri':util[_0x2c36('0x5d')](_0x2c36('0x5e'),_0xd5fe62,_0x2c36('0x5f')),'json':!![],'form':{'method':_0x2c36('0x66'),'input_type':_0x2c36('0x61'),'response_type':_0x2c36('0x61'),'rest_data':JSON[_0x2c36('0x62')]({'session':_0x1b1413['id'],'module_name':_0x2c36('0x67')})}})[_0x2c36('0x3b')](function(_0x777bc7){if(_0x777bc7){var _0x597d25=_[_0x2c36('0x68')](_0x777bc7[_0x2c36('0x69')]);_[_0x2c36('0x6a')](_0x597d25,function(_0x44eb15){return _0x2d22ea[_0x2c36('0x6b')](_0x44eb15[_0x2c36('0x21')]);});return{'count':_0x597d25['length'],'rows':_[_0x2c36('0x24')](_0x597d25,function(_0x1bf87f){return{'id':_0x1bf87f[_0x2c36('0x21')],'name':_0x1bf87f['label'],'custom':_[_0x2c36('0x6c')](_0x1bf87f['name'],'_c')?!![]:![],'options':_0x1bf87f[_0x2c36('0x3a')]?_['map'](_['values'](_0x1bf87f[_0x2c36('0x3a')]),function(_0x20bdd7){return{'name':_0x20bdd7[_0x2c36('0x6d')],'value':_0x20bdd7[_0x2c36('0x21')]};}):[]};})};}})[_0x2c36('0x3b')](respondWithResult(_0x2c0741,null))['catch'](function(_0x4dc2ec){var _0x28ef9f=_0x14933c['query'][_0x2c36('0x6e')]?0x1f4:_0x4dc2ec[_0x2c36('0x6f')]||0x1f4;logger[_0x2c36('0x70')](_0x2c36('0x71'),_0x2c36('0x50'),_0x28ef9f,JSON[_0x2c36('0x62')](_0x4dc2ec));delete _0x4dc2ec[_0x2c36('0x21')];if(_0x28ef9f===0x191){_0x28ef9f=0x190;}_0x2c0741['status'](_0x28ef9f)[_0x2c36('0x22')](_0x14933c['query'][_0x2c36('0x6e')]?{'message':_0x2c36('0x72'),'statusCode':_0x4dc2ec[_0x2c36('0x6f')]}:_0x4dc2ec);});}else{var _0x5e658d=0x1f4;_0x2c0741[_0x2c36('0x14')](_0x5e658d)[_0x2c36('0x22')]({'message':_0x2c36('0x72'),'statusCode':0x190});}});};