Built motion from commit 9efc8423.|2.6.31
[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 _0xb452=['status','json','offset','undefined','limit','count','Content-Range','apply','update','then','destroy','end','error','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','find','create','body','getConfigurations','SugarcrmConfiguration','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','created_by','description','date_start','parent_id','parent_type','parent_name','direction','username','password','remoteUri','substring','lastIndexOf','POST','format','%s%s','login','JSON','Password\x20Expired','/service/v4_1/rest.php','get_module_fields','module_fields','remove','endsWith','values','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment'];(function(_0x361a1c,_0x45d736){var _0x2e57ac=function(_0x3abe43){while(--_0x3abe43){_0x361a1c['push'](_0x361a1c['shift']());}};_0x2e57ac(++_0x45d736);}(_0xb452,0xc9));var _0x2b45=function(_0x3cd025,_0x1e2adf){_0x3cd025=_0x3cd025-0x0;var _0xaa86eb=_0xb452[_0x3cd025];return _0xaa86eb;};'use strict';var emlformat=require(_0x2b45('0x0'));var rimraf=require(_0x2b45('0x1'));var zipdir=require(_0x2b45('0x2'));var jsonpatch=require(_0x2b45('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2b45('0x4'));var Mustache=require('mustache');var util=require(_0x2b45('0x5'));var path=require(_0x2b45('0x6'));var sox=require(_0x2b45('0x7'));var csv=require(_0x2b45('0x8'));var ejs=require(_0x2b45('0x9'));var fs=require('fs');var fs_extra=require(_0x2b45('0xa'));var _=require(_0x2b45('0xb'));var squel=require(_0x2b45('0xc'));var crypto=require(_0x2b45('0xd'));var jsforce=require(_0x2b45('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x2b45('0x8'));var querystring=require(_0x2b45('0xf'));var Papa=require('papaparse');var Redis=require(_0x2b45('0x10'));var authService=require(_0x2b45('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x2b45('0x12'));var hardwareService=require(_0x2b45('0x13'));var logger=require('../../config/logger')(_0x2b45('0x14'));var utils=require(_0x2b45('0x15'));var config=require(_0x2b45('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x2fb161,_0x1fd2e7){_0x1fd2e7=_0x1fd2e7||0xcc;return function(_0x3f3ec2){if(_0x3f3ec2){return _0x2fb161['sendStatus'](_0x1fd2e7);}return _0x2fb161[_0x2b45('0x17')](_0x1fd2e7)['end']();};}function respondWithResult(_0x2a6333,_0xe7f40){_0xe7f40=_0xe7f40||0xc8;return function(_0x383d2e){if(_0x383d2e){return _0x2a6333[_0x2b45('0x17')](_0xe7f40)[_0x2b45('0x18')](_0x383d2e);}};}function respondWithFilteredResult(_0x361207,_0x3a6c4e){return function(_0x342730){if(_0x342730){var _0xaaf60c=typeof _0x3a6c4e[_0x2b45('0x19')]===_0x2b45('0x1a')&&typeof _0x3a6c4e[_0x2b45('0x1b')]===_0x2b45('0x1a');var _0x4a3457=_0x342730[_0x2b45('0x1c')];var _0x1917f2=_0xaaf60c?0x0:_0x3a6c4e[_0x2b45('0x19')];var _0x9ce08d=_0xaaf60c?_0x342730['count']:_0x3a6c4e['offset']+_0x3a6c4e['limit'];var _0x5a92e7;if(_0x9ce08d>=_0x4a3457){_0x9ce08d=_0x4a3457;_0x5a92e7=0xc8;}else{_0x5a92e7=0xce;}_0x361207['status'](_0x5a92e7);return _0x361207['set'](_0x2b45('0x1d'),_0x1917f2+'-'+_0x9ce08d+'/'+_0x4a3457)['json'](_0x342730);}return null;};}function patchUpdates(_0x29996c){return function(_0x44fc48){try{jsonpatch[_0x2b45('0x1e')](_0x44fc48,_0x29996c,!![]);}catch(_0x3dc3e7){return BPromise['reject'](_0x3dc3e7);}return _0x44fc48['save']();};}function saveUpdates(_0x3f30e2,_0x40d1db){return function(_0x65b6ab){if(_0x65b6ab){return _0x65b6ab[_0x2b45('0x1f')](_0x3f30e2)[_0x2b45('0x20')](function(_0x20d2f0){return _0x20d2f0;});}return null;};}function removeEntity(_0x582f6a,_0x2f95c8){return function(_0x21e69a){if(_0x21e69a){return _0x21e69a[_0x2b45('0x21')]()[_0x2b45('0x20')](function(){_0x582f6a[_0x2b45('0x17')](0xcc)[_0x2b45('0x22')]();});}};}function handleEntityNotFound(_0x3ffec3,_0x52a3e){return function(_0x4c0abe){if(!_0x4c0abe){_0x3ffec3['sendStatus'](0x194);}return _0x4c0abe;};}function handleError(_0x50cc1d,_0x242aed){_0x242aed=_0x242aed||0x1f4;return function(_0x306546){logger[_0x2b45('0x23')](_0x306546['stack']);if(_0x306546[_0x2b45('0x24')]){delete _0x306546['name'];}_0x50cc1d[_0x2b45('0x17')](_0x242aed)[_0x2b45('0x25')](_0x306546);};}exports[_0x2b45('0x26')]=function(_0x21ff39,_0x1d375e){var _0x3ae119={},_0x4b1ef2={},_0x5e44c7={'count':0x0,'rows':[]};var _0x328025=_[_0x2b45('0x27')](db[_0x2b45('0x28')][_0x2b45('0x29')],function(_0x5e7bc3){return{'name':_0x5e7bc3[_0x2b45('0x2a')],'type':_0x5e7bc3[_0x2b45('0x2b')][_0x2b45('0x2c')]};});_0x4b1ef2[_0x2b45('0x2d')]=_[_0x2b45('0x27')](_0x328025,_0x2b45('0x24'));_0x4b1ef2[_0x2b45('0x2e')]=_[_0x2b45('0x2f')](_0x21ff39[_0x2b45('0x2e')]);_0x4b1ef2[_0x2b45('0x30')]=_[_0x2b45('0x31')](_0x4b1ef2[_0x2b45('0x2d')],_0x4b1ef2[_0x2b45('0x2e')]);_0x3ae119[_0x2b45('0x32')]=_[_0x2b45('0x31')](_0x4b1ef2[_0x2b45('0x2d')],qs['fields'](_0x21ff39[_0x2b45('0x2e')][_0x2b45('0x33')]));_0x3ae119[_0x2b45('0x32')]=_0x3ae119[_0x2b45('0x32')][_0x2b45('0x34')]?_0x3ae119[_0x2b45('0x32')]:_0x4b1ef2[_0x2b45('0x2d')];if(!_0x21ff39[_0x2b45('0x2e')][_0x2b45('0x35')](_0x2b45('0x36'))){_0x3ae119[_0x2b45('0x1b')]=qs[_0x2b45('0x1b')](_0x21ff39[_0x2b45('0x2e')][_0x2b45('0x1b')]);_0x3ae119['offset']=qs[_0x2b45('0x19')](_0x21ff39[_0x2b45('0x2e')][_0x2b45('0x19')]);}_0x3ae119[_0x2b45('0x37')]=qs[_0x2b45('0x38')](_0x21ff39['query'][_0x2b45('0x38')]);_0x3ae119[_0x2b45('0x39')]=qs['filters'](_[_0x2b45('0x3a')](_0x21ff39[_0x2b45('0x2e')],_0x4b1ef2[_0x2b45('0x30')]),_0x328025);if(_0x21ff39[_0x2b45('0x2e')][_0x2b45('0x3b')]){_0x3ae119[_0x2b45('0x39')]=_['merge'](_0x3ae119['where'],{'$or':_[_0x2b45('0x27')](_0x328025,function(_0x56ce17){if(_0x56ce17[_0x2b45('0x2b')]!==_0x2b45('0x3c')){var _0x1716e8={};_0x1716e8[_0x56ce17[_0x2b45('0x24')]]={'$like':'%'+_0x21ff39[_0x2b45('0x2e')][_0x2b45('0x3b')]+'%'};return _0x1716e8;}})});}_0x3ae119=_[_0x2b45('0x3d')]({},_0x3ae119,_0x21ff39[_0x2b45('0x3e')]);var _0x1bd1f0={'where':_0x3ae119[_0x2b45('0x39')]};return db['SugarcrmAccount'][_0x2b45('0x1c')](_0x1bd1f0)[_0x2b45('0x20')](function(_0x3a2983){_0x5e44c7[_0x2b45('0x1c')]=_0x3a2983;if(_0x21ff39[_0x2b45('0x2e')][_0x2b45('0x3f')]){_0x3ae119[_0x2b45('0x40')]=[{'all':!![]}];}return db[_0x2b45('0x28')][_0x2b45('0x41')](_0x3ae119);})['then'](function(_0x421547){_0x5e44c7['rows']=_0x421547;return _0x5e44c7;})['then'](respondWithFilteredResult(_0x1d375e,_0x3ae119))[_0x2b45('0x42')](handleError(_0x1d375e,null));};exports[_0x2b45('0x43')]=function(_0x3bc161,_0x2ca857){var _0x43b56d={'raw':![],'where':{'id':_0x3bc161[_0x2b45('0x44')]['id']}},_0x2cf48a={};_0x2cf48a['model']=_['keys'](db['SugarcrmAccount'][_0x2b45('0x29')]);_0x2cf48a[_0x2b45('0x2e')]=_[_0x2b45('0x2f')](_0x3bc161[_0x2b45('0x2e')]);_0x2cf48a[_0x2b45('0x30')]=_[_0x2b45('0x31')](_0x2cf48a['model'],_0x2cf48a[_0x2b45('0x2e')]);_0x43b56d[_0x2b45('0x32')]=_[_0x2b45('0x31')](_0x2cf48a[_0x2b45('0x2d')],qs[_0x2b45('0x33')](_0x3bc161[_0x2b45('0x2e')][_0x2b45('0x33')]));_0x43b56d[_0x2b45('0x32')]=_0x43b56d[_0x2b45('0x32')]['length']?_0x43b56d[_0x2b45('0x32')]:_0x2cf48a[_0x2b45('0x2d')];if(_0x3bc161[_0x2b45('0x2e')]['includeAll']){_0x43b56d[_0x2b45('0x40')]=[{'all':!![]}];}_0x43b56d=_['merge']({},_0x43b56d,_0x3bc161[_0x2b45('0x3e')]);return db['SugarcrmAccount'][_0x2b45('0x45')](_0x43b56d)[_0x2b45('0x20')](handleEntityNotFound(_0x2ca857,null))[_0x2b45('0x20')](respondWithResult(_0x2ca857,null))[_0x2b45('0x42')](handleError(_0x2ca857,null));};exports[_0x2b45('0x46')]=function(_0x490f59,_0x3e0761){return db[_0x2b45('0x28')][_0x2b45('0x46')](_0x490f59['body'],{})[_0x2b45('0x20')](respondWithResult(_0x3e0761,0xc9))[_0x2b45('0x42')](handleError(_0x3e0761,null));};exports['update']=function(_0x4e5174,_0x2633b8){if(_0x4e5174[_0x2b45('0x47')]['id']){delete _0x4e5174[_0x2b45('0x47')]['id'];}return db[_0x2b45('0x28')]['find']({'where':{'id':_0x4e5174[_0x2b45('0x44')]['id']}})['then'](handleEntityNotFound(_0x2633b8,null))[_0x2b45('0x20')](saveUpdates(_0x4e5174['body'],null))[_0x2b45('0x20')](respondWithResult(_0x2633b8,null))[_0x2b45('0x42')](handleError(_0x2633b8,null));};exports[_0x2b45('0x21')]=function(_0x2faa5e,_0x217900){return db[_0x2b45('0x28')][_0x2b45('0x45')]({'where':{'id':_0x2faa5e['params']['id']}})[_0x2b45('0x20')](handleEntityNotFound(_0x217900,null))['then'](removeEntity(_0x217900,null))['catch'](handleError(_0x217900,null));};exports[_0x2b45('0x48')]=function(_0x451a7e,_0x95e5b,_0x19064e){var _0x13cd12={};var _0x3f7d04={};var _0x407dba;var _0x44c752;return db[_0x2b45('0x28')]['findOne']({'where':{'id':_0x451a7e[_0x2b45('0x44')]['id']}})[_0x2b45('0x20')](handleEntityNotFound(_0x95e5b,null))[_0x2b45('0x20')](function(_0x12d68b){if(_0x12d68b){_0x407dba=_0x12d68b;_0x3f7d04['model']=_['keys'](db[_0x2b45('0x49')][_0x2b45('0x29')]);_0x3f7d04[_0x2b45('0x2e')]=_[_0x2b45('0x2f')](_0x451a7e[_0x2b45('0x2e')]);_0x3f7d04[_0x2b45('0x30')]=_['intersection'](_0x3f7d04[_0x2b45('0x2d')],_0x3f7d04[_0x2b45('0x2e')]);_0x13cd12['attributes']=_[_0x2b45('0x31')](_0x3f7d04[_0x2b45('0x2d')],qs['fields'](_0x451a7e[_0x2b45('0x2e')]['fields']));_0x13cd12[_0x2b45('0x32')]=_0x13cd12['attributes'][_0x2b45('0x34')]?_0x13cd12['attributes']:_0x3f7d04['model'];_0x13cd12[_0x2b45('0x37')]=qs[_0x2b45('0x38')](_0x451a7e[_0x2b45('0x2e')][_0x2b45('0x38')]);_0x13cd12['where']=qs[_0x2b45('0x30')](_[_0x2b45('0x3a')](_0x451a7e['query'],_0x3f7d04[_0x2b45('0x30')]));if(_0x451a7e[_0x2b45('0x2e')][_0x2b45('0x3b')]){_0x13cd12['where']=_[_0x2b45('0x3d')](_0x13cd12[_0x2b45('0x39')],{'$or':_[_0x2b45('0x27')](_0x13cd12['attributes'],function(_0x267c81){var _0x34109e={};_0x34109e[_0x267c81]={'$like':'%'+_0x451a7e[_0x2b45('0x2e')][_0x2b45('0x3b')]+'%'};return _0x34109e;})});}_0x13cd12=_[_0x2b45('0x3d')]({},_0x13cd12,_0x451a7e[_0x2b45('0x3e')]);return _0x407dba[_0x2b45('0x48')](_0x13cd12);}})[_0x2b45('0x20')](function(_0x44a17d){if(_0x44a17d){_0x44c752=_0x44a17d['length'];if(!_0x451a7e[_0x2b45('0x2e')]['hasOwnProperty'](_0x2b45('0x36'))){_0x13cd12[_0x2b45('0x1b')]=qs[_0x2b45('0x1b')](_0x451a7e[_0x2b45('0x2e')][_0x2b45('0x1b')]);_0x13cd12[_0x2b45('0x19')]=qs[_0x2b45('0x19')](_0x451a7e[_0x2b45('0x2e')]['offset']);}return _0x407dba[_0x2b45('0x48')](_0x13cd12);}})[_0x2b45('0x20')](function(_0x178104){if(_0x178104){return _0x178104?{'count':_0x44c752,'rows':_0x178104}:null;}})[_0x2b45('0x20')](respondWithResult(_0x95e5b,null))[_0x2b45('0x42')](handleError(_0x95e5b,null));};exports[_0x2b45('0x4a')]=function(_0x1cb276,_0x14b6b8,_0x4fe4f9){if(_0x1cb276[_0x2b45('0x47')]['id']){delete _0x1cb276[_0x2b45('0x47')]['id'];}return db[_0x2b45('0x28')][_0x2b45('0x4b')]({'where':{'id':_0x1cb276[_0x2b45('0x44')]['id']}})[_0x2b45('0x20')](handleEntityNotFound(_0x14b6b8,null))[_0x2b45('0x20')](function(_0x2893b9){if(_0x2893b9){_0x1cb276['body'][_0x2b45('0x4c')]=_0x2893b9['id'];_0x1cb276['body'][_0x2b45('0x4d')]=integrations[_0x2b45('0x4e')](_0x1cb276[_0x2b45('0x47')][_0x2b45('0x4f')],_0x1cb276[_0x2b45('0x47')][_0x2b45('0x2b')]);_0x1cb276[_0x2b45('0x47')][_0x2b45('0x50')]=integrations[_0x2b45('0x51')](_0x1cb276['body']['channel'],_0x1cb276[_0x2b45('0x47')][_0x2b45('0x2b')]);return db[_0x2b45('0x49')][_0x2b45('0x46')](_0x1cb276[_0x2b45('0x47')],{'include':[{'model':db[_0x2b45('0x52')],'as':_0x2b45('0x4d')},{'model':db[_0x2b45('0x52')],'as':_0x2b45('0x50')}]});}return null;})[_0x2b45('0x20')](respondWithResult(_0x14b6b8,null))['catch'](handleError(_0x14b6b8,null));};exports[_0x2b45('0x53')]=function(_0x48db03,_0x190bf5,_0x36fda5){var _0x518f04='';var _0x3fad71=['id','name','assigned_user_id',_0x2b45('0x54'),_0x2b45('0x55'),_0x2b45('0x56'),'duration_hours','duration_minutes',_0x2b45('0x57'),_0x2b45('0x58'),_0x2b45('0x59'),_0x2b45('0x5a')];return db[_0x2b45('0x28')]['findOne']({'where':{'id':_0x48db03[_0x2b45('0x44')]['id']},'attributes':['id',_0x2b45('0x5b'),_0x2b45('0x5c'),_0x2b45('0x5d')]})[_0x2b45('0x20')](handleEntityNotFound(_0x190bf5,null))[_0x2b45('0x20')](function(_0x385022){if(_0x385022){_0x518f04=_0x385022[_0x2b45('0x5d')];var _0x54757c=_0x518f04['slice'](-0x1);if(_0x54757c==='/'){_0x518f04=_0x518f04[_0x2b45('0x5e')](0x0,_0x518f04[_0x2b45('0x5f')](_0x54757c));}return rp({'method':_0x2b45('0x60'),'uri':util[_0x2b45('0x61')](_0x2b45('0x62'),_0x518f04,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x2b45('0x63'),'input_type':_0x2b45('0x64'),'response_type':_0x2b45('0x64'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x385022['username'],'password':_0x385022[_0x2b45('0x5c')],'encryption':'PLAIN'},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x2b45('0x20')](function(_0x493e12){if(_0x493e12&&_0x493e12[_0x2b45('0x24')]!=='Invalid\x20Login'&&_0x493e12[_0x2b45('0x24')]!==_0x2b45('0x65')){return rp({'method':_0x2b45('0x60'),'uri':util[_0x2b45('0x61')](_0x2b45('0x62'),_0x518f04,_0x2b45('0x66')),'json':!![],'form':{'method':_0x2b45('0x67'),'input_type':_0x2b45('0x64'),'response_type':_0x2b45('0x64'),'rest_data':JSON['stringify']({'session':_0x493e12['id'],'module_name':'Calls'})}})[_0x2b45('0x20')](function(_0x25f39c){if(_0x25f39c){var _0x1a014c=_['values'](_0x25f39c[_0x2b45('0x68')]);_[_0x2b45('0x69')](_0x1a014c,function(_0x1a79ab){return _0x3fad71['includes'](_0x1a79ab[_0x2b45('0x24')]);});return{'count':_0x1a014c[_0x2b45('0x34')],'rows':_[_0x2b45('0x27')](_0x1a014c,function(_0x35117d){return{'id':_0x35117d[_0x2b45('0x24')],'name':_0x35117d['label'],'custom':_[_0x2b45('0x6a')](_0x35117d[_0x2b45('0x24')],'_c')?!![]:![],'options':_0x35117d[_0x2b45('0x3e')]?_[_0x2b45('0x27')](_[_0x2b45('0x6b')](_0x35117d['options']),function(_0x3b578f){return{'name':_0x3b578f['value'],'value':_0x3b578f['name']};}):[]};})};}})[_0x2b45('0x20')](respondWithResult(_0x190bf5,null))[_0x2b45('0x42')](function(_0x58f7b9){var _0x581044=_0x48db03[_0x2b45('0x2e')][_0x2b45('0x6c')]?0x1f4:_0x58f7b9[_0x2b45('0x6d')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x2b45('0x53'),_0x581044,JSON[_0x2b45('0x6e')](_0x58f7b9));delete _0x58f7b9[_0x2b45('0x24')];if(_0x581044===0x191){_0x581044=0x190;}_0x190bf5[_0x2b45('0x17')](_0x581044)[_0x2b45('0x25')](_0x48db03[_0x2b45('0x2e')][_0x2b45('0x6c')]?{'message':_0x2b45('0x6f'),'statusCode':_0x58f7b9[_0x2b45('0x6d')]}:_0x58f7b9);});}else{var _0x38f490=0x1f4;_0x190bf5[_0x2b45('0x17')](_0x38f490)[_0x2b45('0x25')]({'message':_0x2b45('0x6f'),'statusCode':0x190});}});};