Built motion from commit 994c64e1.|2.6.1
[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 _0xa938=['Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','limit','count','offset','Content-Range','apply','reject','then','destroy','error','stack','name','index','map','SugarcrmAccount','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','catch','show','params','find','create','update','body','findOne','SugarcrmConfiguration','getConfigurations','hasOwnProperty','addConfiguration','Descriptions','getDescriptions','channel','SugarcrmField','Subjects','getFields','assigned_user_id','created_by','description','parent_id','parent_name','direction','password','remoteUri','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','JSON','stringify','username','PLAIN','Password\x20Expired','get_module_fields','Calls','values','module_fields','includes','label','endsWith','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send'];(function(_0x53ab1b,_0x52355b){var _0x5d2916=function(_0x30613a){while(--_0x30613a){_0x53ab1b['push'](_0x53ab1b['shift']());}};_0x5d2916(++_0x52355b);}(_0xa938,0x1cd));var _0x8a93=function(_0xd355f1,_0x8d9dd0){_0xd355f1=_0xd355f1-0x0;var _0x3047d5=_0xa938[_0xd355f1];return _0x3047d5;};'use strict';var emlformat=require(_0x8a93('0x0'));var rimraf=require(_0x8a93('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8a93('0x2'));var rp=require(_0x8a93('0x3'));var moment=require(_0x8a93('0x4'));var BPromise=require(_0x8a93('0x5'));var Mustache=require(_0x8a93('0x6'));var util=require(_0x8a93('0x7'));var path=require(_0x8a93('0x8'));var sox=require('sox');var csv=require(_0x8a93('0x9'));var ejs=require(_0x8a93('0xa'));var fs=require('fs');var fs_extra=require(_0x8a93('0xb'));var _=require(_0x8a93('0xc'));var squel=require(_0x8a93('0xd'));var crypto=require(_0x8a93('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x8a93('0xf'));var toCsv=require(_0x8a93('0x9'));var querystring=require(_0x8a93('0x10'));var Papa=require(_0x8a93('0x11'));var Redis=require(_0x8a93('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x8a93('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8a93('0x14'));var logger=require('../../config/logger')(_0x8a93('0x15'));var utils=require(_0x8a93('0x16'));var config=require(_0x8a93('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x8a93('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x290cf7,_0x5227c3){_0x5227c3=_0x5227c3||0xcc;return function(_0x484d14){if(_0x484d14){return _0x290cf7[_0x8a93('0x19')](_0x5227c3);}return _0x290cf7[_0x8a93('0x1a')](_0x5227c3)[_0x8a93('0x1b')]();};}function respondWithResult(_0x46b16b,_0x620c5f){_0x620c5f=_0x620c5f||0xc8;return function(_0x488a83){if(_0x488a83){return _0x46b16b[_0x8a93('0x1a')](_0x620c5f)[_0x8a93('0x1c')](_0x488a83);}};}function respondWithFilteredResult(_0x9022a7,_0xefd159){return function(_0x4f624b){if(_0x4f624b){var _0x18b9a6=typeof _0xefd159['offset']==='undefined'&&typeof _0xefd159[_0x8a93('0x1d')]==='undefined';var _0x5e734b=_0x4f624b[_0x8a93('0x1e')];var _0x294683=_0x18b9a6?0x0:_0xefd159[_0x8a93('0x1f')];var _0x523b01=_0x18b9a6?_0x4f624b[_0x8a93('0x1e')]:_0xefd159[_0x8a93('0x1f')]+_0xefd159[_0x8a93('0x1d')];var _0x489679;if(_0x523b01>=_0x5e734b){_0x523b01=_0x5e734b;_0x489679=0xc8;}else{_0x489679=0xce;}_0x9022a7[_0x8a93('0x1a')](_0x489679);return _0x9022a7['set'](_0x8a93('0x20'),_0x294683+'-'+_0x523b01+'/'+_0x5e734b)[_0x8a93('0x1c')](_0x4f624b);}return null;};}function patchUpdates(_0x4fb060){return function(_0x215ec9){try{jsonpatch[_0x8a93('0x21')](_0x215ec9,_0x4fb060,!![]);}catch(_0x9e23e9){return BPromise[_0x8a93('0x22')](_0x9e23e9);}return _0x215ec9['save']();};}function saveUpdates(_0x111efd,_0x3d2b88){return function(_0x260c3d){if(_0x260c3d){return _0x260c3d['update'](_0x111efd)[_0x8a93('0x23')](function(_0x31ffc5){return _0x31ffc5;});}return null;};}function removeEntity(_0x562d19,_0x145b6f){return function(_0x4bb70a){if(_0x4bb70a){return _0x4bb70a[_0x8a93('0x24')]()[_0x8a93('0x23')](function(){_0x562d19[_0x8a93('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x114562,_0x1659ce){return function(_0x1ba3b4){if(!_0x1ba3b4){_0x114562['sendStatus'](0x194);}return _0x1ba3b4;};}function handleError(_0x5dfb2a,_0x33da01){_0x33da01=_0x33da01||0x1f4;return function(_0x758544){logger[_0x8a93('0x25')](_0x758544[_0x8a93('0x26')]);if(_0x758544[_0x8a93('0x27')]){delete _0x758544[_0x8a93('0x27')];}_0x5dfb2a['status'](_0x33da01)['send'](_0x758544);};}exports[_0x8a93('0x28')]=function(_0x253c5e,_0x1301f5){var _0x5b7623={},_0x3dd484={},_0x130170={'count':0x0,'rows':[]};var _0xa7b1bd=_[_0x8a93('0x29')](db[_0x8a93('0x2a')][_0x8a93('0x2b')],function(_0x1d4266){return{'name':_0x1d4266['fieldName'],'type':_0x1d4266[_0x8a93('0x2c')][_0x8a93('0x2d')]};});_0x3dd484['model']=_[_0x8a93('0x29')](_0xa7b1bd,_0x8a93('0x27'));_0x3dd484[_0x8a93('0x2e')]=_[_0x8a93('0x2f')](_0x253c5e[_0x8a93('0x2e')]);_0x3dd484[_0x8a93('0x30')]=_[_0x8a93('0x31')](_0x3dd484[_0x8a93('0x32')],_0x3dd484[_0x8a93('0x2e')]);_0x5b7623[_0x8a93('0x33')]=_[_0x8a93('0x31')](_0x3dd484['model'],qs[_0x8a93('0x34')](_0x253c5e[_0x8a93('0x2e')][_0x8a93('0x34')]));_0x5b7623['attributes']=_0x5b7623[_0x8a93('0x33')][_0x8a93('0x35')]?_0x5b7623[_0x8a93('0x33')]:_0x3dd484[_0x8a93('0x32')];if(!_0x253c5e[_0x8a93('0x2e')]['hasOwnProperty'](_0x8a93('0x36'))){_0x5b7623['limit']=qs[_0x8a93('0x1d')](_0x253c5e[_0x8a93('0x2e')]['limit']);_0x5b7623[_0x8a93('0x1f')]=qs[_0x8a93('0x1f')](_0x253c5e[_0x8a93('0x2e')][_0x8a93('0x1f')]);}_0x5b7623[_0x8a93('0x37')]=qs[_0x8a93('0x38')](_0x253c5e[_0x8a93('0x2e')]['sort']);_0x5b7623[_0x8a93('0x39')]=qs['filters'](_[_0x8a93('0x3a')](_0x253c5e[_0x8a93('0x2e')],_0x3dd484[_0x8a93('0x30')]),_0xa7b1bd);if(_0x253c5e[_0x8a93('0x2e')][_0x8a93('0x3b')]){_0x5b7623['where']=_[_0x8a93('0x3c')](_0x5b7623[_0x8a93('0x39')],{'$or':_[_0x8a93('0x29')](_0xa7b1bd,function(_0x9b4d2e){if(_0x9b4d2e['type']!==_0x8a93('0x3d')){var _0x5b08c2={};_0x5b08c2[_0x9b4d2e['name']]={'$like':'%'+_0x253c5e[_0x8a93('0x2e')][_0x8a93('0x3b')]+'%'};return _0x5b08c2;}})});}_0x5b7623=_[_0x8a93('0x3c')]({},_0x5b7623,_0x253c5e[_0x8a93('0x3e')]);var _0x456df1={'where':_0x5b7623['where']};return db['SugarcrmAccount'][_0x8a93('0x1e')](_0x456df1)['then'](function(_0x5db913){_0x130170[_0x8a93('0x1e')]=_0x5db913;if(_0x253c5e[_0x8a93('0x2e')]['includeAll']){_0x5b7623[_0x8a93('0x3f')]=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x5b7623);})['then'](function(_0x2789d4){_0x130170[_0x8a93('0x40')]=_0x2789d4;return _0x130170;})[_0x8a93('0x23')](respondWithFilteredResult(_0x1301f5,_0x5b7623))[_0x8a93('0x41')](handleError(_0x1301f5,null));};exports[_0x8a93('0x42')]=function(_0x5c7d52,_0x168dac){var _0x24f55b={'raw':![],'where':{'id':_0x5c7d52[_0x8a93('0x43')]['id']}},_0x1d29e6={};_0x1d29e6[_0x8a93('0x32')]=_[_0x8a93('0x2f')](db[_0x8a93('0x2a')][_0x8a93('0x2b')]);_0x1d29e6[_0x8a93('0x2e')]=_[_0x8a93('0x2f')](_0x5c7d52['query']);_0x1d29e6[_0x8a93('0x30')]=_['intersection'](_0x1d29e6['model'],_0x1d29e6['query']);_0x24f55b[_0x8a93('0x33')]=_[_0x8a93('0x31')](_0x1d29e6[_0x8a93('0x32')],qs[_0x8a93('0x34')](_0x5c7d52['query']['fields']));_0x24f55b[_0x8a93('0x33')]=_0x24f55b[_0x8a93('0x33')][_0x8a93('0x35')]?_0x24f55b[_0x8a93('0x33')]:_0x1d29e6['model'];if(_0x5c7d52[_0x8a93('0x2e')]['includeAll']){_0x24f55b[_0x8a93('0x3f')]=[{'all':!![]}];}_0x24f55b=_[_0x8a93('0x3c')]({},_0x24f55b,_0x5c7d52['options']);return db[_0x8a93('0x2a')][_0x8a93('0x44')](_0x24f55b)[_0x8a93('0x23')](handleEntityNotFound(_0x168dac,null))[_0x8a93('0x23')](respondWithResult(_0x168dac,null))['catch'](handleError(_0x168dac,null));};exports[_0x8a93('0x45')]=function(_0x35d705,_0x185c73){return db[_0x8a93('0x2a')][_0x8a93('0x45')](_0x35d705['body'],{})[_0x8a93('0x23')](respondWithResult(_0x185c73,0xc9))[_0x8a93('0x41')](handleError(_0x185c73,null));};exports[_0x8a93('0x46')]=function(_0x45b85f,_0x2f8dab){if(_0x45b85f[_0x8a93('0x47')]['id']){delete _0x45b85f['body']['id'];}return db[_0x8a93('0x2a')][_0x8a93('0x44')]({'where':{'id':_0x45b85f['params']['id']}})[_0x8a93('0x23')](handleEntityNotFound(_0x2f8dab,null))[_0x8a93('0x23')](saveUpdates(_0x45b85f['body'],null))[_0x8a93('0x23')](respondWithResult(_0x2f8dab,null))[_0x8a93('0x41')](handleError(_0x2f8dab,null));};exports[_0x8a93('0x24')]=function(_0x41a198,_0x209e14){return db['SugarcrmAccount'][_0x8a93('0x44')]({'where':{'id':_0x41a198[_0x8a93('0x43')]['id']}})[_0x8a93('0x23')](handleEntityNotFound(_0x209e14,null))[_0x8a93('0x23')](removeEntity(_0x209e14,null))[_0x8a93('0x41')](handleError(_0x209e14,null));};exports['getConfigurations']=function(_0x4dfd5c,_0x44b6d6,_0x5b5876){var _0x3f93e8={};var _0x28451c={};var _0x57c40b;var _0xb749a0;return db['SugarcrmAccount'][_0x8a93('0x48')]({'where':{'id':_0x4dfd5c[_0x8a93('0x43')]['id']}})[_0x8a93('0x23')](handleEntityNotFound(_0x44b6d6,null))[_0x8a93('0x23')](function(_0x1f5f0c){if(_0x1f5f0c){_0x57c40b=_0x1f5f0c;_0x28451c['model']=_['keys'](db[_0x8a93('0x49')]['rawAttributes']);_0x28451c[_0x8a93('0x2e')]=_[_0x8a93('0x2f')](_0x4dfd5c['query']);_0x28451c[_0x8a93('0x30')]=_[_0x8a93('0x31')](_0x28451c[_0x8a93('0x32')],_0x28451c[_0x8a93('0x2e')]);_0x3f93e8['attributes']=_[_0x8a93('0x31')](_0x28451c[_0x8a93('0x32')],qs[_0x8a93('0x34')](_0x4dfd5c[_0x8a93('0x2e')][_0x8a93('0x34')]));_0x3f93e8[_0x8a93('0x33')]=_0x3f93e8[_0x8a93('0x33')][_0x8a93('0x35')]?_0x3f93e8[_0x8a93('0x33')]:_0x28451c['model'];_0x3f93e8[_0x8a93('0x37')]=qs[_0x8a93('0x38')](_0x4dfd5c[_0x8a93('0x2e')][_0x8a93('0x38')]);_0x3f93e8[_0x8a93('0x39')]=qs[_0x8a93('0x30')](_[_0x8a93('0x3a')](_0x4dfd5c[_0x8a93('0x2e')],_0x28451c[_0x8a93('0x30')]));if(_0x4dfd5c[_0x8a93('0x2e')][_0x8a93('0x3b')]){_0x3f93e8[_0x8a93('0x39')]=_[_0x8a93('0x3c')](_0x3f93e8[_0x8a93('0x39')],{'$or':_[_0x8a93('0x29')](_0x3f93e8['attributes'],function(_0x19a33a){var _0x2b5465={};_0x2b5465[_0x19a33a]={'$like':'%'+_0x4dfd5c['query']['filter']+'%'};return _0x2b5465;})});}_0x3f93e8=_[_0x8a93('0x3c')]({},_0x3f93e8,_0x4dfd5c[_0x8a93('0x3e')]);return _0x57c40b[_0x8a93('0x4a')](_0x3f93e8);}})['then'](function(_0x5542f6){if(_0x5542f6){_0xb749a0=_0x5542f6[_0x8a93('0x35')];if(!_0x4dfd5c[_0x8a93('0x2e')][_0x8a93('0x4b')](_0x8a93('0x36'))){_0x3f93e8[_0x8a93('0x1d')]=qs['limit'](_0x4dfd5c[_0x8a93('0x2e')]['limit']);_0x3f93e8[_0x8a93('0x1f')]=qs[_0x8a93('0x1f')](_0x4dfd5c[_0x8a93('0x2e')]['offset']);}return _0x57c40b[_0x8a93('0x4a')](_0x3f93e8);}})[_0x8a93('0x23')](function(_0xec3bbc){if(_0xec3bbc){return _0xec3bbc?{'count':_0xb749a0,'rows':_0xec3bbc}:null;}})['then'](respondWithResult(_0x44b6d6,null))[_0x8a93('0x41')](handleError(_0x44b6d6,null));};exports[_0x8a93('0x4c')]=function(_0x17ab32,_0x377200,_0x4e9e0f){if(_0x17ab32[_0x8a93('0x47')]['id']){delete _0x17ab32[_0x8a93('0x47')]['id'];}return db[_0x8a93('0x2a')][_0x8a93('0x48')]({'where':{'id':_0x17ab32['params']['id']}})[_0x8a93('0x23')](handleEntityNotFound(_0x377200,null))[_0x8a93('0x23')](function(_0x3e797e){if(_0x3e797e){_0x17ab32[_0x8a93('0x47')]['AccountId']=_0x3e797e['id'];_0x17ab32[_0x8a93('0x47')]['Subjects']=integrations['getSubjects'](_0x17ab32[_0x8a93('0x47')]['channel'],_0x17ab32[_0x8a93('0x47')][_0x8a93('0x2c')]);_0x17ab32[_0x8a93('0x47')][_0x8a93('0x4d')]=integrations[_0x8a93('0x4e')](_0x17ab32[_0x8a93('0x47')][_0x8a93('0x4f')],_0x17ab32[_0x8a93('0x47')][_0x8a93('0x2c')]);return db[_0x8a93('0x49')][_0x8a93('0x45')](_0x17ab32['body'],{'include':[{'model':db[_0x8a93('0x50')],'as':_0x8a93('0x51')},{'model':db[_0x8a93('0x50')],'as':_0x8a93('0x4d')}]});}return null;})[_0x8a93('0x23')](respondWithResult(_0x377200,null))[_0x8a93('0x41')](handleError(_0x377200,null));};exports[_0x8a93('0x52')]=function(_0x2cb220,_0x2b58da,_0x43932c){var _0x266a0f='';var _0x30ccdf=['id','name',_0x8a93('0x53'),_0x8a93('0x54'),_0x8a93('0x55'),'date_start','duration_hours','duration_minutes',_0x8a93('0x56'),'parent_type',_0x8a93('0x57'),_0x8a93('0x58')];return db['SugarcrmAccount']['findOne']({'where':{'id':_0x2cb220[_0x8a93('0x43')]['id']},'attributes':['id','username',_0x8a93('0x59'),_0x8a93('0x5a')]})[_0x8a93('0x23')](handleEntityNotFound(_0x2b58da,null))[_0x8a93('0x23')](function(_0x292522){if(_0x292522){_0x266a0f=_0x292522[_0x8a93('0x5a')];var _0x3400c8=_0x266a0f['slice'](-0x1);if(_0x3400c8==='/'){_0x266a0f=_0x266a0f[_0x8a93('0x5b')](0x0,_0x266a0f[_0x8a93('0x5c')](_0x3400c8));}return rp({'method':_0x8a93('0x5d'),'uri':util[_0x8a93('0x5e')](_0x8a93('0x5f'),_0x266a0f,_0x8a93('0x60')),'json':!![],'form':{'method':'login','input_type':_0x8a93('0x61'),'response_type':_0x8a93('0x61'),'rest_data':JSON[_0x8a93('0x62')]({'user_auth':{'user_name':_0x292522[_0x8a93('0x63')],'password':_0x292522[_0x8a93('0x59')],'encryption':_0x8a93('0x64')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x8a93('0x23')](function(_0x2de52d){if(_0x2de52d&&_0x2de52d[_0x8a93('0x27')]!=='Invalid\x20Login'&&_0x2de52d[_0x8a93('0x27')]!==_0x8a93('0x65')){return rp({'method':'POST','uri':util[_0x8a93('0x5e')](_0x8a93('0x5f'),_0x266a0f,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x8a93('0x66'),'input_type':_0x8a93('0x61'),'response_type':_0x8a93('0x61'),'rest_data':JSON[_0x8a93('0x62')]({'session':_0x2de52d['id'],'module_name':_0x8a93('0x67')})}})[_0x8a93('0x23')](function(_0x1ab384){if(_0x1ab384){var _0x5b4974=_[_0x8a93('0x68')](_0x1ab384[_0x8a93('0x69')]);_['remove'](_0x5b4974,function(_0x470efb){return _0x30ccdf[_0x8a93('0x6a')](_0x470efb[_0x8a93('0x27')]);});return{'count':_0x5b4974[_0x8a93('0x35')],'rows':_[_0x8a93('0x29')](_0x5b4974,function(_0x38bceb){return{'id':_0x38bceb['name'],'name':_0x38bceb[_0x8a93('0x6b')],'custom':_[_0x8a93('0x6c')](_0x38bceb['name'],'_c')?!![]:![],'options':_0x38bceb[_0x8a93('0x3e')]?_['map'](_[_0x8a93('0x68')](_0x38bceb[_0x8a93('0x3e')]),function(_0x2f77d8){return{'name':_0x2f77d8[_0x8a93('0x6d')],'value':_0x2f77d8[_0x8a93('0x27')]};}):[]};})};}})['then'](respondWithResult(_0x2b58da,null))[_0x8a93('0x41')](function(_0x45045a){var _0x35be79=_0x2cb220[_0x8a93('0x2e')][_0x8a93('0x6e')]?0x1f4:_0x45045a[_0x8a93('0x6f')]||0x1f4;logger['error'](_0x8a93('0x70'),'getFields',_0x35be79,JSON[_0x8a93('0x62')](_0x45045a));delete _0x45045a[_0x8a93('0x27')];if(_0x35be79===0x191){_0x35be79=0x190;}_0x2b58da[_0x8a93('0x1a')](_0x35be79)[_0x8a93('0x71')](_0x2cb220[_0x8a93('0x2e')][_0x8a93('0x6e')]?{'message':_0x8a93('0x72'),'statusCode':_0x45045a[_0x8a93('0x6f')]}:_0x45045a);});}else{var _0x26ad63=0x1f4;_0x2b58da[_0x8a93('0x1a')](_0x26ad63)[_0x8a93('0x71')]({'message':_0x8a93('0x72'),'statusCode':0x190});}});};