12ba2e1f8d3c7292e042561ff2d0004b5d8f12c8
[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 _0xae8d=['map','SugarcrmAccount','type','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','show','rawAttributes','length','includeAll','find','create','body','params','SugarcrmConfiguration','getConfigurations','addConfiguration','Subjects','getSubjects','channel','Descriptions','SugarcrmField','getFields','created_by','description','date_start','duration_minutes','parent_id','parent_type','parent_name','direction','findOne','password','remoteUri','slice','lastIndexOf','POST','format','/service/v4_1/rest.php','login','JSON','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','get_module_fields','values','module_fields','remove','label','endsWith','value','getFields,\x20%s,\x20%s,\x20%s','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','SugarcrmAccount,\x20%s,\x20%s','catch','status','json','count','offset','limit','set','apply','reject','update','destroy','end','sendStatus','stack','name','send'];(function(_0x56e147,_0x1f69de){var _0x487d94=function(_0x5c9785){while(--_0x5c9785){_0x56e147['push'](_0x56e147['shift']());}};_0x487d94(++_0x1f69de);}(_0xae8d,0x1b9));var _0xdae8=function(_0x564c16,_0x29bd27){_0x564c16=_0x564c16-0x0;var _0x4a9f3e=_0xae8d[_0x564c16];return _0x4a9f3e;};'use strict';var pdf=require(_0xdae8('0x0'));var emlformat=require(_0xdae8('0x1'));var rimraf=require(_0xdae8('0x2'));var zipdir=require(_0xdae8('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdae8('0x4'));var moment=require('moment');var BPromise=require(_0xdae8('0x5'));var Mustache=require(_0xdae8('0x6'));var util=require(_0xdae8('0x7'));var path=require('path');var sox=require(_0xdae8('0x8'));var csv=require(_0xdae8('0x9'));var ejs=require(_0xdae8('0xa'));var fs=require('fs');var _=require(_0xdae8('0xb'));var squel=require(_0xdae8('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xdae8('0x9'));var querystring=require(_0xdae8('0xd'));var Papa=require('papaparse');var Redis=require(_0xdae8('0xe'));var authService=require(_0xdae8('0xf'));var qs=require(_0xdae8('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xdae8('0x11'));var utils=require('../../config/utils');var config=require(_0xdae8('0x12'));var licenseUtil=require(_0xdae8('0x13'));var db=require(_0xdae8('0x14'))['db'];var integrations=require(_0xdae8('0x15'));var jayson=require(_0xdae8('0x16'));var client=jayson[_0xdae8('0x17')][_0xdae8('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x1ffcb5,_0x10c5d9,_0x3001f1,_0x87fa5b){return new BPromise(function(_0x51112c,_0x340612){var _0x2e01f6=_0x87fa5b||client;return _0x2e01f6[_0xdae8('0x19')](_0x1ffcb5,_0x3001f1)[_0xdae8('0x1a')](function(_0x4d6ec2){logger[_0xdae8('0x1b')]('SugarcrmAccount,\x20%s,\x20%s',_0x10c5d9,'request\x20sent');logger[_0xdae8('0x1c')](_0xdae8('0x1d'),_0x10c5d9,'request\x20sent',JSON[_0xdae8('0x1e')](_0x4d6ec2));if(_0x4d6ec2[_0xdae8('0x1f')]){if(_0x4d6ec2['error'][_0xdae8('0x20')]===0x1f4){logger[_0xdae8('0x1f')]('SugarcrmAccount,\x20%s,\x20%s',_0x10c5d9,_0x4d6ec2[_0xdae8('0x1f')][_0xdae8('0x21')]);return _0x340612(_0x4d6ec2[_0xdae8('0x1f')]['message']);}logger[_0xdae8('0x1f')](_0xdae8('0x22'),_0x10c5d9,_0x4d6ec2[_0xdae8('0x1f')][_0xdae8('0x21')]);return _0x51112c(_0x4d6ec2[_0xdae8('0x1f')][_0xdae8('0x21')]);}else{logger[_0xdae8('0x1b')](_0xdae8('0x22'),_0x10c5d9,'request\x20sent');_0x51112c(_0x4d6ec2['result'][_0xdae8('0x21')]);}})[_0xdae8('0x23')](function(_0x359097){logger['error'](_0xdae8('0x22'),_0x10c5d9,_0x359097);_0x340612(_0x359097);});});}function respondWithStatusCode(_0x1085f7,_0x1b7d4a){_0x1b7d4a=_0x1b7d4a||0xcc;return function(_0x1b8d4f){if(_0x1b8d4f){return _0x1085f7['sendStatus'](_0x1b7d4a);}return _0x1085f7[_0xdae8('0x24')](_0x1b7d4a)['end']();};}function respondWithResult(_0x34d3f6,_0x5e1490){_0x5e1490=_0x5e1490||0xc8;return function(_0x399c82){if(_0x399c82){return _0x34d3f6['status'](_0x5e1490)[_0xdae8('0x25')](_0x399c82);}};}function respondWithFilteredResult(_0x138f19,_0x1ed152){return function(_0x122c61){if(_0x122c61){var _0x41ce4e=_0x122c61[_0xdae8('0x26')],_0x7270e9=_0x1ed152[_0xdae8('0x27')],_0x3dd8c6=_0x1ed152['offset']+_0x1ed152[_0xdae8('0x28')],_0x48cd9d;if(_0x3dd8c6>=_0x41ce4e){_0x3dd8c6=_0x41ce4e;_0x48cd9d=0xc8;}else{_0x48cd9d=0xce;}_0x138f19['status'](_0x48cd9d);return _0x138f19[_0xdae8('0x29')]('Content-Range',_0x7270e9+'-'+_0x3dd8c6+'/'+_0x41ce4e)[_0xdae8('0x25')](_0x122c61);}return null;};}function patchUpdates(_0x51bc9e){return function(_0x37572c){try{jsonpatch[_0xdae8('0x2a')](_0x37572c,_0x51bc9e,!![]);}catch(_0x1cd3a9){return BPromise[_0xdae8('0x2b')](_0x1cd3a9);}return _0x37572c['save']();};}function saveUpdates(_0x3a7d72,_0xcb8612){return function(_0x35ada9){if(_0x35ada9){return _0x35ada9[_0xdae8('0x2c')](_0x3a7d72)['then'](function(_0x30f1b2){return _0x30f1b2;});}return null;};}function removeEntity(_0x123643,_0x53af8c){return function(_0x35df14){if(_0x35df14){return _0x35df14[_0xdae8('0x2d')]()[_0xdae8('0x1a')](function(){_0x123643[_0xdae8('0x24')](0xcc)[_0xdae8('0x2e')]();});}};}function handleEntityNotFound(_0x678ab6,_0x5c9179){return function(_0x45d655){if(!_0x45d655){_0x678ab6[_0xdae8('0x2f')](0x194);}return _0x45d655;};}function handleError(_0x147939,_0x559df3){_0x559df3=_0x559df3||0x1f4;return function(_0x15c70e){logger[_0xdae8('0x1f')](_0x15c70e[_0xdae8('0x30')]);if(_0x15c70e[_0xdae8('0x31')]){delete _0x15c70e[_0xdae8('0x31')];}_0x147939['status'](_0x559df3)[_0xdae8('0x32')](_0x15c70e);};}exports['index']=function(_0x409490,_0x468556){var _0x35e927={},_0x18725a={},_0x14b44d={'count':0x0,'rows':[]};var _0x5729a3=_[_0xdae8('0x33')](db[_0xdae8('0x34')]['rawAttributes'],function(_0x30a9f8){return{'name':_0x30a9f8['fieldName'],'type':_0x30a9f8[_0xdae8('0x35')][_0xdae8('0x36')]};});_0x18725a[_0xdae8('0x37')]=_['map'](_0x5729a3,'name');_0x18725a['query']=_[_0xdae8('0x38')](_0x409490[_0xdae8('0x39')]);_0x18725a[_0xdae8('0x3a')]=_[_0xdae8('0x3b')](_0x18725a['model'],_0x18725a[_0xdae8('0x39')]);_0x35e927[_0xdae8('0x3c')]=_[_0xdae8('0x3b')](_0x18725a[_0xdae8('0x37')],qs[_0xdae8('0x3d')](_0x409490[_0xdae8('0x39')]['fields']));_0x35e927[_0xdae8('0x3c')]=_0x35e927[_0xdae8('0x3c')]['length']?_0x35e927[_0xdae8('0x3c')]:_0x18725a[_0xdae8('0x37')];if(!_0x409490[_0xdae8('0x39')][_0xdae8('0x3e')](_0xdae8('0x3f'))){_0x35e927[_0xdae8('0x28')]=qs[_0xdae8('0x28')](_0x409490['query'][_0xdae8('0x28')]);_0x35e927[_0xdae8('0x27')]=qs[_0xdae8('0x27')](_0x409490[_0xdae8('0x39')]['offset']);}_0x35e927[_0xdae8('0x40')]=qs[_0xdae8('0x41')](_0x409490[_0xdae8('0x39')][_0xdae8('0x41')]);_0x35e927[_0xdae8('0x42')]=qs['filters'](_[_0xdae8('0x43')](_0x409490[_0xdae8('0x39')],_0x18725a['filters']),_0x5729a3);if(_0x409490['query'][_0xdae8('0x44')]){_0x35e927[_0xdae8('0x42')]=_[_0xdae8('0x45')](_0x35e927['where'],{'$or':_['map'](_0x5729a3,function(_0x216df7){if(_0x216df7['type']!==_0xdae8('0x46')){var _0x472211={};_0x472211[_0x216df7[_0xdae8('0x31')]]={'$like':'%'+_0x409490[_0xdae8('0x39')]['filter']+'%'};return _0x472211;}})});}_0x35e927=_[_0xdae8('0x45')]({},_0x35e927,_0x409490[_0xdae8('0x47')]);var _0x26dc12={'where':_0x35e927[_0xdae8('0x42')]};return db[_0xdae8('0x34')]['count'](_0x26dc12)[_0xdae8('0x1a')](function(_0xe70cef){_0x14b44d[_0xdae8('0x26')]=_0xe70cef;if(_0x409490[_0xdae8('0x39')]['includeAll']){_0x35e927[_0xdae8('0x48')]=[{'all':!![]}];}return db[_0xdae8('0x34')][_0xdae8('0x49')](_0x35e927);})[_0xdae8('0x1a')](function(_0xa980f4){_0x14b44d['rows']=_0xa980f4;return _0x14b44d;})[_0xdae8('0x1a')](respondWithFilteredResult(_0x468556,_0x35e927))[_0xdae8('0x23')](handleError(_0x468556,null));};exports[_0xdae8('0x4a')]=function(_0x1096fe,_0x1c51b3){var _0x1fecf5={'raw':![],'where':{'id':_0x1096fe['params']['id']}},_0x23eb2b={};_0x23eb2b['model']=_['keys'](db[_0xdae8('0x34')][_0xdae8('0x4b')]);_0x23eb2b[_0xdae8('0x39')]=_['keys'](_0x1096fe[_0xdae8('0x39')]);_0x23eb2b['filtears']=_[_0xdae8('0x3b')](_0x23eb2b[_0xdae8('0x37')],_0x23eb2b[_0xdae8('0x39')]);_0x1fecf5[_0xdae8('0x3c')]=_[_0xdae8('0x3b')](_0x23eb2b[_0xdae8('0x37')],qs[_0xdae8('0x3d')](_0x1096fe[_0xdae8('0x39')][_0xdae8('0x3d')]));_0x1fecf5[_0xdae8('0x3c')]=_0x1fecf5[_0xdae8('0x3c')][_0xdae8('0x4c')]?_0x1fecf5[_0xdae8('0x3c')]:_0x23eb2b['model'];if(_0x1096fe['query'][_0xdae8('0x4d')]){_0x1fecf5[_0xdae8('0x48')]=[{'all':!![]}];}_0x1fecf5=_[_0xdae8('0x45')]({},_0x1fecf5,_0x1096fe[_0xdae8('0x47')]);return db[_0xdae8('0x34')][_0xdae8('0x4e')](_0x1fecf5)['then'](handleEntityNotFound(_0x1c51b3,null))[_0xdae8('0x1a')](respondWithResult(_0x1c51b3,null))['catch'](handleError(_0x1c51b3,null));};exports[_0xdae8('0x4f')]=function(_0xd0351b,_0x3c3b1a){return db[_0xdae8('0x34')]['create'](_0xd0351b[_0xdae8('0x50')],{})[_0xdae8('0x1a')](respondWithResult(_0x3c3b1a,0xc9))[_0xdae8('0x23')](handleError(_0x3c3b1a,null));};exports['update']=function(_0x2334b7,_0x1366bc){if(_0x2334b7[_0xdae8('0x50')]['id']){delete _0x2334b7[_0xdae8('0x50')]['id'];}return db['SugarcrmAccount'][_0xdae8('0x4e')]({'where':{'id':_0x2334b7[_0xdae8('0x51')]['id']}})[_0xdae8('0x1a')](handleEntityNotFound(_0x1366bc,null))['then'](saveUpdates(_0x2334b7[_0xdae8('0x50')],null))[_0xdae8('0x1a')](respondWithResult(_0x1366bc,null))[_0xdae8('0x23')](handleError(_0x1366bc,null));};exports[_0xdae8('0x2d')]=function(_0x50c11b,_0x300ef2){return db[_0xdae8('0x34')][_0xdae8('0x4e')]({'where':{'id':_0x50c11b[_0xdae8('0x51')]['id']}})['then'](handleEntityNotFound(_0x300ef2,null))[_0xdae8('0x1a')](removeEntity(_0x300ef2,null))[_0xdae8('0x23')](handleError(_0x300ef2,null));};exports['getConfigurations']=function(_0x56cccf,_0x1f1425,_0x27e080){var _0x57ab4f={};var _0x2c5cf9={};var _0x3e466f;var _0x43e912;return db[_0xdae8('0x34')]['findOne']({'where':{'id':_0x56cccf[_0xdae8('0x51')]['id']}})[_0xdae8('0x1a')](handleEntityNotFound(_0x1f1425,null))[_0xdae8('0x1a')](function(_0x3a9056){if(_0x3a9056){_0x3e466f=_0x3a9056;_0x2c5cf9[_0xdae8('0x37')]=_[_0xdae8('0x38')](db[_0xdae8('0x52')][_0xdae8('0x4b')]);_0x2c5cf9[_0xdae8('0x39')]=_['keys'](_0x56cccf[_0xdae8('0x39')]);_0x2c5cf9[_0xdae8('0x3a')]=_[_0xdae8('0x3b')](_0x2c5cf9[_0xdae8('0x37')],_0x2c5cf9['query']);_0x57ab4f[_0xdae8('0x3c')]=_['intersection'](_0x2c5cf9['model'],qs['fields'](_0x56cccf[_0xdae8('0x39')][_0xdae8('0x3d')]));_0x57ab4f['attributes']=_0x57ab4f[_0xdae8('0x3c')][_0xdae8('0x4c')]?_0x57ab4f[_0xdae8('0x3c')]:_0x2c5cf9[_0xdae8('0x37')];_0x57ab4f[_0xdae8('0x40')]=qs['sort'](_0x56cccf[_0xdae8('0x39')][_0xdae8('0x41')]);_0x57ab4f[_0xdae8('0x42')]=qs[_0xdae8('0x3a')](_[_0xdae8('0x43')](_0x56cccf[_0xdae8('0x39')],_0x2c5cf9[_0xdae8('0x3a')]));if(_0x56cccf[_0xdae8('0x39')]['filter']){_0x57ab4f[_0xdae8('0x42')]=_[_0xdae8('0x45')](_0x57ab4f['where'],{'$or':_[_0xdae8('0x33')](_0x57ab4f[_0xdae8('0x3c')],function(_0x2b143a){var _0x3ab6b5={};_0x3ab6b5[_0x2b143a]={'$like':'%'+_0x56cccf[_0xdae8('0x39')]['filter']+'%'};return _0x3ab6b5;})});}_0x57ab4f=_[_0xdae8('0x45')]({},_0x57ab4f,_0x56cccf['options']);return _0x3e466f[_0xdae8('0x53')](_0x57ab4f);}})[_0xdae8('0x1a')](function(_0x4033a6){if(_0x4033a6){_0x43e912=_0x4033a6['length'];if(!_0x56cccf[_0xdae8('0x39')][_0xdae8('0x3e')](_0xdae8('0x3f'))){_0x57ab4f['limit']=qs[_0xdae8('0x28')](_0x56cccf[_0xdae8('0x39')]['limit']);_0x57ab4f[_0xdae8('0x27')]=qs[_0xdae8('0x27')](_0x56cccf[_0xdae8('0x39')][_0xdae8('0x27')]);}return _0x3e466f['getConfigurations'](_0x57ab4f);}})[_0xdae8('0x1a')](function(_0x5d638a){if(_0x5d638a){return _0x5d638a?{'count':_0x43e912,'rows':_0x5d638a}:null;}})[_0xdae8('0x1a')](respondWithResult(_0x1f1425,null))[_0xdae8('0x23')](handleError(_0x1f1425,null));};exports[_0xdae8('0x54')]=function(_0x3886bc,_0xe8f460,_0x5c7556){if(_0x3886bc[_0xdae8('0x50')]['id']){delete _0x3886bc[_0xdae8('0x50')]['id'];}return db[_0xdae8('0x34')]['findOne']({'where':{'id':_0x3886bc[_0xdae8('0x51')]['id']}})[_0xdae8('0x1a')](handleEntityNotFound(_0xe8f460,null))[_0xdae8('0x1a')](function(_0x4a69f4){if(_0x4a69f4){_0x3886bc['body']['AccountId']=_0x4a69f4['id'];_0x3886bc[_0xdae8('0x50')][_0xdae8('0x55')]=integrations[_0xdae8('0x56')](_0x3886bc[_0xdae8('0x50')][_0xdae8('0x57')],_0x3886bc['body'][_0xdae8('0x35')]);_0x3886bc[_0xdae8('0x50')][_0xdae8('0x58')]=integrations['getDescriptions'](_0x3886bc['body']['channel'],_0x3886bc[_0xdae8('0x50')][_0xdae8('0x35')]);return db[_0xdae8('0x52')][_0xdae8('0x4f')](_0x3886bc[_0xdae8('0x50')],{'include':[{'model':db['SugarcrmField'],'as':_0xdae8('0x55')},{'model':db[_0xdae8('0x59')],'as':_0xdae8('0x58')}]});}return null;})[_0xdae8('0x1a')](respondWithResult(_0xe8f460,null))[_0xdae8('0x23')](handleError(_0xe8f460,null));};exports[_0xdae8('0x5a')]=function(_0x12a435,_0x8d722f,_0x1ab6db){var _0x5b019b='';var _0x573b41=['id',_0xdae8('0x31'),'assigned_user_id',_0xdae8('0x5b'),_0xdae8('0x5c'),_0xdae8('0x5d'),'duration_hours',_0xdae8('0x5e'),_0xdae8('0x5f'),_0xdae8('0x60'),_0xdae8('0x61'),_0xdae8('0x62')];return db['SugarcrmAccount'][_0xdae8('0x63')]({'where':{'id':_0x12a435['params']['id']},'attributes':['id','username',_0xdae8('0x64'),'remoteUri']})[_0xdae8('0x1a')](handleEntityNotFound(_0x8d722f,null))[_0xdae8('0x1a')](function(_0x1dd253){if(_0x1dd253){_0x5b019b=_0x1dd253[_0xdae8('0x65')];var _0x92f3ad=_0x5b019b[_0xdae8('0x66')](-0x1);if(_0x92f3ad==='/'){_0x5b019b=_0x5b019b['substring'](0x0,_0x5b019b[_0xdae8('0x67')](_0x92f3ad));}return rp({'method':_0xdae8('0x68'),'uri':util[_0xdae8('0x69')]('%s%s',_0x5b019b,_0xdae8('0x6a')),'json':!![],'form':{'method':_0xdae8('0x6b'),'input_type':_0xdae8('0x6c'),'response_type':_0xdae8('0x6c'),'rest_data':JSON[_0xdae8('0x1e')]({'user_auth':{'user_name':_0x1dd253['username'],'password':_0x1dd253[_0xdae8('0x64')],'encryption':'PLAIN'},'application':_0xdae8('0x6d')})}});}})[_0xdae8('0x1a')](function(_0x23bfcd){if(_0x23bfcd&&_0x23bfcd[_0xdae8('0x31')]!==_0xdae8('0x6e')&&_0x23bfcd[_0xdae8('0x31')]!==_0xdae8('0x6f')){return rp({'method':_0xdae8('0x68'),'uri':util['format']('%s%s',_0x5b019b,_0xdae8('0x6a')),'json':!![],'form':{'method':_0xdae8('0x70'),'input_type':_0xdae8('0x6c'),'response_type':'JSON','rest_data':JSON[_0xdae8('0x1e')]({'session':_0x23bfcd['id'],'module_name':'Calls'})}})['then'](function(_0x38db60){if(_0x38db60){var _0x1271a6=_[_0xdae8('0x71')](_0x38db60[_0xdae8('0x72')]);_[_0xdae8('0x73')](_0x1271a6,function(_0x536e1d){return _0x573b41['includes'](_0x536e1d[_0xdae8('0x31')]);});return{'count':_0x1271a6['length'],'rows':_['map'](_0x1271a6,function(_0x37cf6b){return{'id':_0x37cf6b[_0xdae8('0x31')],'name':_0x37cf6b[_0xdae8('0x74')],'custom':_[_0xdae8('0x75')](_0x37cf6b[_0xdae8('0x31')],'_c')?!![]:![],'options':_0x37cf6b['options']?_[_0xdae8('0x33')](_[_0xdae8('0x71')](_0x37cf6b[_0xdae8('0x47')]),function(_0x182748){return{'name':_0x182748[_0xdae8('0x76')],'value':_0x182748[_0xdae8('0x31')]};}):[]};})};}})['then'](respondWithResult(_0x8d722f,null))['catch'](function(_0x4ffa3e){var _0x458bab=_0x12a435[_0xdae8('0x39')]['test']?0x1f4:_0x4ffa3e['statusCode']||0x1f4;logger['error'](_0xdae8('0x77'),_0xdae8('0x5a'),_0x458bab,JSON[_0xdae8('0x1e')](_0x4ffa3e));delete _0x4ffa3e[_0xdae8('0x31')];if(_0x458bab===0x191){_0x458bab=0x190;}_0x8d722f[_0xdae8('0x24')](_0x458bab)[_0xdae8('0x32')](_0x12a435['query'][_0xdae8('0x78')]?{'message':'Wrong\x20credentials','statusCode':_0x4ffa3e[_0xdae8('0x79')]}:_0x4ffa3e);});}else{var _0x3b5212=0x1f4;_0x8d722f[_0xdae8('0x24')](_0x3b5212)[_0xdae8('0x32')]({'message':_0xdae8('0x7a'),'statusCode':0x190});}});};