Built motion from commit f7863d46.|2.5.41
[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 _0x0851=['JSON','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','get_module_fields','stringify','module_fields','remove','includes','values','test','statusCode','getFields','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','offset','limit','count','Content-Range','apply','reject','update','destroy','end','sendStatus','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','then','includeAll','include','findAll','rows','show','params','find','create','body','catch','getConfigurations','findOne','SugarcrmConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','assigned_user_id','created_by','description','duration_hours','duration_minutes','parent_type','direction','password','remoteUri','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login'];(function(_0x8bf12a,_0x4838d9){var _0x4a1ce8=function(_0x53a907){while(--_0x53a907){_0x8bf12a['push'](_0x8bf12a['shift']());}};_0x4a1ce8(++_0x4838d9);}(_0x0851,0x8a));var _0x1085=function(_0x53a864,_0x46f773){_0x53a864=_0x53a864-0x0;var _0x5432d1=_0x0851[_0x53a864];return _0x5432d1;};'use strict';var emlformat=require(_0x1085('0x0'));var rimraf=require(_0x1085('0x1'));var zipdir=require(_0x1085('0x2'));var jsonpatch=require(_0x1085('0x3'));var rp=require('request-promise');var moment=require(_0x1085('0x4'));var BPromise=require(_0x1085('0x5'));var Mustache=require(_0x1085('0x6'));var util=require(_0x1085('0x7'));var path=require(_0x1085('0x8'));var sox=require(_0x1085('0x9'));var csv=require(_0x1085('0xa'));var ejs=require(_0x1085('0xb'));var fs=require('fs');var fs_extra=require(_0x1085('0xc'));var _=require(_0x1085('0xd'));var squel=require(_0x1085('0xe'));var crypto=require(_0x1085('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1085('0xa'));var querystring=require(_0x1085('0x10'));var Papa=require(_0x1085('0x11'));var Redis=require(_0x1085('0x12'));var authService=require(_0x1085('0x13'));var qs=require(_0x1085('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1085('0x15'));var logger=require(_0x1085('0x16'))(_0x1085('0x17'));var utils=require(_0x1085('0x18'));var config=require(_0x1085('0x19'));var licenseUtil=require(_0x1085('0x1a'));var db=require(_0x1085('0x1b'))['db'];var integrations=require(_0x1085('0x1c'));function respondWithStatusCode(_0x3664c9,_0x95194a){_0x95194a=_0x95194a||0xcc;return function(_0x2f8e73){if(_0x2f8e73){return _0x3664c9['sendStatus'](_0x95194a);}return _0x3664c9[_0x1085('0x1d')](_0x95194a)['end']();};}function respondWithResult(_0x4754c9,_0x23dcd7){_0x23dcd7=_0x23dcd7||0xc8;return function(_0x3c8c86){if(_0x3c8c86){return _0x4754c9['status'](_0x23dcd7)[_0x1085('0x1e')](_0x3c8c86);}};}function respondWithFilteredResult(_0x27b8d9,_0x1332ad){return function(_0x41e4d7){if(_0x41e4d7){var _0x5ade59=typeof _0x1332ad[_0x1085('0x1f')]==='undefined'&&typeof _0x1332ad[_0x1085('0x20')]==='undefined';var _0xd86158=_0x41e4d7[_0x1085('0x21')];var _0x1cfdb9=_0x5ade59?0x0:_0x1332ad['offset'];var _0x40eafa=_0x5ade59?_0x41e4d7['count']:_0x1332ad[_0x1085('0x1f')]+_0x1332ad['limit'];var _0x4dba83;if(_0x40eafa>=_0xd86158){_0x40eafa=_0xd86158;_0x4dba83=0xc8;}else{_0x4dba83=0xce;}_0x27b8d9['status'](_0x4dba83);return _0x27b8d9['set'](_0x1085('0x22'),_0x1cfdb9+'-'+_0x40eafa+'/'+_0xd86158)['json'](_0x41e4d7);}return null;};}function patchUpdates(_0x5460cb){return function(_0x49b304){try{jsonpatch[_0x1085('0x23')](_0x49b304,_0x5460cb,!![]);}catch(_0x68789f){return BPromise[_0x1085('0x24')](_0x68789f);}return _0x49b304['save']();};}function saveUpdates(_0x146a78,_0x3c77f2){return function(_0x577d3c){if(_0x577d3c){return _0x577d3c[_0x1085('0x25')](_0x146a78)['then'](function(_0x32efc1){return _0x32efc1;});}return null;};}function removeEntity(_0x54f32c,_0xafd7df){return function(_0x3ef068){if(_0x3ef068){return _0x3ef068[_0x1085('0x26')]()['then'](function(){_0x54f32c[_0x1085('0x1d')](0xcc)[_0x1085('0x27')]();});}};}function handleEntityNotFound(_0x2712c9,_0x552876){return function(_0x3b685f){if(!_0x3b685f){_0x2712c9[_0x1085('0x28')](0x194);}return _0x3b685f;};}function handleError(_0x3f788b,_0x4b3ca1){_0x4b3ca1=_0x4b3ca1||0x1f4;return function(_0x4013f7){logger[_0x1085('0x29')](_0x4013f7[_0x1085('0x2a')]);if(_0x4013f7[_0x1085('0x2b')]){delete _0x4013f7[_0x1085('0x2b')];}_0x3f788b[_0x1085('0x1d')](_0x4b3ca1)[_0x1085('0x2c')](_0x4013f7);};}exports[_0x1085('0x2d')]=function(_0x22f3d9,_0x417cb6){var _0x1881d5={},_0x5c5ed1={},_0x24959b={'count':0x0,'rows':[]};var _0x1a6947=_[_0x1085('0x2e')](db[_0x1085('0x2f')][_0x1085('0x30')],function(_0x187dc2){return{'name':_0x187dc2[_0x1085('0x31')],'type':_0x187dc2[_0x1085('0x32')][_0x1085('0x33')]};});_0x5c5ed1[_0x1085('0x34')]=_[_0x1085('0x2e')](_0x1a6947,_0x1085('0x2b'));_0x5c5ed1['query']=_[_0x1085('0x35')](_0x22f3d9[_0x1085('0x36')]);_0x5c5ed1['filters']=_[_0x1085('0x37')](_0x5c5ed1[_0x1085('0x34')],_0x5c5ed1[_0x1085('0x36')]);_0x1881d5[_0x1085('0x38')]=_[_0x1085('0x37')](_0x5c5ed1['model'],qs[_0x1085('0x39')](_0x22f3d9[_0x1085('0x36')]['fields']));_0x1881d5[_0x1085('0x38')]=_0x1881d5[_0x1085('0x38')][_0x1085('0x3a')]?_0x1881d5[_0x1085('0x38')]:_0x5c5ed1['model'];if(!_0x22f3d9[_0x1085('0x36')][_0x1085('0x3b')](_0x1085('0x3c'))){_0x1881d5[_0x1085('0x20')]=qs['limit'](_0x22f3d9[_0x1085('0x36')][_0x1085('0x20')]);_0x1881d5[_0x1085('0x1f')]=qs['offset'](_0x22f3d9[_0x1085('0x36')]['offset']);}_0x1881d5[_0x1085('0x3d')]=qs['sort'](_0x22f3d9[_0x1085('0x36')][_0x1085('0x3e')]);_0x1881d5['where']=qs[_0x1085('0x3f')](_[_0x1085('0x40')](_0x22f3d9['query'],_0x5c5ed1[_0x1085('0x3f')]),_0x1a6947);if(_0x22f3d9['query']['filter']){_0x1881d5[_0x1085('0x41')]=_[_0x1085('0x42')](_0x1881d5['where'],{'$or':_[_0x1085('0x2e')](_0x1a6947,function(_0xe842da){if(_0xe842da[_0x1085('0x32')]!==_0x1085('0x43')){var _0x554746={};_0x554746[_0xe842da[_0x1085('0x2b')]]={'$like':'%'+_0x22f3d9[_0x1085('0x36')][_0x1085('0x44')]+'%'};return _0x554746;}})});}_0x1881d5=_[_0x1085('0x42')]({},_0x1881d5,_0x22f3d9[_0x1085('0x45')]);var _0x5b0db8={'where':_0x1881d5[_0x1085('0x41')]};return db['SugarcrmAccount']['count'](_0x5b0db8)[_0x1085('0x46')](function(_0x51f002){_0x24959b['count']=_0x51f002;if(_0x22f3d9['query'][_0x1085('0x47')]){_0x1881d5[_0x1085('0x48')]=[{'all':!![]}];}return db[_0x1085('0x2f')][_0x1085('0x49')](_0x1881d5);})[_0x1085('0x46')](function(_0x29172c){_0x24959b[_0x1085('0x4a')]=_0x29172c;return _0x24959b;})['then'](respondWithFilteredResult(_0x417cb6,_0x1881d5))['catch'](handleError(_0x417cb6,null));};exports[_0x1085('0x4b')]=function(_0x47a10c,_0x4e8ccf){var _0x2fbad5={'raw':![],'where':{'id':_0x47a10c[_0x1085('0x4c')]['id']}},_0x3cbcfe={};_0x3cbcfe[_0x1085('0x34')]=_[_0x1085('0x35')](db[_0x1085('0x2f')][_0x1085('0x30')]);_0x3cbcfe['query']=_['keys'](_0x47a10c[_0x1085('0x36')]);_0x3cbcfe['filters']=_['intersection'](_0x3cbcfe[_0x1085('0x34')],_0x3cbcfe[_0x1085('0x36')]);_0x2fbad5[_0x1085('0x38')]=_[_0x1085('0x37')](_0x3cbcfe[_0x1085('0x34')],qs[_0x1085('0x39')](_0x47a10c[_0x1085('0x36')][_0x1085('0x39')]));_0x2fbad5['attributes']=_0x2fbad5[_0x1085('0x38')]['length']?_0x2fbad5[_0x1085('0x38')]:_0x3cbcfe[_0x1085('0x34')];if(_0x47a10c[_0x1085('0x36')][_0x1085('0x47')]){_0x2fbad5[_0x1085('0x48')]=[{'all':!![]}];}_0x2fbad5=_['merge']({},_0x2fbad5,_0x47a10c[_0x1085('0x45')]);return db[_0x1085('0x2f')][_0x1085('0x4d')](_0x2fbad5)[_0x1085('0x46')](handleEntityNotFound(_0x4e8ccf,null))[_0x1085('0x46')](respondWithResult(_0x4e8ccf,null))['catch'](handleError(_0x4e8ccf,null));};exports[_0x1085('0x4e')]=function(_0x32c07d,_0x34aa2d){return db[_0x1085('0x2f')][_0x1085('0x4e')](_0x32c07d[_0x1085('0x4f')],{})['then'](respondWithResult(_0x34aa2d,0xc9))[_0x1085('0x50')](handleError(_0x34aa2d,null));};exports[_0x1085('0x25')]=function(_0x7338f9,_0x57aa7c){if(_0x7338f9[_0x1085('0x4f')]['id']){delete _0x7338f9['body']['id'];}return db[_0x1085('0x2f')][_0x1085('0x4d')]({'where':{'id':_0x7338f9[_0x1085('0x4c')]['id']}})[_0x1085('0x46')](handleEntityNotFound(_0x57aa7c,null))['then'](saveUpdates(_0x7338f9['body'],null))[_0x1085('0x46')](respondWithResult(_0x57aa7c,null))['catch'](handleError(_0x57aa7c,null));};exports[_0x1085('0x26')]=function(_0x279d0b,_0x23c0fd){return db[_0x1085('0x2f')]['find']({'where':{'id':_0x279d0b[_0x1085('0x4c')]['id']}})[_0x1085('0x46')](handleEntityNotFound(_0x23c0fd,null))[_0x1085('0x46')](removeEntity(_0x23c0fd,null))['catch'](handleError(_0x23c0fd,null));};exports[_0x1085('0x51')]=function(_0x1ccbb5,_0x2ed852,_0x400c61){var _0x18699d={};var _0x66afa1={};var _0x46104b;var _0xd7e1fb;return db[_0x1085('0x2f')][_0x1085('0x52')]({'where':{'id':_0x1ccbb5[_0x1085('0x4c')]['id']}})[_0x1085('0x46')](handleEntityNotFound(_0x2ed852,null))[_0x1085('0x46')](function(_0x453518){if(_0x453518){_0x46104b=_0x453518;_0x66afa1['model']=_[_0x1085('0x35')](db[_0x1085('0x53')][_0x1085('0x30')]);_0x66afa1[_0x1085('0x36')]=_[_0x1085('0x35')](_0x1ccbb5['query']);_0x66afa1[_0x1085('0x3f')]=_[_0x1085('0x37')](_0x66afa1[_0x1085('0x34')],_0x66afa1['query']);_0x18699d[_0x1085('0x38')]=_['intersection'](_0x66afa1[_0x1085('0x34')],qs[_0x1085('0x39')](_0x1ccbb5[_0x1085('0x36')][_0x1085('0x39')]));_0x18699d[_0x1085('0x38')]=_0x18699d['attributes'][_0x1085('0x3a')]?_0x18699d[_0x1085('0x38')]:_0x66afa1[_0x1085('0x34')];_0x18699d[_0x1085('0x3d')]=qs['sort'](_0x1ccbb5['query'][_0x1085('0x3e')]);_0x18699d[_0x1085('0x41')]=qs[_0x1085('0x3f')](_[_0x1085('0x40')](_0x1ccbb5[_0x1085('0x36')],_0x66afa1['filters']));if(_0x1ccbb5['query'][_0x1085('0x44')]){_0x18699d['where']=_['merge'](_0x18699d[_0x1085('0x41')],{'$or':_[_0x1085('0x2e')](_0x18699d[_0x1085('0x38')],function(_0x4fe02a){var _0x2f3bc6={};_0x2f3bc6[_0x4fe02a]={'$like':'%'+_0x1ccbb5[_0x1085('0x36')][_0x1085('0x44')]+'%'};return _0x2f3bc6;})});}_0x18699d=_['merge']({},_0x18699d,_0x1ccbb5[_0x1085('0x45')]);return _0x46104b[_0x1085('0x51')](_0x18699d);}})['then'](function(_0x5936bd){if(_0x5936bd){_0xd7e1fb=_0x5936bd[_0x1085('0x3a')];if(!_0x1ccbb5[_0x1085('0x36')][_0x1085('0x3b')](_0x1085('0x3c'))){_0x18699d[_0x1085('0x20')]=qs[_0x1085('0x20')](_0x1ccbb5[_0x1085('0x36')][_0x1085('0x20')]);_0x18699d[_0x1085('0x1f')]=qs['offset'](_0x1ccbb5[_0x1085('0x36')][_0x1085('0x1f')]);}return _0x46104b[_0x1085('0x51')](_0x18699d);}})['then'](function(_0x3dabb9){if(_0x3dabb9){return _0x3dabb9?{'count':_0xd7e1fb,'rows':_0x3dabb9}:null;}})[_0x1085('0x46')](respondWithResult(_0x2ed852,null))[_0x1085('0x50')](handleError(_0x2ed852,null));};exports[_0x1085('0x54')]=function(_0x3636d9,_0x4b1b96,_0x5784df){if(_0x3636d9['body']['id']){delete _0x3636d9['body']['id'];}return db[_0x1085('0x2f')][_0x1085('0x52')]({'where':{'id':_0x3636d9[_0x1085('0x4c')]['id']}})[_0x1085('0x46')](handleEntityNotFound(_0x4b1b96,null))['then'](function(_0x88b4df){if(_0x88b4df){_0x3636d9[_0x1085('0x4f')][_0x1085('0x55')]=_0x88b4df['id'];_0x3636d9['body'][_0x1085('0x56')]=integrations[_0x1085('0x57')](_0x3636d9['body'][_0x1085('0x58')],_0x3636d9[_0x1085('0x4f')][_0x1085('0x32')]);_0x3636d9[_0x1085('0x4f')][_0x1085('0x59')]=integrations[_0x1085('0x5a')](_0x3636d9[_0x1085('0x4f')][_0x1085('0x58')],_0x3636d9[_0x1085('0x4f')][_0x1085('0x32')]);return db[_0x1085('0x53')][_0x1085('0x4e')](_0x3636d9['body'],{'include':[{'model':db[_0x1085('0x5b')],'as':'Subjects'},{'model':db[_0x1085('0x5b')],'as':_0x1085('0x59')}]});}return null;})[_0x1085('0x46')](respondWithResult(_0x4b1b96,null))['catch'](handleError(_0x4b1b96,null));};exports['getFields']=function(_0x63f61e,_0x92f412,_0x2499f0){var _0x5e2241='';var _0x23e2b2=['id',_0x1085('0x2b'),_0x1085('0x5c'),_0x1085('0x5d'),_0x1085('0x5e'),'date_start',_0x1085('0x5f'),_0x1085('0x60'),'parent_id',_0x1085('0x61'),'parent_name',_0x1085('0x62')];return db[_0x1085('0x2f')][_0x1085('0x52')]({'where':{'id':_0x63f61e[_0x1085('0x4c')]['id']},'attributes':['id','username',_0x1085('0x63'),'remoteUri']})['then'](handleEntityNotFound(_0x92f412,null))[_0x1085('0x46')](function(_0x1acce1){if(_0x1acce1){_0x5e2241=_0x1acce1[_0x1085('0x64')];var _0x42d81f=_0x5e2241['slice'](-0x1);if(_0x42d81f==='/'){_0x5e2241=_0x5e2241[_0x1085('0x65')](0x0,_0x5e2241[_0x1085('0x66')](_0x42d81f));}return rp({'method':_0x1085('0x67'),'uri':util[_0x1085('0x68')](_0x1085('0x69'),_0x5e2241,_0x1085('0x6a')),'json':!![],'form':{'method':_0x1085('0x6b'),'input_type':_0x1085('0x6c'),'response_type':'JSON','rest_data':JSON['stringify']({'user_auth':{'user_name':_0x1acce1['username'],'password':_0x1acce1[_0x1085('0x63')],'encryption':_0x1085('0x6d')},'application':_0x1085('0x6e')})}});}})[_0x1085('0x46')](function(_0x590adb){if(_0x590adb&&_0x590adb[_0x1085('0x2b')]!==_0x1085('0x6f')&&_0x590adb[_0x1085('0x2b')]!==_0x1085('0x70')){return rp({'method':_0x1085('0x67'),'uri':util[_0x1085('0x68')](_0x1085('0x69'),_0x5e2241,_0x1085('0x6a')),'json':!![],'form':{'method':_0x1085('0x71'),'input_type':_0x1085('0x6c'),'response_type':_0x1085('0x6c'),'rest_data':JSON[_0x1085('0x72')]({'session':_0x590adb['id'],'module_name':'Calls'})}})[_0x1085('0x46')](function(_0x481ff6){if(_0x481ff6){var _0x3315a2=_['values'](_0x481ff6[_0x1085('0x73')]);_[_0x1085('0x74')](_0x3315a2,function(_0x4aca63){return _0x23e2b2[_0x1085('0x75')](_0x4aca63['name']);});return{'count':_0x3315a2['length'],'rows':_[_0x1085('0x2e')](_0x3315a2,function(_0x4e3b80){return{'id':_0x4e3b80[_0x1085('0x2b')],'name':_0x4e3b80['label'],'custom':_['endsWith'](_0x4e3b80[_0x1085('0x2b')],'_c')?!![]:![],'options':_0x4e3b80[_0x1085('0x45')]?_[_0x1085('0x2e')](_[_0x1085('0x76')](_0x4e3b80[_0x1085('0x45')]),function(_0x28c4ca){return{'name':_0x28c4ca['value'],'value':_0x28c4ca['name']};}):[]};})};}})[_0x1085('0x46')](respondWithResult(_0x92f412,null))[_0x1085('0x50')](function(_0x445a46){var _0x14aaca=_0x63f61e[_0x1085('0x36')][_0x1085('0x77')]?0x1f4:_0x445a46[_0x1085('0x78')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x1085('0x79'),_0x14aaca,JSON['stringify'](_0x445a46));delete _0x445a46[_0x1085('0x2b')];if(_0x14aaca===0x191){_0x14aaca=0x190;}_0x92f412['status'](_0x14aaca)[_0x1085('0x2c')](_0x63f61e[_0x1085('0x36')]['test']?{'message':_0x1085('0x7a'),'statusCode':_0x445a46[_0x1085('0x78')]}:_0x445a46);});}else{var _0x15d6f9=0x1f4;_0x92f412[_0x1085('0x1d')](_0x15d6f9)[_0x1085('0x2c')]({'message':_0x1085('0x7a'),'statusCode':0x190});}});};