Built motion from commit 9d1906d1.|2.5.40
[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 _0x62d3=['offset','set','apply','reject','save','update','then','end','sendStatus','stack','name','send','index','SugarcrmAccount','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','includeAll','include','rows','catch','show','params','find','create','body','destroy','getConfigurations','pick','options','findOne','Subjects','channel','Descriptions','SugarcrmConfiguration','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','parent_id','parent_type','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST','%s%s','/service/v4_1/rest.php','login','JSON','PLAIN','xCALLY\x20Motion\x20Integration','Password\x20Expired','format','stringify','Calls','module_fields','remove','includes','label','endsWith','values','value','error','getFields,\x20%s,\x20%s,\x20%s','test','statusCode','Wrong\x20credentials','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','json','undefined','limit','count'];(function(_0x13ec85,_0x2bf289){var _0xa15f6c=function(_0x4a41fb){while(--_0x4a41fb){_0x13ec85['push'](_0x13ec85['shift']());}};_0xa15f6c(++_0x2bf289);}(_0x62d3,0xd0));var _0x362d=function(_0x107392,_0x262906){_0x107392=_0x107392-0x0;var _0xcb423b=_0x62d3[_0x107392];return _0xcb423b;};'use strict';var emlformat=require(_0x362d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x362d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x362d('0x2'));var moment=require('moment');var BPromise=require(_0x362d('0x3'));var Mustache=require(_0x362d('0x4'));var util=require(_0x362d('0x5'));var path=require(_0x362d('0x6'));var sox=require(_0x362d('0x7'));var csv=require(_0x362d('0x8'));var ejs=require(_0x362d('0x9'));var fs=require('fs');var fs_extra=require(_0x362d('0xa'));var _=require('lodash');var squel=require(_0x362d('0xb'));var crypto=require(_0x362d('0xc'));var jsforce=require(_0x362d('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x362d('0x8'));var querystring=require(_0x362d('0xe'));var Papa=require(_0x362d('0xf'));var Redis=require(_0x362d('0x10'));var authService=require(_0x362d('0x11'));var qs=require(_0x362d('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x362d('0x13'));var utils=require('../../config/utils');var config=require(_0x362d('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x362d('0x15'))['db'];var integrations=require(_0x362d('0x16'));function respondWithStatusCode(_0x1c2090,_0x55e9e7){_0x55e9e7=_0x55e9e7||0xcc;return function(_0x133277){if(_0x133277){return _0x1c2090['sendStatus'](_0x55e9e7);}return _0x1c2090[_0x362d('0x17')](_0x55e9e7)['end']();};}function respondWithResult(_0x134be6,_0x589bd1){_0x589bd1=_0x589bd1||0xc8;return function(_0x1e1efb){if(_0x1e1efb){return _0x134be6[_0x362d('0x17')](_0x589bd1)[_0x362d('0x18')](_0x1e1efb);}};}function respondWithFilteredResult(_0x576b53,_0x1ba41d){return function(_0x2780d4){if(_0x2780d4){var _0x497640=typeof _0x1ba41d['offset']===_0x362d('0x19')&&typeof _0x1ba41d[_0x362d('0x1a')]===_0x362d('0x19');var _0x5b84f6=_0x2780d4[_0x362d('0x1b')];var _0x474a54=_0x497640?0x0:_0x1ba41d[_0x362d('0x1c')];var _0x362f09=_0x497640?_0x2780d4['count']:_0x1ba41d[_0x362d('0x1c')]+_0x1ba41d[_0x362d('0x1a')];var _0x331c5c;if(_0x362f09>=_0x5b84f6){_0x362f09=_0x5b84f6;_0x331c5c=0xc8;}else{_0x331c5c=0xce;}_0x576b53['status'](_0x331c5c);return _0x576b53[_0x362d('0x1d')]('Content-Range',_0x474a54+'-'+_0x362f09+'/'+_0x5b84f6)['json'](_0x2780d4);}return null;};}function patchUpdates(_0x1e4ca6){return function(_0x1f25f8){try{jsonpatch[_0x362d('0x1e')](_0x1f25f8,_0x1e4ca6,!![]);}catch(_0x1ca352){return BPromise[_0x362d('0x1f')](_0x1ca352);}return _0x1f25f8[_0x362d('0x20')]();};}function saveUpdates(_0xb0d696,_0x4b0b53){return function(_0xd26e8f){if(_0xd26e8f){return _0xd26e8f[_0x362d('0x21')](_0xb0d696)[_0x362d('0x22')](function(_0x39b1d){return _0x39b1d;});}return null;};}function removeEntity(_0xec58cb,_0x1c89c2){return function(_0x580ae0){if(_0x580ae0){return _0x580ae0['destroy']()[_0x362d('0x22')](function(){_0xec58cb['status'](0xcc)[_0x362d('0x23')]();});}};}function handleEntityNotFound(_0x34b3b8,_0xd54b33){return function(_0x46523a){if(!_0x46523a){_0x34b3b8[_0x362d('0x24')](0x194);}return _0x46523a;};}function handleError(_0x5988d1,_0x2c1ee4){_0x2c1ee4=_0x2c1ee4||0x1f4;return function(_0x400893){logger['error'](_0x400893[_0x362d('0x25')]);if(_0x400893[_0x362d('0x26')]){delete _0x400893[_0x362d('0x26')];}_0x5988d1[_0x362d('0x17')](_0x2c1ee4)[_0x362d('0x27')](_0x400893);};}exports[_0x362d('0x28')]=function(_0x3d3dce,_0x85c7c0){var _0x4b8b64={},_0xca75fc={},_0x2d6ae4={'count':0x0,'rows':[]};var _0x3fdcb3=_['map'](db[_0x362d('0x29')][_0x362d('0x2a')],function(_0x4f2a48){return{'name':_0x4f2a48[_0x362d('0x2b')],'type':_0x4f2a48[_0x362d('0x2c')][_0x362d('0x2d')]};});_0xca75fc[_0x362d('0x2e')]=_[_0x362d('0x2f')](_0x3fdcb3,_0x362d('0x26'));_0xca75fc['query']=_[_0x362d('0x30')](_0x3d3dce[_0x362d('0x31')]);_0xca75fc[_0x362d('0x32')]=_[_0x362d('0x33')](_0xca75fc[_0x362d('0x2e')],_0xca75fc[_0x362d('0x31')]);_0x4b8b64[_0x362d('0x34')]=_[_0x362d('0x33')](_0xca75fc[_0x362d('0x2e')],qs[_0x362d('0x35')](_0x3d3dce['query'][_0x362d('0x35')]));_0x4b8b64[_0x362d('0x34')]=_0x4b8b64[_0x362d('0x34')][_0x362d('0x36')]?_0x4b8b64['attributes']:_0xca75fc[_0x362d('0x2e')];if(!_0x3d3dce[_0x362d('0x31')]['hasOwnProperty'](_0x362d('0x37'))){_0x4b8b64[_0x362d('0x1a')]=qs[_0x362d('0x1a')](_0x3d3dce[_0x362d('0x31')][_0x362d('0x1a')]);_0x4b8b64[_0x362d('0x1c')]=qs[_0x362d('0x1c')](_0x3d3dce[_0x362d('0x31')]['offset']);}_0x4b8b64[_0x362d('0x38')]=qs[_0x362d('0x39')](_0x3d3dce[_0x362d('0x31')]['sort']);_0x4b8b64[_0x362d('0x3a')]=qs[_0x362d('0x32')](_['pick'](_0x3d3dce['query'],_0xca75fc['filters']),_0x3fdcb3);if(_0x3d3dce[_0x362d('0x31')][_0x362d('0x3b')]){_0x4b8b64[_0x362d('0x3a')]=_[_0x362d('0x3c')](_0x4b8b64[_0x362d('0x3a')],{'$or':_[_0x362d('0x2f')](_0x3fdcb3,function(_0x2e2d79){if(_0x2e2d79[_0x362d('0x2c')]!=='VIRTUAL'){var _0x1fe99e={};_0x1fe99e[_0x2e2d79['name']]={'$like':'%'+_0x3d3dce[_0x362d('0x31')][_0x362d('0x3b')]+'%'};return _0x1fe99e;}})});}_0x4b8b64=_['merge']({},_0x4b8b64,_0x3d3dce['options']);var _0x17d2a3={'where':_0x4b8b64[_0x362d('0x3a')]};return db['SugarcrmAccount'][_0x362d('0x1b')](_0x17d2a3)[_0x362d('0x22')](function(_0x23d505){_0x2d6ae4[_0x362d('0x1b')]=_0x23d505;if(_0x3d3dce[_0x362d('0x31')][_0x362d('0x3d')]){_0x4b8b64[_0x362d('0x3e')]=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x4b8b64);})['then'](function(_0x502709){_0x2d6ae4[_0x362d('0x3f')]=_0x502709;return _0x2d6ae4;})['then'](respondWithFilteredResult(_0x85c7c0,_0x4b8b64))[_0x362d('0x40')](handleError(_0x85c7c0,null));};exports[_0x362d('0x41')]=function(_0x54ce69,_0x2df20b){var _0x45f426={'raw':![],'where':{'id':_0x54ce69[_0x362d('0x42')]['id']}},_0x4c67c7={};_0x4c67c7[_0x362d('0x2e')]=_[_0x362d('0x30')](db[_0x362d('0x29')][_0x362d('0x2a')]);_0x4c67c7[_0x362d('0x31')]=_['keys'](_0x54ce69[_0x362d('0x31')]);_0x4c67c7[_0x362d('0x32')]=_[_0x362d('0x33')](_0x4c67c7['model'],_0x4c67c7[_0x362d('0x31')]);_0x45f426[_0x362d('0x34')]=_[_0x362d('0x33')](_0x4c67c7[_0x362d('0x2e')],qs[_0x362d('0x35')](_0x54ce69['query'][_0x362d('0x35')]));_0x45f426[_0x362d('0x34')]=_0x45f426['attributes'][_0x362d('0x36')]?_0x45f426[_0x362d('0x34')]:_0x4c67c7['model'];if(_0x54ce69[_0x362d('0x31')]['includeAll']){_0x45f426[_0x362d('0x3e')]=[{'all':!![]}];}_0x45f426=_[_0x362d('0x3c')]({},_0x45f426,_0x54ce69['options']);return db[_0x362d('0x29')][_0x362d('0x43')](_0x45f426)[_0x362d('0x22')](handleEntityNotFound(_0x2df20b,null))[_0x362d('0x22')](respondWithResult(_0x2df20b,null))[_0x362d('0x40')](handleError(_0x2df20b,null));};exports[_0x362d('0x44')]=function(_0x5ee3bf,_0x5c0e2a){return db[_0x362d('0x29')][_0x362d('0x44')](_0x5ee3bf[_0x362d('0x45')],{})[_0x362d('0x22')](respondWithResult(_0x5c0e2a,0xc9))['catch'](handleError(_0x5c0e2a,null));};exports[_0x362d('0x21')]=function(_0x4b0687,_0x1b52ef){if(_0x4b0687[_0x362d('0x45')]['id']){delete _0x4b0687['body']['id'];}return db[_0x362d('0x29')][_0x362d('0x43')]({'where':{'id':_0x4b0687['params']['id']}})[_0x362d('0x22')](handleEntityNotFound(_0x1b52ef,null))[_0x362d('0x22')](saveUpdates(_0x4b0687[_0x362d('0x45')],null))[_0x362d('0x22')](respondWithResult(_0x1b52ef,null))[_0x362d('0x40')](handleError(_0x1b52ef,null));};exports[_0x362d('0x46')]=function(_0x51debb,_0x45bd0c){return db[_0x362d('0x29')][_0x362d('0x43')]({'where':{'id':_0x51debb[_0x362d('0x42')]['id']}})[_0x362d('0x22')](handleEntityNotFound(_0x45bd0c,null))[_0x362d('0x22')](removeEntity(_0x45bd0c,null))[_0x362d('0x40')](handleError(_0x45bd0c,null));};exports[_0x362d('0x47')]=function(_0x3da304,_0x418753,_0x5a899e){var _0x2a37e8={};var _0x46fb0={};var _0x5cb4f1;var _0xada1d9;return db[_0x362d('0x29')]['findOne']({'where':{'id':_0x3da304[_0x362d('0x42')]['id']}})[_0x362d('0x22')](handleEntityNotFound(_0x418753,null))['then'](function(_0x1dc5b1){if(_0x1dc5b1){_0x5cb4f1=_0x1dc5b1;_0x46fb0[_0x362d('0x2e')]=_[_0x362d('0x30')](db['SugarcrmConfiguration'][_0x362d('0x2a')]);_0x46fb0[_0x362d('0x31')]=_[_0x362d('0x30')](_0x3da304['query']);_0x46fb0[_0x362d('0x32')]=_[_0x362d('0x33')](_0x46fb0[_0x362d('0x2e')],_0x46fb0[_0x362d('0x31')]);_0x2a37e8[_0x362d('0x34')]=_[_0x362d('0x33')](_0x46fb0[_0x362d('0x2e')],qs[_0x362d('0x35')](_0x3da304[_0x362d('0x31')]['fields']));_0x2a37e8['attributes']=_0x2a37e8['attributes'][_0x362d('0x36')]?_0x2a37e8[_0x362d('0x34')]:_0x46fb0['model'];_0x2a37e8[_0x362d('0x38')]=qs['sort'](_0x3da304[_0x362d('0x31')]['sort']);_0x2a37e8[_0x362d('0x3a')]=qs[_0x362d('0x32')](_[_0x362d('0x48')](_0x3da304[_0x362d('0x31')],_0x46fb0[_0x362d('0x32')]));if(_0x3da304[_0x362d('0x31')][_0x362d('0x3b')]){_0x2a37e8[_0x362d('0x3a')]=_[_0x362d('0x3c')](_0x2a37e8[_0x362d('0x3a')],{'$or':_['map'](_0x2a37e8[_0x362d('0x34')],function(_0x451029){var _0x3f03d4={};_0x3f03d4[_0x451029]={'$like':'%'+_0x3da304[_0x362d('0x31')][_0x362d('0x3b')]+'%'};return _0x3f03d4;})});}_0x2a37e8=_[_0x362d('0x3c')]({},_0x2a37e8,_0x3da304[_0x362d('0x49')]);return _0x5cb4f1[_0x362d('0x47')](_0x2a37e8);}})[_0x362d('0x22')](function(_0x4b899b){if(_0x4b899b){_0xada1d9=_0x4b899b[_0x362d('0x36')];if(!_0x3da304[_0x362d('0x31')]['hasOwnProperty'](_0x362d('0x37'))){_0x2a37e8[_0x362d('0x1a')]=qs[_0x362d('0x1a')](_0x3da304[_0x362d('0x31')][_0x362d('0x1a')]);_0x2a37e8[_0x362d('0x1c')]=qs[_0x362d('0x1c')](_0x3da304['query'][_0x362d('0x1c')]);}return _0x5cb4f1[_0x362d('0x47')](_0x2a37e8);}})[_0x362d('0x22')](function(_0x5b00a4){if(_0x5b00a4){return _0x5b00a4?{'count':_0xada1d9,'rows':_0x5b00a4}:null;}})[_0x362d('0x22')](respondWithResult(_0x418753,null))[_0x362d('0x40')](handleError(_0x418753,null));};exports['addConfiguration']=function(_0x3991e4,_0x5c26f2,_0x30e559){if(_0x3991e4[_0x362d('0x45')]['id']){delete _0x3991e4['body']['id'];}return db[_0x362d('0x29')][_0x362d('0x4a')]({'where':{'id':_0x3991e4[_0x362d('0x42')]['id']}})[_0x362d('0x22')](handleEntityNotFound(_0x5c26f2,null))[_0x362d('0x22')](function(_0x3e516b){if(_0x3e516b){_0x3991e4[_0x362d('0x45')]['AccountId']=_0x3e516b['id'];_0x3991e4['body'][_0x362d('0x4b')]=integrations['getSubjects'](_0x3991e4['body'][_0x362d('0x4c')],_0x3991e4[_0x362d('0x45')][_0x362d('0x2c')]);_0x3991e4[_0x362d('0x45')][_0x362d('0x4d')]=integrations['getDescriptions'](_0x3991e4[_0x362d('0x45')][_0x362d('0x4c')],_0x3991e4[_0x362d('0x45')]['type']);return db[_0x362d('0x4e')][_0x362d('0x44')](_0x3991e4[_0x362d('0x45')],{'include':[{'model':db[_0x362d('0x4f')],'as':_0x362d('0x4b')},{'model':db[_0x362d('0x4f')],'as':'Descriptions'}]});}return null;})[_0x362d('0x22')](respondWithResult(_0x5c26f2,null))[_0x362d('0x40')](handleError(_0x5c26f2,null));};exports[_0x362d('0x50')]=function(_0x13ecac,_0x4b1ee8,_0x8ab460){var _0x2f3ec4='';var _0x2ff532=['id',_0x362d('0x26'),_0x362d('0x51'),_0x362d('0x52'),_0x362d('0x53'),_0x362d('0x54'),'duration_hours','duration_minutes',_0x362d('0x55'),_0x362d('0x56'),_0x362d('0x57'),_0x362d('0x58')];return db[_0x362d('0x29')]['findOne']({'where':{'id':_0x13ecac[_0x362d('0x42')]['id']},'attributes':['id',_0x362d('0x59'),_0x362d('0x5a'),_0x362d('0x5b')]})['then'](handleEntityNotFound(_0x4b1ee8,null))['then'](function(_0x5d3555){if(_0x5d3555){_0x2f3ec4=_0x5d3555['remoteUri'];var _0x4141d1=_0x2f3ec4[_0x362d('0x5c')](-0x1);if(_0x4141d1==='/'){_0x2f3ec4=_0x2f3ec4[_0x362d('0x5d')](0x0,_0x2f3ec4[_0x362d('0x5e')](_0x4141d1));}return rp({'method':_0x362d('0x5f'),'uri':util['format'](_0x362d('0x60'),_0x2f3ec4,_0x362d('0x61')),'json':!![],'form':{'method':_0x362d('0x62'),'input_type':_0x362d('0x63'),'response_type':_0x362d('0x63'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x5d3555['username'],'password':_0x5d3555['password'],'encryption':_0x362d('0x64')},'application':_0x362d('0x65')})}});}})[_0x362d('0x22')](function(_0x597ad5){if(_0x597ad5&&_0x597ad5[_0x362d('0x26')]!=='Invalid\x20Login'&&_0x597ad5['name']!==_0x362d('0x66')){return rp({'method':_0x362d('0x5f'),'uri':util[_0x362d('0x67')](_0x362d('0x60'),_0x2f3ec4,_0x362d('0x61')),'json':!![],'form':{'method':'get_module_fields','input_type':_0x362d('0x63'),'response_type':_0x362d('0x63'),'rest_data':JSON[_0x362d('0x68')]({'session':_0x597ad5['id'],'module_name':_0x362d('0x69')})}})[_0x362d('0x22')](function(_0x59249f){if(_0x59249f){var _0x8e8f05=_['values'](_0x59249f[_0x362d('0x6a')]);_[_0x362d('0x6b')](_0x8e8f05,function(_0x47e2f5){return _0x2ff532[_0x362d('0x6c')](_0x47e2f5[_0x362d('0x26')]);});return{'count':_0x8e8f05[_0x362d('0x36')],'rows':_[_0x362d('0x2f')](_0x8e8f05,function(_0x6cd9e6){return{'id':_0x6cd9e6[_0x362d('0x26')],'name':_0x6cd9e6[_0x362d('0x6d')],'custom':_[_0x362d('0x6e')](_0x6cd9e6[_0x362d('0x26')],'_c')?!![]:![],'options':_0x6cd9e6['options']?_[_0x362d('0x2f')](_[_0x362d('0x6f')](_0x6cd9e6[_0x362d('0x49')]),function(_0x5c000e){return{'name':_0x5c000e[_0x362d('0x70')],'value':_0x5c000e[_0x362d('0x26')]};}):[]};})};}})[_0x362d('0x22')](respondWithResult(_0x4b1ee8,null))[_0x362d('0x40')](function(_0x11fdba){var _0x2e8a98=_0x13ecac[_0x362d('0x31')]['test']?0x1f4:_0x11fdba['statusCode']||0x1f4;logger[_0x362d('0x71')](_0x362d('0x72'),_0x362d('0x50'),_0x2e8a98,JSON['stringify'](_0x11fdba));delete _0x11fdba[_0x362d('0x26')];if(_0x2e8a98===0x191){_0x2e8a98=0x190;}_0x4b1ee8['status'](_0x2e8a98)[_0x362d('0x27')](_0x13ecac[_0x362d('0x31')][_0x362d('0x73')]?{'message':'Wrong\x20credentials','statusCode':_0x11fdba[_0x362d('0x74')]}:_0x11fdba);});}else{var _0x6e2bd0=0x1f4;_0x4b1ee8[_0x362d('0x17')](_0x6e2bd0)[_0x362d('0x27')]({'message':_0x362d('0x75'),'statusCode':0x190});}});};