39aec64757a4579208647ca35d59ae915ef6ed14
[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 _0x6d63=['includeAll','find','create','body','params','findOne','pick','getConfigurations','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmConfiguration','SugarcrmField','assigned_user_id','created_by','description','date_start','parent_id','parent_type','parent_name','username','remoteUri','substring','format','%s%s','login','JSON','password','PLAIN','Invalid\x20Login','Password\x20Expired','POST','/service/v4_1/rest.php','get_module_fields','Calls','module_fields','remove','includes','label','endsWith','options','values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','info','SugarcrmAccount,\x20%s,\x20%s','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','code','message','error','request\x20sent','catch','sendStatus','status','end','json','count','set','Content-Range','apply','reject','save','update','destroy','then','stack','name','send','index','map','SugarcrmAccount','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','offset','order','sort','filter','where','type','VIRTUAL','merge','include','rows','keys','rawAttributes'];(function(_0x38aeec,_0x46c967){var _0x461de9=function(_0x5dab5e){while(--_0x5dab5e){_0x38aeec['push'](_0x38aeec['shift']());}};_0x461de9(++_0x46c967);}(_0x6d63,0xb5));var _0x36d6=function(_0x3efafd,_0xe33536){_0x3efafd=_0x3efafd-0x0;var _0x5870ad=_0x6d63[_0x3efafd];return _0x5870ad;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x36d6('0x0'));var zipdir=require(_0x36d6('0x1'));var jsonpatch=require(_0x36d6('0x2'));var rp=require(_0x36d6('0x3'));var moment=require(_0x36d6('0x4'));var BPromise=require(_0x36d6('0x5'));var Mustache=require(_0x36d6('0x6'));var util=require(_0x36d6('0x7'));var path=require('path');var sox=require(_0x36d6('0x8'));var csv=require(_0x36d6('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x36d6('0xa'));var squel=require(_0x36d6('0xb'));var crypto=require(_0x36d6('0xc'));var jsforce=require(_0x36d6('0xd'));var deskjs=require(_0x36d6('0xe'));var toCsv=require(_0x36d6('0x9'));var querystring=require(_0x36d6('0xf'));var Papa=require(_0x36d6('0x10'));var Redis=require(_0x36d6('0x11'));var authService=require(_0x36d6('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x36d6('0x13'));var logger=require(_0x36d6('0x14'))(_0x36d6('0x15'));var utils=require(_0x36d6('0x16'));var config=require(_0x36d6('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x36d6('0x18'))['db'];var integrations=require(_0x36d6('0x19'));var jayson=require(_0x36d6('0x1a'));var client=jayson[_0x36d6('0x1b')][_0x36d6('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0xbf1bf6,_0xcf7250,_0x5d5839,_0x540767){return new BPromise(function(_0x1c1e2d,_0x5d2a54){var _0x4052d4=_0x540767||client;return _0x4052d4['request'](_0xbf1bf6,_0x5d5839)['then'](function(_0xa103d1){logger[_0x36d6('0x1d')](_0x36d6('0x1e'),_0xcf7250,'request\x20sent');logger[_0x36d6('0x1f')](_0x36d6('0x20'),_0xcf7250,'request\x20sent',JSON[_0x36d6('0x21')](_0xa103d1));if(_0xa103d1['error']){if(_0xa103d1['error'][_0x36d6('0x22')]===0x1f4){logger['error'](_0x36d6('0x1e'),_0xcf7250,_0xa103d1['error'][_0x36d6('0x23')]);return _0x5d2a54(_0xa103d1[_0x36d6('0x24')][_0x36d6('0x23')]);}logger['error'](_0x36d6('0x1e'),_0xcf7250,_0xa103d1[_0x36d6('0x24')][_0x36d6('0x23')]);return _0x1c1e2d(_0xa103d1[_0x36d6('0x24')][_0x36d6('0x23')]);}else{logger[_0x36d6('0x1d')](_0x36d6('0x1e'),_0xcf7250,_0x36d6('0x25'));_0x1c1e2d(_0xa103d1['result'][_0x36d6('0x23')]);}})[_0x36d6('0x26')](function(_0x33fa7f){logger[_0x36d6('0x24')](_0x36d6('0x1e'),_0xcf7250,_0x33fa7f);_0x5d2a54(_0x33fa7f);});});}function respondWithStatusCode(_0x1ab6b9,_0x5c10f6){_0x5c10f6=_0x5c10f6||0xcc;return function(_0x24062d){if(_0x24062d){return _0x1ab6b9[_0x36d6('0x27')](_0x5c10f6);}return _0x1ab6b9[_0x36d6('0x28')](_0x5c10f6)[_0x36d6('0x29')]();};}function respondWithResult(_0xb77f6,_0x1af71e){_0x1af71e=_0x1af71e||0xc8;return function(_0x2c284b){if(_0x2c284b){return _0xb77f6[_0x36d6('0x28')](_0x1af71e)[_0x36d6('0x2a')](_0x2c284b);}};}function respondWithFilteredResult(_0x88abc,_0x3381bc){return function(_0x33c908){if(_0x33c908){var _0x4761ad=_0x33c908[_0x36d6('0x2b')],_0x397a0e=_0x3381bc['offset'],_0x4be605=_0x3381bc['offset']+_0x3381bc['limit'],_0x3ea650;if(_0x4be605>=_0x4761ad){_0x4be605=_0x4761ad;_0x3ea650=0xc8;}else{_0x3ea650=0xce;}_0x88abc[_0x36d6('0x28')](_0x3ea650);return _0x88abc[_0x36d6('0x2c')](_0x36d6('0x2d'),_0x397a0e+'-'+_0x4be605+'/'+_0x4761ad)[_0x36d6('0x2a')](_0x33c908);}return null;};}function patchUpdates(_0x1e2c71){return function(_0x97504e){try{jsonpatch[_0x36d6('0x2e')](_0x97504e,_0x1e2c71,!![]);}catch(_0x54cf19){return BPromise[_0x36d6('0x2f')](_0x54cf19);}return _0x97504e[_0x36d6('0x30')]();};}function saveUpdates(_0x5e84bc,_0x526201){return function(_0x544044){if(_0x544044){return _0x544044[_0x36d6('0x31')](_0x5e84bc)['then'](function(_0x2bd87b){return _0x2bd87b;});}return null;};}function removeEntity(_0x226d69,_0x56e8b4){return function(_0xd8b444){if(_0xd8b444){return _0xd8b444[_0x36d6('0x32')]()[_0x36d6('0x33')](function(){_0x226d69[_0x36d6('0x28')](0xcc)[_0x36d6('0x29')]();});}};}function handleEntityNotFound(_0x436b77,_0x520ca7){return function(_0x4d4133){if(!_0x4d4133){_0x436b77[_0x36d6('0x27')](0x194);}return _0x4d4133;};}function handleError(_0x41799a,_0x4378d3){_0x4378d3=_0x4378d3||0x1f4;return function(_0x588503){logger[_0x36d6('0x24')](_0x588503[_0x36d6('0x34')]);if(_0x588503['name']){delete _0x588503[_0x36d6('0x35')];}_0x41799a['status'](_0x4378d3)[_0x36d6('0x36')](_0x588503);};}exports[_0x36d6('0x37')]=function(_0x1b2ece,_0x38689f){var _0x73c14e={},_0x9332bb={},_0x5d4c03={'count':0x0,'rows':[]};var _0x588cb1=_[_0x36d6('0x38')](db[_0x36d6('0x39')]['rawAttributes'],function(_0x5de686){return{'name':_0x5de686['fieldName'],'type':_0x5de686['type'][_0x36d6('0x3a')]};});_0x9332bb[_0x36d6('0x3b')]=_[_0x36d6('0x38')](_0x588cb1,_0x36d6('0x35'));_0x9332bb[_0x36d6('0x3c')]=_['keys'](_0x1b2ece['query']);_0x9332bb[_0x36d6('0x3d')]=_['intersection'](_0x9332bb[_0x36d6('0x3b')],_0x9332bb[_0x36d6('0x3c')]);_0x73c14e[_0x36d6('0x3e')]=_[_0x36d6('0x3f')](_0x9332bb[_0x36d6('0x3b')],qs[_0x36d6('0x40')](_0x1b2ece[_0x36d6('0x3c')][_0x36d6('0x40')]));_0x73c14e[_0x36d6('0x3e')]=_0x73c14e[_0x36d6('0x3e')][_0x36d6('0x41')]?_0x73c14e['attributes']:_0x9332bb[_0x36d6('0x3b')];if(!_0x1b2ece[_0x36d6('0x3c')][_0x36d6('0x42')](_0x36d6('0x43'))){_0x73c14e[_0x36d6('0x44')]=qs[_0x36d6('0x44')](_0x1b2ece[_0x36d6('0x3c')][_0x36d6('0x44')]);_0x73c14e[_0x36d6('0x45')]=qs[_0x36d6('0x45')](_0x1b2ece[_0x36d6('0x3c')][_0x36d6('0x45')]);}_0x73c14e[_0x36d6('0x46')]=qs[_0x36d6('0x47')](_0x1b2ece[_0x36d6('0x3c')][_0x36d6('0x47')]);_0x73c14e['where']=qs['filters'](_['pick'](_0x1b2ece[_0x36d6('0x3c')],_0x9332bb[_0x36d6('0x3d')]),_0x588cb1);if(_0x1b2ece['query'][_0x36d6('0x48')]){_0x73c14e[_0x36d6('0x49')]=_['merge'](_0x73c14e['where'],{'$or':_[_0x36d6('0x38')](_0x588cb1,function(_0x784f7){if(_0x784f7[_0x36d6('0x4a')]!==_0x36d6('0x4b')){var _0x219779={};_0x219779[_0x784f7[_0x36d6('0x35')]]={'$like':'%'+_0x1b2ece[_0x36d6('0x3c')]['filter']+'%'};return _0x219779;}})});}_0x73c14e=_[_0x36d6('0x4c')]({},_0x73c14e,_0x1b2ece['options']);var _0x45f13c={'where':_0x73c14e[_0x36d6('0x49')]};return db['SugarcrmAccount'][_0x36d6('0x2b')](_0x45f13c)[_0x36d6('0x33')](function(_0x30156b){_0x5d4c03['count']=_0x30156b;if(_0x1b2ece[_0x36d6('0x3c')]['includeAll']){_0x73c14e[_0x36d6('0x4d')]=[{'all':!![]}];}return db[_0x36d6('0x39')]['findAll'](_0x73c14e);})[_0x36d6('0x33')](function(_0x4d138a){_0x5d4c03[_0x36d6('0x4e')]=_0x4d138a;return _0x5d4c03;})[_0x36d6('0x33')](respondWithFilteredResult(_0x38689f,_0x73c14e))[_0x36d6('0x26')](handleError(_0x38689f,null));};exports['show']=function(_0x1fdc81,_0x45db41){var _0xcb91d1={'raw':![],'where':{'id':_0x1fdc81['params']['id']}},_0x4f7098={};_0x4f7098['model']=_[_0x36d6('0x4f')](db[_0x36d6('0x39')][_0x36d6('0x50')]);_0x4f7098['query']=_[_0x36d6('0x4f')](_0x1fdc81[_0x36d6('0x3c')]);_0x4f7098[_0x36d6('0x3d')]=_[_0x36d6('0x3f')](_0x4f7098['model'],_0x4f7098['query']);_0xcb91d1[_0x36d6('0x3e')]=_['intersection'](_0x4f7098['model'],qs[_0x36d6('0x40')](_0x1fdc81[_0x36d6('0x3c')][_0x36d6('0x40')]));_0xcb91d1[_0x36d6('0x3e')]=_0xcb91d1[_0x36d6('0x3e')][_0x36d6('0x41')]?_0xcb91d1[_0x36d6('0x3e')]:_0x4f7098[_0x36d6('0x3b')];if(_0x1fdc81[_0x36d6('0x3c')][_0x36d6('0x51')]){_0xcb91d1[_0x36d6('0x4d')]=[{'all':!![]}];}_0xcb91d1=_[_0x36d6('0x4c')]({},_0xcb91d1,_0x1fdc81['options']);return db[_0x36d6('0x39')][_0x36d6('0x52')](_0xcb91d1)['then'](handleEntityNotFound(_0x45db41,null))[_0x36d6('0x33')](respondWithResult(_0x45db41,null))[_0x36d6('0x26')](handleError(_0x45db41,null));};exports['create']=function(_0x3d0b2e,_0x2edc69){return db[_0x36d6('0x39')][_0x36d6('0x53')](_0x3d0b2e['body'],{})[_0x36d6('0x33')](respondWithResult(_0x2edc69,0xc9))[_0x36d6('0x26')](handleError(_0x2edc69,null));};exports[_0x36d6('0x31')]=function(_0x21cef7,_0x5877c7){if(_0x21cef7[_0x36d6('0x54')]['id']){delete _0x21cef7[_0x36d6('0x54')]['id'];}return db[_0x36d6('0x39')]['find']({'where':{'id':_0x21cef7['params']['id']}})[_0x36d6('0x33')](handleEntityNotFound(_0x5877c7,null))[_0x36d6('0x33')](saveUpdates(_0x21cef7[_0x36d6('0x54')],null))[_0x36d6('0x33')](respondWithResult(_0x5877c7,null))[_0x36d6('0x26')](handleError(_0x5877c7,null));};exports[_0x36d6('0x32')]=function(_0x2d0a71,_0x413843){return db[_0x36d6('0x39')][_0x36d6('0x52')]({'where':{'id':_0x2d0a71[_0x36d6('0x55')]['id']}})[_0x36d6('0x33')](handleEntityNotFound(_0x413843,null))['then'](removeEntity(_0x413843,null))[_0x36d6('0x26')](handleError(_0x413843,null));};exports['getConfigurations']=function(_0x3416f1,_0x5a4dc7,_0x40500f){var _0x29f569={};var _0x3a4c72={};var _0x352bf1;var _0x3df2cf;return db[_0x36d6('0x39')][_0x36d6('0x56')]({'where':{'id':_0x3416f1[_0x36d6('0x55')]['id']}})[_0x36d6('0x33')](handleEntityNotFound(_0x5a4dc7,null))[_0x36d6('0x33')](function(_0x43be2f){if(_0x43be2f){_0x352bf1=_0x43be2f;_0x3a4c72['model']=_['keys'](db['SugarcrmConfiguration']['rawAttributes']);_0x3a4c72[_0x36d6('0x3c')]=_[_0x36d6('0x4f')](_0x3416f1[_0x36d6('0x3c')]);_0x3a4c72[_0x36d6('0x3d')]=_[_0x36d6('0x3f')](_0x3a4c72[_0x36d6('0x3b')],_0x3a4c72['query']);_0x29f569[_0x36d6('0x3e')]=_[_0x36d6('0x3f')](_0x3a4c72['model'],qs['fields'](_0x3416f1['query'][_0x36d6('0x40')]));_0x29f569[_0x36d6('0x3e')]=_0x29f569[_0x36d6('0x3e')]['length']?_0x29f569['attributes']:_0x3a4c72[_0x36d6('0x3b')];_0x29f569[_0x36d6('0x46')]=qs[_0x36d6('0x47')](_0x3416f1[_0x36d6('0x3c')][_0x36d6('0x47')]);_0x29f569[_0x36d6('0x49')]=qs[_0x36d6('0x3d')](_[_0x36d6('0x57')](_0x3416f1[_0x36d6('0x3c')],_0x3a4c72[_0x36d6('0x3d')]));if(_0x3416f1[_0x36d6('0x3c')][_0x36d6('0x48')]){_0x29f569[_0x36d6('0x49')]=_[_0x36d6('0x4c')](_0x29f569[_0x36d6('0x49')],{'$or':_[_0x36d6('0x38')](_0x29f569[_0x36d6('0x3e')],function(_0x218522){var _0x297ed9={};_0x297ed9[_0x218522]={'$like':'%'+_0x3416f1['query'][_0x36d6('0x48')]+'%'};return _0x297ed9;})});}_0x29f569=_[_0x36d6('0x4c')]({},_0x29f569,_0x3416f1['options']);return _0x352bf1[_0x36d6('0x58')](_0x29f569);}})[_0x36d6('0x33')](function(_0x3e5195){if(_0x3e5195){_0x3df2cf=_0x3e5195['length'];if(!_0x3416f1[_0x36d6('0x3c')][_0x36d6('0x42')](_0x36d6('0x43'))){_0x29f569[_0x36d6('0x44')]=qs['limit'](_0x3416f1[_0x36d6('0x3c')]['limit']);_0x29f569[_0x36d6('0x45')]=qs[_0x36d6('0x45')](_0x3416f1['query']['offset']);}return _0x352bf1[_0x36d6('0x58')](_0x29f569);}})[_0x36d6('0x33')](function(_0x5bb60d){if(_0x5bb60d){return _0x5bb60d?{'count':_0x3df2cf,'rows':_0x5bb60d}:null;}})[_0x36d6('0x33')](respondWithResult(_0x5a4dc7,null))['catch'](handleError(_0x5a4dc7,null));};exports['addConfiguration']=function(_0x44543e,_0x6d791f,_0x1cd500){if(_0x44543e[_0x36d6('0x54')]['id']){delete _0x44543e[_0x36d6('0x54')]['id'];}return db[_0x36d6('0x39')]['findOne']({'where':{'id':_0x44543e[_0x36d6('0x55')]['id']}})[_0x36d6('0x33')](handleEntityNotFound(_0x6d791f,null))[_0x36d6('0x33')](function(_0x1daabd){if(_0x1daabd){_0x44543e[_0x36d6('0x54')][_0x36d6('0x59')]=_0x1daabd['id'];_0x44543e[_0x36d6('0x54')][_0x36d6('0x5a')]=integrations[_0x36d6('0x5b')](_0x44543e[_0x36d6('0x54')][_0x36d6('0x5c')],_0x44543e[_0x36d6('0x54')][_0x36d6('0x4a')]);_0x44543e[_0x36d6('0x54')][_0x36d6('0x5d')]=integrations[_0x36d6('0x5e')](_0x44543e['body'][_0x36d6('0x5c')],_0x44543e[_0x36d6('0x54')][_0x36d6('0x4a')]);return db[_0x36d6('0x5f')]['create'](_0x44543e[_0x36d6('0x54')],{'include':[{'model':db[_0x36d6('0x60')],'as':_0x36d6('0x5a')},{'model':db[_0x36d6('0x60')],'as':_0x36d6('0x5d')}]});}return null;})['then'](respondWithResult(_0x6d791f,null))[_0x36d6('0x26')](handleError(_0x6d791f,null));};exports['getFields']=function(_0x30124d,_0x265809,_0x3cd4b0){var _0x3f288d='';var _0xc81f=['id',_0x36d6('0x35'),_0x36d6('0x61'),_0x36d6('0x62'),_0x36d6('0x63'),_0x36d6('0x64'),'duration_hours','duration_minutes',_0x36d6('0x65'),_0x36d6('0x66'),_0x36d6('0x67'),'direction'];return db[_0x36d6('0x39')]['findOne']({'where':{'id':_0x30124d[_0x36d6('0x55')]['id']},'attributes':['id',_0x36d6('0x68'),'password',_0x36d6('0x69')]})[_0x36d6('0x33')](handleEntityNotFound(_0x265809,null))['then'](function(_0x4e3473){if(_0x4e3473){_0x3f288d=_0x4e3473[_0x36d6('0x69')];var _0x16fdbb=_0x3f288d['slice'](-0x1);if(_0x16fdbb==='/'){_0x3f288d=_0x3f288d[_0x36d6('0x6a')](0x0,_0x3f288d['lastIndexOf'](_0x16fdbb));}return rp({'method':'POST','uri':util[_0x36d6('0x6b')](_0x36d6('0x6c'),_0x3f288d,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x36d6('0x6d'),'input_type':_0x36d6('0x6e'),'response_type':_0x36d6('0x6e'),'rest_data':JSON[_0x36d6('0x21')]({'user_auth':{'user_name':_0x4e3473[_0x36d6('0x68')],'password':_0x4e3473[_0x36d6('0x6f')],'encryption':_0x36d6('0x70')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x36d6('0x33')](function(_0x268d4a){if(_0x268d4a&&_0x268d4a[_0x36d6('0x35')]!==_0x36d6('0x71')&&_0x268d4a['name']!==_0x36d6('0x72')){return rp({'method':_0x36d6('0x73'),'uri':util[_0x36d6('0x6b')]('%s%s',_0x3f288d,_0x36d6('0x74')),'json':!![],'form':{'method':_0x36d6('0x75'),'input_type':_0x36d6('0x6e'),'response_type':_0x36d6('0x6e'),'rest_data':JSON[_0x36d6('0x21')]({'session':_0x268d4a['id'],'module_name':_0x36d6('0x76')})}})[_0x36d6('0x33')](function(_0x96400c){if(_0x96400c){var _0x5666c1=_['values'](_0x96400c[_0x36d6('0x77')]);_[_0x36d6('0x78')](_0x5666c1,function(_0x1c3828){return _0xc81f[_0x36d6('0x79')](_0x1c3828[_0x36d6('0x35')]);});return{'count':_0x5666c1['length'],'rows':_['map'](_0x5666c1,function(_0x5a577f){return{'id':_0x5a577f[_0x36d6('0x35')],'name':_0x5a577f[_0x36d6('0x7a')],'custom':_[_0x36d6('0x7b')](_0x5a577f[_0x36d6('0x35')],'_c')?!![]:![],'options':_0x5a577f[_0x36d6('0x7c')]?_['map'](_[_0x36d6('0x7d')](_0x5a577f[_0x36d6('0x7c')]),function(_0x6908f){return{'name':_0x6908f['value'],'value':_0x6908f[_0x36d6('0x35')]};}):[]};})};}})['then'](respondWithResult(_0x265809,null))[_0x36d6('0x26')](function(_0x297496){var _0x9641f9=_0x30124d[_0x36d6('0x3c')][_0x36d6('0x7e')]?0x1f4:_0x297496[_0x36d6('0x7f')]||0x1f4;logger['error'](_0x36d6('0x80'),_0x36d6('0x81'),_0x9641f9,JSON[_0x36d6('0x21')](_0x297496));delete _0x297496[_0x36d6('0x35')];if(_0x9641f9===0x191){_0x9641f9=0x190;}_0x265809[_0x36d6('0x28')](_0x9641f9)[_0x36d6('0x36')](_0x30124d[_0x36d6('0x3c')][_0x36d6('0x7e')]?{'message':_0x36d6('0x82'),'statusCode':_0x297496[_0x36d6('0x7f')]}:_0x297496);});}else{var _0x5aac63=0x1f4;_0x265809['status'](_0x5aac63)[_0x36d6('0x36')]({'message':'Wrong\x20credentials','statusCode':0x190});}});};