Built motion from commit (unavailable).|2.5.23
[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 _0x0d45=['Calls','values','module_fields','endsWith','value','getFields,\x20%s,\x20%s,\x20%s','send','test','Wrong\x20credentials','html-pdf','eml-format','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','client','http','request','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','json','offset','status','set','Content-Range','apply','reject','save','update','then','destroy','end','stack','name','index','map','SugarcrmAccount','fieldName','type','model','query','keys','filters','intersection','attributes','nolimit','limit','sort','where','filter','merge','VIRTUAL','options','count','includeAll','findAll','rows','show','params','rawAttributes','fields','length','include','find','body','getConfigurations','findOne','SugarcrmConfiguration','order','pick','addConfiguration','Subjects','getSubjects','channel','Descriptions','create','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','duration_minutes','parent_id','parent_name','direction','password','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','username','PLAIN','Invalid\x20Login','Password\x20Expired','get_module_fields'];(function(_0x4c32c7,_0x2d8733){var _0x2b5f4b=function(_0x25f4be){while(--_0x25f4be){_0x4c32c7['push'](_0x4c32c7['shift']());}};_0x2b5f4b(++_0x2d8733);}(_0x0d45,0x10b));var _0x50d4=function(_0x1688d2,_0x4a8b5c){_0x1688d2=_0x1688d2-0x0;var _0x4fc2fa=_0x0d45[_0x1688d2];return _0x4fc2fa;};'use strict';var pdf=require(_0x50d4('0x0'));var emlformat=require(_0x50d4('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x50d4('0x2'));var moment=require(_0x50d4('0x3'));var BPromise=require(_0x50d4('0x4'));var Mustache=require(_0x50d4('0x5'));var util=require(_0x50d4('0x6'));var path=require(_0x50d4('0x7'));var sox=require(_0x50d4('0x8'));var csv=require('to-csv');var ejs=require(_0x50d4('0x9'));var fs=require('fs');var _=require(_0x50d4('0xa'));var squel=require(_0x50d4('0xb'));var crypto=require('crypto');var jsforce=require(_0x50d4('0xc'));var deskjs=require(_0x50d4('0xd'));var toCsv=require(_0x50d4('0xe'));var querystring=require('querystring');var Papa=require(_0x50d4('0xf'));var Redis=require(_0x50d4('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x50d4('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x50d4('0x12'))(_0x50d4('0x13'));var utils=require(_0x50d4('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x50d4('0x15'));var db=require(_0x50d4('0x16'))['db'];var integrations=require(_0x50d4('0x17'));var jayson=require('jayson/promise');var client=jayson[_0x50d4('0x18')][_0x50d4('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x5ae4d1,_0xc0a846,_0x38e4c8,_0x46d34d){return new BPromise(function(_0x56b577,_0x29e467){var _0x4235e8=_0x46d34d||client;return _0x4235e8[_0x50d4('0x1a')](_0x5ae4d1,_0x38e4c8)['then'](function(_0x4d0be4){logger[_0x50d4('0x1b')](_0x50d4('0x1c'),_0xc0a846,_0x50d4('0x1d'));logger[_0x50d4('0x1e')](_0x50d4('0x1f'),_0xc0a846,_0x50d4('0x1d'),JSON[_0x50d4('0x20')](_0x4d0be4));if(_0x4d0be4[_0x50d4('0x21')]){if(_0x4d0be4['error']['code']===0x1f4){logger[_0x50d4('0x21')]('SugarcrmAccount,\x20%s,\x20%s',_0xc0a846,_0x4d0be4[_0x50d4('0x21')][_0x50d4('0x22')]);return _0x29e467(_0x4d0be4[_0x50d4('0x21')][_0x50d4('0x22')]);}logger[_0x50d4('0x21')](_0x50d4('0x1c'),_0xc0a846,_0x4d0be4[_0x50d4('0x21')][_0x50d4('0x22')]);return _0x56b577(_0x4d0be4[_0x50d4('0x21')][_0x50d4('0x22')]);}else{logger[_0x50d4('0x1b')](_0x50d4('0x1c'),_0xc0a846,_0x50d4('0x1d'));_0x56b577(_0x4d0be4[_0x50d4('0x23')][_0x50d4('0x22')]);}})[_0x50d4('0x24')](function(_0xbef0bb){logger[_0x50d4('0x21')](_0x50d4('0x1c'),_0xc0a846,_0xbef0bb);_0x29e467(_0xbef0bb);});});}function respondWithStatusCode(_0x1ae214,_0x3f976c){_0x3f976c=_0x3f976c||0xcc;return function(_0xf241bc){if(_0xf241bc){return _0x1ae214[_0x50d4('0x25')](_0x3f976c);}return _0x1ae214['status'](_0x3f976c)['end']();};}function respondWithResult(_0x2242a5,_0x1222ec){_0x1222ec=_0x1222ec||0xc8;return function(_0x373e8e){if(_0x373e8e){return _0x2242a5['status'](_0x1222ec)[_0x50d4('0x26')](_0x373e8e);}};}function respondWithFilteredResult(_0x4624a6,_0x51f084){return function(_0x51141b){if(_0x51141b){var _0x3bb91a=_0x51141b['count'],_0x27f180=_0x51f084[_0x50d4('0x27')],_0x3abd84=_0x51f084[_0x50d4('0x27')]+_0x51f084['limit'],_0x4bea5c;if(_0x3abd84>=_0x3bb91a){_0x3abd84=_0x3bb91a;_0x4bea5c=0xc8;}else{_0x4bea5c=0xce;}_0x4624a6[_0x50d4('0x28')](_0x4bea5c);return _0x4624a6[_0x50d4('0x29')](_0x50d4('0x2a'),_0x27f180+'-'+_0x3abd84+'/'+_0x3bb91a)[_0x50d4('0x26')](_0x51141b);}return null;};}function patchUpdates(_0x2e208c){return function(_0xd2bb55){try{jsonpatch[_0x50d4('0x2b')](_0xd2bb55,_0x2e208c,!![]);}catch(_0x17b0c2){return BPromise[_0x50d4('0x2c')](_0x17b0c2);}return _0xd2bb55[_0x50d4('0x2d')]();};}function saveUpdates(_0x2facf3,_0x1f511e){return function(_0x3f8aa4){if(_0x3f8aa4){return _0x3f8aa4[_0x50d4('0x2e')](_0x2facf3)[_0x50d4('0x2f')](function(_0x1b2326){return _0x1b2326;});}return null;};}function removeEntity(_0x2d03e7,_0xf38e0c){return function(_0x269024){if(_0x269024){return _0x269024[_0x50d4('0x30')]()[_0x50d4('0x2f')](function(){_0x2d03e7[_0x50d4('0x28')](0xcc)[_0x50d4('0x31')]();});}};}function handleEntityNotFound(_0x17aebf,_0x15963e){return function(_0x3a70d2){if(!_0x3a70d2){_0x17aebf['sendStatus'](0x194);}return _0x3a70d2;};}function handleError(_0x9f1e60,_0x2ede82){_0x2ede82=_0x2ede82||0x1f4;return function(_0x336350){logger[_0x50d4('0x21')](_0x336350[_0x50d4('0x32')]);if(_0x336350[_0x50d4('0x33')]){delete _0x336350[_0x50d4('0x33')];}_0x9f1e60[_0x50d4('0x28')](_0x2ede82)['send'](_0x336350);};}exports[_0x50d4('0x34')]=function(_0x3d546b,_0x139978){var _0x54f7a6={},_0x23a124={},_0x2cf91b={'count':0x0,'rows':[]};var _0x9a38fc=_[_0x50d4('0x35')](db[_0x50d4('0x36')]['rawAttributes'],function(_0x1357c7){return{'name':_0x1357c7[_0x50d4('0x37')],'type':_0x1357c7[_0x50d4('0x38')]['key']};});_0x23a124[_0x50d4('0x39')]=_[_0x50d4('0x35')](_0x9a38fc,_0x50d4('0x33'));_0x23a124[_0x50d4('0x3a')]=_[_0x50d4('0x3b')](_0x3d546b['query']);_0x23a124[_0x50d4('0x3c')]=_[_0x50d4('0x3d')](_0x23a124[_0x50d4('0x39')],_0x23a124[_0x50d4('0x3a')]);_0x54f7a6['attributes']=_[_0x50d4('0x3d')](_0x23a124[_0x50d4('0x39')],qs['fields'](_0x3d546b[_0x50d4('0x3a')]['fields']));_0x54f7a6['attributes']=_0x54f7a6[_0x50d4('0x3e')]['length']?_0x54f7a6['attributes']:_0x23a124['model'];if(!_0x3d546b[_0x50d4('0x3a')]['hasOwnProperty'](_0x50d4('0x3f'))){_0x54f7a6['limit']=qs[_0x50d4('0x40')](_0x3d546b[_0x50d4('0x3a')][_0x50d4('0x40')]);_0x54f7a6['offset']=qs['offset'](_0x3d546b[_0x50d4('0x3a')]['offset']);}_0x54f7a6['order']=qs[_0x50d4('0x41')](_0x3d546b[_0x50d4('0x3a')]['sort']);_0x54f7a6[_0x50d4('0x42')]=qs[_0x50d4('0x3c')](_['pick'](_0x3d546b[_0x50d4('0x3a')],_0x23a124['filters']),_0x9a38fc);if(_0x3d546b[_0x50d4('0x3a')][_0x50d4('0x43')]){_0x54f7a6['where']=_[_0x50d4('0x44')](_0x54f7a6[_0x50d4('0x42')],{'$or':_[_0x50d4('0x35')](_0x9a38fc,function(_0x3ba797){if(_0x3ba797[_0x50d4('0x38')]!==_0x50d4('0x45')){var _0x56cccb={};_0x56cccb[_0x3ba797[_0x50d4('0x33')]]={'$like':'%'+_0x3d546b[_0x50d4('0x3a')]['filter']+'%'};return _0x56cccb;}})});}_0x54f7a6=_[_0x50d4('0x44')]({},_0x54f7a6,_0x3d546b[_0x50d4('0x46')]);var _0x3da189={'where':_0x54f7a6[_0x50d4('0x42')]};return db[_0x50d4('0x36')]['count'](_0x3da189)[_0x50d4('0x2f')](function(_0x5e2cbc){_0x2cf91b[_0x50d4('0x47')]=_0x5e2cbc;if(_0x3d546b[_0x50d4('0x3a')][_0x50d4('0x48')]){_0x54f7a6['include']=[{'all':!![]}];}return db[_0x50d4('0x36')][_0x50d4('0x49')](_0x54f7a6);})[_0x50d4('0x2f')](function(_0x3dfadf){_0x2cf91b[_0x50d4('0x4a')]=_0x3dfadf;return _0x2cf91b;})[_0x50d4('0x2f')](respondWithFilteredResult(_0x139978,_0x54f7a6))['catch'](handleError(_0x139978,null));};exports[_0x50d4('0x4b')]=function(_0x47b976,_0x3cb4c4){var _0xef802d={'raw':![],'where':{'id':_0x47b976[_0x50d4('0x4c')]['id']}},_0x567e5d={};_0x567e5d[_0x50d4('0x39')]=_[_0x50d4('0x3b')](db[_0x50d4('0x36')][_0x50d4('0x4d')]);_0x567e5d[_0x50d4('0x3a')]=_[_0x50d4('0x3b')](_0x47b976[_0x50d4('0x3a')]);_0x567e5d[_0x50d4('0x3c')]=_[_0x50d4('0x3d')](_0x567e5d[_0x50d4('0x39')],_0x567e5d['query']);_0xef802d['attributes']=_[_0x50d4('0x3d')](_0x567e5d[_0x50d4('0x39')],qs[_0x50d4('0x4e')](_0x47b976[_0x50d4('0x3a')][_0x50d4('0x4e')]));_0xef802d['attributes']=_0xef802d[_0x50d4('0x3e')][_0x50d4('0x4f')]?_0xef802d[_0x50d4('0x3e')]:_0x567e5d[_0x50d4('0x39')];if(_0x47b976[_0x50d4('0x3a')][_0x50d4('0x48')]){_0xef802d[_0x50d4('0x50')]=[{'all':!![]}];}_0xef802d=_[_0x50d4('0x44')]({},_0xef802d,_0x47b976['options']);return db['SugarcrmAccount'][_0x50d4('0x51')](_0xef802d)[_0x50d4('0x2f')](handleEntityNotFound(_0x3cb4c4,null))[_0x50d4('0x2f')](respondWithResult(_0x3cb4c4,null))[_0x50d4('0x24')](handleError(_0x3cb4c4,null));};exports['create']=function(_0x1ccdc0,_0x5e2750){return db[_0x50d4('0x36')]['create'](_0x1ccdc0[_0x50d4('0x52')],{})[_0x50d4('0x2f')](respondWithResult(_0x5e2750,0xc9))[_0x50d4('0x24')](handleError(_0x5e2750,null));};exports[_0x50d4('0x2e')]=function(_0x37722b,_0x918e70){if(_0x37722b[_0x50d4('0x52')]['id']){delete _0x37722b['body']['id'];}return db['SugarcrmAccount']['find']({'where':{'id':_0x37722b[_0x50d4('0x4c')]['id']}})[_0x50d4('0x2f')](handleEntityNotFound(_0x918e70,null))['then'](saveUpdates(_0x37722b['body'],null))[_0x50d4('0x2f')](respondWithResult(_0x918e70,null))[_0x50d4('0x24')](handleError(_0x918e70,null));};exports[_0x50d4('0x30')]=function(_0x4f6f31,_0x31e696){return db['SugarcrmAccount'][_0x50d4('0x51')]({'where':{'id':_0x4f6f31[_0x50d4('0x4c')]['id']}})[_0x50d4('0x2f')](handleEntityNotFound(_0x31e696,null))[_0x50d4('0x2f')](removeEntity(_0x31e696,null))[_0x50d4('0x24')](handleError(_0x31e696,null));};exports[_0x50d4('0x53')]=function(_0x5f4805,_0x5e33c8,_0x488d61){var _0x31322e={};var _0x3e7a16={};var _0x19b3aa;var _0x11ac1a;return db[_0x50d4('0x36')][_0x50d4('0x54')]({'where':{'id':_0x5f4805['params']['id']}})[_0x50d4('0x2f')](handleEntityNotFound(_0x5e33c8,null))['then'](function(_0x523348){if(_0x523348){_0x19b3aa=_0x523348;_0x3e7a16['model']=_[_0x50d4('0x3b')](db[_0x50d4('0x55')][_0x50d4('0x4d')]);_0x3e7a16[_0x50d4('0x3a')]=_[_0x50d4('0x3b')](_0x5f4805[_0x50d4('0x3a')]);_0x3e7a16['filters']=_[_0x50d4('0x3d')](_0x3e7a16[_0x50d4('0x39')],_0x3e7a16['query']);_0x31322e[_0x50d4('0x3e')]=_[_0x50d4('0x3d')](_0x3e7a16['model'],qs[_0x50d4('0x4e')](_0x5f4805[_0x50d4('0x3a')]['fields']));_0x31322e['attributes']=_0x31322e[_0x50d4('0x3e')][_0x50d4('0x4f')]?_0x31322e['attributes']:_0x3e7a16[_0x50d4('0x39')];_0x31322e[_0x50d4('0x56')]=qs[_0x50d4('0x41')](_0x5f4805[_0x50d4('0x3a')]['sort']);_0x31322e['where']=qs['filters'](_[_0x50d4('0x57')](_0x5f4805[_0x50d4('0x3a')],_0x3e7a16['filters']));if(_0x5f4805[_0x50d4('0x3a')][_0x50d4('0x43')]){_0x31322e[_0x50d4('0x42')]=_[_0x50d4('0x44')](_0x31322e[_0x50d4('0x42')],{'$or':_[_0x50d4('0x35')](_0x31322e['attributes'],function(_0x3fa978){var _0x3cf7fe={};_0x3cf7fe[_0x3fa978]={'$like':'%'+_0x5f4805[_0x50d4('0x3a')][_0x50d4('0x43')]+'%'};return _0x3cf7fe;})});}_0x31322e=_[_0x50d4('0x44')]({},_0x31322e,_0x5f4805[_0x50d4('0x46')]);return _0x19b3aa[_0x50d4('0x53')](_0x31322e);}})[_0x50d4('0x2f')](function(_0xfbcbca){if(_0xfbcbca){_0x11ac1a=_0xfbcbca[_0x50d4('0x4f')];if(!_0x5f4805[_0x50d4('0x3a')]['hasOwnProperty']('nolimit')){_0x31322e[_0x50d4('0x40')]=qs[_0x50d4('0x40')](_0x5f4805['query'][_0x50d4('0x40')]);_0x31322e[_0x50d4('0x27')]=qs['offset'](_0x5f4805['query'][_0x50d4('0x27')]);}return _0x19b3aa['getConfigurations'](_0x31322e);}})[_0x50d4('0x2f')](function(_0x571be8){if(_0x571be8){return _0x571be8?{'count':_0x11ac1a,'rows':_0x571be8}:null;}})[_0x50d4('0x2f')](respondWithResult(_0x5e33c8,null))[_0x50d4('0x24')](handleError(_0x5e33c8,null));};exports[_0x50d4('0x58')]=function(_0x16b89e,_0x570ea2,_0xc8d8f3){if(_0x16b89e['body']['id']){delete _0x16b89e['body']['id'];}return db[_0x50d4('0x36')]['findOne']({'where':{'id':_0x16b89e[_0x50d4('0x4c')]['id']}})[_0x50d4('0x2f')](handleEntityNotFound(_0x570ea2,null))[_0x50d4('0x2f')](function(_0x42850a){if(_0x42850a){_0x16b89e[_0x50d4('0x52')]['AccountId']=_0x42850a['id'];_0x16b89e[_0x50d4('0x52')][_0x50d4('0x59')]=integrations[_0x50d4('0x5a')](_0x16b89e[_0x50d4('0x52')][_0x50d4('0x5b')],_0x16b89e[_0x50d4('0x52')][_0x50d4('0x38')]);_0x16b89e[_0x50d4('0x52')][_0x50d4('0x5c')]=integrations['getDescriptions'](_0x16b89e[_0x50d4('0x52')]['channel'],_0x16b89e[_0x50d4('0x52')][_0x50d4('0x38')]);return db[_0x50d4('0x55')][_0x50d4('0x5d')](_0x16b89e[_0x50d4('0x52')],{'include':[{'model':db[_0x50d4('0x5e')],'as':_0x50d4('0x59')},{'model':db[_0x50d4('0x5e')],'as':_0x50d4('0x5c')}]});}return null;})[_0x50d4('0x2f')](respondWithResult(_0x570ea2,null))[_0x50d4('0x24')](handleError(_0x570ea2,null));};exports[_0x50d4('0x5f')]=function(_0x50a141,_0x590ae2,_0x4383c2){var _0x152849='';var _0x231939=['id','name',_0x50d4('0x60'),_0x50d4('0x61'),_0x50d4('0x62'),_0x50d4('0x63'),'duration_hours',_0x50d4('0x64'),_0x50d4('0x65'),'parent_type',_0x50d4('0x66'),_0x50d4('0x67')];return db[_0x50d4('0x36')]['findOne']({'where':{'id':_0x50a141[_0x50d4('0x4c')]['id']},'attributes':['id','username',_0x50d4('0x68'),_0x50d4('0x69')]})['then'](handleEntityNotFound(_0x590ae2,null))['then'](function(_0x3f520b){if(_0x3f520b){_0x152849=_0x3f520b[_0x50d4('0x69')];var _0x242d31=_0x152849[_0x50d4('0x6a')](-0x1);if(_0x242d31==='/'){_0x152849=_0x152849[_0x50d4('0x6b')](0x0,_0x152849[_0x50d4('0x6c')](_0x242d31));}return rp({'method':_0x50d4('0x6d'),'uri':util[_0x50d4('0x6e')](_0x50d4('0x6f'),_0x152849,_0x50d4('0x70')),'json':!![],'form':{'method':_0x50d4('0x71'),'input_type':'JSON','response_type':_0x50d4('0x72'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x3f520b[_0x50d4('0x73')],'password':_0x3f520b['password'],'encryption':_0x50d4('0x74')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x50d4('0x2f')](function(_0x1ac0bc){if(_0x1ac0bc&&_0x1ac0bc[_0x50d4('0x33')]!==_0x50d4('0x75')&&_0x1ac0bc[_0x50d4('0x33')]!==_0x50d4('0x76')){return rp({'method':'POST','uri':util[_0x50d4('0x6e')](_0x50d4('0x6f'),_0x152849,_0x50d4('0x70')),'json':!![],'form':{'method':_0x50d4('0x77'),'input_type':_0x50d4('0x72'),'response_type':_0x50d4('0x72'),'rest_data':JSON[_0x50d4('0x20')]({'session':_0x1ac0bc['id'],'module_name':_0x50d4('0x78')})}})['then'](function(_0x6ccb59){if(_0x6ccb59){var _0x6b4883=_[_0x50d4('0x79')](_0x6ccb59[_0x50d4('0x7a')]);_['remove'](_0x6b4883,function(_0xa543de){return _0x231939['includes'](_0xa543de[_0x50d4('0x33')]);});return{'count':_0x6b4883[_0x50d4('0x4f')],'rows':_[_0x50d4('0x35')](_0x6b4883,function(_0x28fafb){return{'id':_0x28fafb['name'],'name':_0x28fafb['label'],'custom':_[_0x50d4('0x7b')](_0x28fafb[_0x50d4('0x33')],'_c')?!![]:![],'options':_0x28fafb[_0x50d4('0x46')]?_[_0x50d4('0x35')](_[_0x50d4('0x79')](_0x28fafb['options']),function(_0xfaa890){return{'name':_0xfaa890[_0x50d4('0x7c')],'value':_0xfaa890[_0x50d4('0x33')]};}):[]};})};}})['then'](respondWithResult(_0x590ae2,null))[_0x50d4('0x24')](function(_0x4ba586){var _0x34b33b=_0x50a141[_0x50d4('0x3a')]['test']?0x1f4:_0x4ba586['statusCode']||0x1f4;logger[_0x50d4('0x21')](_0x50d4('0x7d'),_0x50d4('0x5f'),_0x34b33b,JSON[_0x50d4('0x20')](_0x4ba586));delete _0x4ba586['name'];if(_0x34b33b===0x191){_0x34b33b=0x190;}_0x590ae2[_0x50d4('0x28')](_0x34b33b)[_0x50d4('0x7e')](_0x50a141[_0x50d4('0x3a')][_0x50d4('0x7f')]?{'message':_0x50d4('0x80'),'statusCode':_0x4ba586['statusCode']}:_0x4ba586);});}else{var _0x4222fb=0x1f4;_0x590ae2[_0x50d4('0x28')](_0x4222fb)['send']({'message':_0x50d4('0x80'),'statusCode':0x190});}});};