acb36eb3d59b3b99680bfa527dff0a29377c7ac0
[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 _0x3b6c=['order','sort','where','pick','merge','VIRTUAL','name','filter','options','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','update','body','getConfigurations','findOne','AccountId','Subjects','getSubjects','channel','getDescriptions','SugarcrmConfiguration','SugarcrmField','Descriptions','getFields','assigned_user_id','created_by','duration_hours','parent_id','parent_type','parent_name','direction','username','password','remoteUri','substring','lastIndexOf','POST','format','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Password\x20Expired','%s%s','values','module_fields','remove','label','endsWith','value','test','statusCode','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','offset','undefined','limit','count','set','Content-Range','save','then','destroy','end','error','stack','send','map','SugarcrmAccount','rawAttributes','type','key','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit'];(function(_0x579af1,_0x479d24){var _0x34b7b2=function(_0x1cb3b1){while(--_0x1cb3b1){_0x579af1['push'](_0x579af1['shift']());}};_0x34b7b2(++_0x479d24);}(_0x3b6c,0xb8));var _0xc3b6=function(_0x4fb2ad,_0x34c92f){_0x4fb2ad=_0x4fb2ad-0x0;var _0x1d92ff=_0x3b6c[_0x4fb2ad];return _0x1d92ff;};'use strict';var emlformat=require(_0xc3b6('0x0'));var rimraf=require(_0xc3b6('0x1'));var zipdir=require(_0xc3b6('0x2'));var jsonpatch=require(_0xc3b6('0x3'));var rp=require(_0xc3b6('0x4'));var moment=require('moment');var BPromise=require(_0xc3b6('0x5'));var Mustache=require(_0xc3b6('0x6'));var util=require(_0xc3b6('0x7'));var path=require(_0xc3b6('0x8'));var sox=require(_0xc3b6('0x9'));var csv=require(_0xc3b6('0xa'));var ejs=require(_0xc3b6('0xb'));var fs=require('fs');var fs_extra=require(_0xc3b6('0xc'));var _=require(_0xc3b6('0xd'));var squel=require('squel');var crypto=require(_0xc3b6('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xc3b6('0xa'));var querystring=require(_0xc3b6('0xf'));var Papa=require(_0xc3b6('0x10'));var Redis=require(_0xc3b6('0x11'));var authService=require(_0xc3b6('0x12'));var qs=require(_0xc3b6('0x13'));var as=require(_0xc3b6('0x14'));var hardwareService=require(_0xc3b6('0x15'));var logger=require(_0xc3b6('0x16'))(_0xc3b6('0x17'));var utils=require(_0xc3b6('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xc3b6('0x19'));var db=require(_0xc3b6('0x1a'))['db'];var integrations=require(_0xc3b6('0x1b'));function respondWithStatusCode(_0x5e1f28,_0x34f1f0){_0x34f1f0=_0x34f1f0||0xcc;return function(_0x4b0e7c){if(_0x4b0e7c){return _0x5e1f28['sendStatus'](_0x34f1f0);}return _0x5e1f28['status'](_0x34f1f0)['end']();};}function respondWithResult(_0x359e68,_0x11ae8f){_0x11ae8f=_0x11ae8f||0xc8;return function(_0x1f4f88){if(_0x1f4f88){return _0x359e68[_0xc3b6('0x1c')](_0x11ae8f)[_0xc3b6('0x1d')](_0x1f4f88);}};}function respondWithFilteredResult(_0x2e4888,_0x42f83b){return function(_0x151124){if(_0x151124){var _0x118a77=typeof _0x42f83b[_0xc3b6('0x1e')]===_0xc3b6('0x1f')&&typeof _0x42f83b[_0xc3b6('0x20')]===_0xc3b6('0x1f');var _0x427ad1=_0x151124[_0xc3b6('0x21')];var _0x23b4c0=_0x118a77?0x0:_0x42f83b[_0xc3b6('0x1e')];var _0x336497=_0x118a77?_0x151124['count']:_0x42f83b['offset']+_0x42f83b[_0xc3b6('0x20')];var _0x1d7f16;if(_0x336497>=_0x427ad1){_0x336497=_0x427ad1;_0x1d7f16=0xc8;}else{_0x1d7f16=0xce;}_0x2e4888[_0xc3b6('0x1c')](_0x1d7f16);return _0x2e4888[_0xc3b6('0x22')](_0xc3b6('0x23'),_0x23b4c0+'-'+_0x336497+'/'+_0x427ad1)['json'](_0x151124);}return null;};}function patchUpdates(_0x39e333){return function(_0x400652){try{jsonpatch['apply'](_0x400652,_0x39e333,!![]);}catch(_0x28491f){return BPromise['reject'](_0x28491f);}return _0x400652[_0xc3b6('0x24')]();};}function saveUpdates(_0x2f5bd2,_0x3e2815){return function(_0x5491b2){if(_0x5491b2){return _0x5491b2['update'](_0x2f5bd2)[_0xc3b6('0x25')](function(_0x2498b2){return _0x2498b2;});}return null;};}function removeEntity(_0x581437,_0x51d879){return function(_0x2862bf){if(_0x2862bf){return _0x2862bf[_0xc3b6('0x26')]()[_0xc3b6('0x25')](function(){_0x581437['status'](0xcc)[_0xc3b6('0x27')]();});}};}function handleEntityNotFound(_0xbb1957,_0x236f92){return function(_0x1cb11b){if(!_0x1cb11b){_0xbb1957['sendStatus'](0x194);}return _0x1cb11b;};}function handleError(_0x2d2ef8,_0x3f8097){_0x3f8097=_0x3f8097||0x1f4;return function(_0x2fac9e){logger[_0xc3b6('0x28')](_0x2fac9e[_0xc3b6('0x29')]);if(_0x2fac9e['name']){delete _0x2fac9e['name'];}_0x2d2ef8[_0xc3b6('0x1c')](_0x3f8097)[_0xc3b6('0x2a')](_0x2fac9e);};}exports['index']=function(_0x4f6dc4,_0x392ae4){var _0x1703d6={},_0x2afd86={},_0x136a4c={'count':0x0,'rows':[]};var _0x246c69=_[_0xc3b6('0x2b')](db[_0xc3b6('0x2c')][_0xc3b6('0x2d')],function(_0x8fd6de){return{'name':_0x8fd6de['fieldName'],'type':_0x8fd6de[_0xc3b6('0x2e')][_0xc3b6('0x2f')]};});_0x2afd86[_0xc3b6('0x30')]=_['map'](_0x246c69,'name');_0x2afd86[_0xc3b6('0x31')]=_['keys'](_0x4f6dc4[_0xc3b6('0x31')]);_0x2afd86[_0xc3b6('0x32')]=_['intersection'](_0x2afd86[_0xc3b6('0x30')],_0x2afd86[_0xc3b6('0x31')]);_0x1703d6[_0xc3b6('0x33')]=_[_0xc3b6('0x34')](_0x2afd86[_0xc3b6('0x30')],qs[_0xc3b6('0x35')](_0x4f6dc4[_0xc3b6('0x31')]['fields']));_0x1703d6[_0xc3b6('0x33')]=_0x1703d6[_0xc3b6('0x33')]['length']?_0x1703d6[_0xc3b6('0x33')]:_0x2afd86[_0xc3b6('0x30')];if(!_0x4f6dc4[_0xc3b6('0x31')][_0xc3b6('0x36')](_0xc3b6('0x37'))){_0x1703d6[_0xc3b6('0x20')]=qs[_0xc3b6('0x20')](_0x4f6dc4[_0xc3b6('0x31')][_0xc3b6('0x20')]);_0x1703d6[_0xc3b6('0x1e')]=qs[_0xc3b6('0x1e')](_0x4f6dc4[_0xc3b6('0x31')]['offset']);}_0x1703d6[_0xc3b6('0x38')]=qs[_0xc3b6('0x39')](_0x4f6dc4[_0xc3b6('0x31')][_0xc3b6('0x39')]);_0x1703d6[_0xc3b6('0x3a')]=qs[_0xc3b6('0x32')](_[_0xc3b6('0x3b')](_0x4f6dc4[_0xc3b6('0x31')],_0x2afd86['filters']),_0x246c69);if(_0x4f6dc4[_0xc3b6('0x31')]['filter']){_0x1703d6[_0xc3b6('0x3a')]=_[_0xc3b6('0x3c')](_0x1703d6[_0xc3b6('0x3a')],{'$or':_['map'](_0x246c69,function(_0x1a806c){if(_0x1a806c[_0xc3b6('0x2e')]!==_0xc3b6('0x3d')){var _0x221004={};_0x221004[_0x1a806c[_0xc3b6('0x3e')]]={'$like':'%'+_0x4f6dc4[_0xc3b6('0x31')][_0xc3b6('0x3f')]+'%'};return _0x221004;}})});}_0x1703d6=_[_0xc3b6('0x3c')]({},_0x1703d6,_0x4f6dc4[_0xc3b6('0x40')]);var _0x29d352={'where':_0x1703d6[_0xc3b6('0x3a')]};return db[_0xc3b6('0x2c')][_0xc3b6('0x21')](_0x29d352)[_0xc3b6('0x25')](function(_0x376a2e){_0x136a4c[_0xc3b6('0x21')]=_0x376a2e;if(_0x4f6dc4[_0xc3b6('0x31')][_0xc3b6('0x41')]){_0x1703d6[_0xc3b6('0x42')]=[{'all':!![]}];}return db[_0xc3b6('0x2c')][_0xc3b6('0x43')](_0x1703d6);})[_0xc3b6('0x25')](function(_0x3496b4){_0x136a4c[_0xc3b6('0x44')]=_0x3496b4;return _0x136a4c;})[_0xc3b6('0x25')](respondWithFilteredResult(_0x392ae4,_0x1703d6))[_0xc3b6('0x45')](handleError(_0x392ae4,null));};exports[_0xc3b6('0x46')]=function(_0x3f93d4,_0x507256){var _0x5d48b9={'raw':![],'where':{'id':_0x3f93d4[_0xc3b6('0x47')]['id']}},_0x4d3763={};_0x4d3763['model']=_[_0xc3b6('0x48')](db['SugarcrmAccount'][_0xc3b6('0x2d')]);_0x4d3763[_0xc3b6('0x31')]=_[_0xc3b6('0x48')](_0x3f93d4['query']);_0x4d3763[_0xc3b6('0x32')]=_[_0xc3b6('0x34')](_0x4d3763[_0xc3b6('0x30')],_0x4d3763[_0xc3b6('0x31')]);_0x5d48b9['attributes']=_[_0xc3b6('0x34')](_0x4d3763['model'],qs[_0xc3b6('0x35')](_0x3f93d4[_0xc3b6('0x31')][_0xc3b6('0x35')]));_0x5d48b9[_0xc3b6('0x33')]=_0x5d48b9[_0xc3b6('0x33')][_0xc3b6('0x49')]?_0x5d48b9[_0xc3b6('0x33')]:_0x4d3763['model'];if(_0x3f93d4[_0xc3b6('0x31')][_0xc3b6('0x41')]){_0x5d48b9[_0xc3b6('0x42')]=[{'all':!![]}];}_0x5d48b9=_[_0xc3b6('0x3c')]({},_0x5d48b9,_0x3f93d4[_0xc3b6('0x40')]);return db[_0xc3b6('0x2c')][_0xc3b6('0x4a')](_0x5d48b9)[_0xc3b6('0x25')](handleEntityNotFound(_0x507256,null))[_0xc3b6('0x25')](respondWithResult(_0x507256,null))[_0xc3b6('0x45')](handleError(_0x507256,null));};exports[_0xc3b6('0x4b')]=function(_0xb5a645,_0x3ece1f){return db[_0xc3b6('0x2c')][_0xc3b6('0x4b')](_0xb5a645['body'],{})[_0xc3b6('0x25')](respondWithResult(_0x3ece1f,0xc9))['catch'](handleError(_0x3ece1f,null));};exports[_0xc3b6('0x4c')]=function(_0x17a852,_0x793c24){if(_0x17a852[_0xc3b6('0x4d')]['id']){delete _0x17a852['body']['id'];}return db['SugarcrmAccount'][_0xc3b6('0x4a')]({'where':{'id':_0x17a852[_0xc3b6('0x47')]['id']}})[_0xc3b6('0x25')](handleEntityNotFound(_0x793c24,null))[_0xc3b6('0x25')](saveUpdates(_0x17a852['body'],null))[_0xc3b6('0x25')](respondWithResult(_0x793c24,null))['catch'](handleError(_0x793c24,null));};exports['destroy']=function(_0x29ac13,_0x2f09a2){return db[_0xc3b6('0x2c')][_0xc3b6('0x4a')]({'where':{'id':_0x29ac13[_0xc3b6('0x47')]['id']}})[_0xc3b6('0x25')](handleEntityNotFound(_0x2f09a2,null))['then'](removeEntity(_0x2f09a2,null))[_0xc3b6('0x45')](handleError(_0x2f09a2,null));};exports['getConfigurations']=function(_0x46318b,_0x337dae,_0x528c21){var _0x50ba24={};var _0x3a5312={};var _0x22a067;var _0x5f027f;return db['SugarcrmAccount']['findOne']({'where':{'id':_0x46318b[_0xc3b6('0x47')]['id']}})[_0xc3b6('0x25')](handleEntityNotFound(_0x337dae,null))['then'](function(_0x5fd136){if(_0x5fd136){_0x22a067=_0x5fd136;_0x3a5312[_0xc3b6('0x30')]=_[_0xc3b6('0x48')](db['SugarcrmConfiguration']['rawAttributes']);_0x3a5312[_0xc3b6('0x31')]=_[_0xc3b6('0x48')](_0x46318b['query']);_0x3a5312['filters']=_['intersection'](_0x3a5312[_0xc3b6('0x30')],_0x3a5312['query']);_0x50ba24[_0xc3b6('0x33')]=_[_0xc3b6('0x34')](_0x3a5312[_0xc3b6('0x30')],qs['fields'](_0x46318b[_0xc3b6('0x31')][_0xc3b6('0x35')]));_0x50ba24[_0xc3b6('0x33')]=_0x50ba24[_0xc3b6('0x33')][_0xc3b6('0x49')]?_0x50ba24['attributes']:_0x3a5312['model'];_0x50ba24[_0xc3b6('0x38')]=qs['sort'](_0x46318b[_0xc3b6('0x31')][_0xc3b6('0x39')]);_0x50ba24[_0xc3b6('0x3a')]=qs[_0xc3b6('0x32')](_['pick'](_0x46318b['query'],_0x3a5312[_0xc3b6('0x32')]));if(_0x46318b[_0xc3b6('0x31')]['filter']){_0x50ba24['where']=_[_0xc3b6('0x3c')](_0x50ba24[_0xc3b6('0x3a')],{'$or':_[_0xc3b6('0x2b')](_0x50ba24[_0xc3b6('0x33')],function(_0x196f2a){var _0x47ec45={};_0x47ec45[_0x196f2a]={'$like':'%'+_0x46318b[_0xc3b6('0x31')]['filter']+'%'};return _0x47ec45;})});}_0x50ba24=_[_0xc3b6('0x3c')]({},_0x50ba24,_0x46318b[_0xc3b6('0x40')]);return _0x22a067[_0xc3b6('0x4e')](_0x50ba24);}})[_0xc3b6('0x25')](function(_0x44a85f){if(_0x44a85f){_0x5f027f=_0x44a85f[_0xc3b6('0x49')];if(!_0x46318b[_0xc3b6('0x31')][_0xc3b6('0x36')]('nolimit')){_0x50ba24[_0xc3b6('0x20')]=qs[_0xc3b6('0x20')](_0x46318b['query'][_0xc3b6('0x20')]);_0x50ba24['offset']=qs[_0xc3b6('0x1e')](_0x46318b[_0xc3b6('0x31')][_0xc3b6('0x1e')]);}return _0x22a067[_0xc3b6('0x4e')](_0x50ba24);}})[_0xc3b6('0x25')](function(_0x5e7d46){if(_0x5e7d46){return _0x5e7d46?{'count':_0x5f027f,'rows':_0x5e7d46}:null;}})[_0xc3b6('0x25')](respondWithResult(_0x337dae,null))[_0xc3b6('0x45')](handleError(_0x337dae,null));};exports['addConfiguration']=function(_0x1cdf67,_0x30455c,_0x23fbb7){if(_0x1cdf67['body']['id']){delete _0x1cdf67['body']['id'];}return db[_0xc3b6('0x2c')][_0xc3b6('0x4f')]({'where':{'id':_0x1cdf67['params']['id']}})['then'](handleEntityNotFound(_0x30455c,null))[_0xc3b6('0x25')](function(_0x351c9e){if(_0x351c9e){_0x1cdf67[_0xc3b6('0x4d')][_0xc3b6('0x50')]=_0x351c9e['id'];_0x1cdf67['body'][_0xc3b6('0x51')]=integrations[_0xc3b6('0x52')](_0x1cdf67[_0xc3b6('0x4d')][_0xc3b6('0x53')],_0x1cdf67[_0xc3b6('0x4d')]['type']);_0x1cdf67[_0xc3b6('0x4d')]['Descriptions']=integrations[_0xc3b6('0x54')](_0x1cdf67[_0xc3b6('0x4d')][_0xc3b6('0x53')],_0x1cdf67[_0xc3b6('0x4d')][_0xc3b6('0x2e')]);return db[_0xc3b6('0x55')]['create'](_0x1cdf67['body'],{'include':[{'model':db['SugarcrmField'],'as':_0xc3b6('0x51')},{'model':db[_0xc3b6('0x56')],'as':_0xc3b6('0x57')}]});}return null;})[_0xc3b6('0x25')](respondWithResult(_0x30455c,null))['catch'](handleError(_0x30455c,null));};exports[_0xc3b6('0x58')]=function(_0x2bf24e,_0x4fc010,_0x36944c){var _0xd08d64='';var _0x150119=['id',_0xc3b6('0x3e'),_0xc3b6('0x59'),_0xc3b6('0x5a'),'description','date_start',_0xc3b6('0x5b'),'duration_minutes',_0xc3b6('0x5c'),_0xc3b6('0x5d'),_0xc3b6('0x5e'),_0xc3b6('0x5f')];return db['SugarcrmAccount'][_0xc3b6('0x4f')]({'where':{'id':_0x2bf24e['params']['id']},'attributes':['id',_0xc3b6('0x60'),_0xc3b6('0x61'),_0xc3b6('0x62')]})['then'](handleEntityNotFound(_0x4fc010,null))['then'](function(_0x56c8a9){if(_0x56c8a9){_0xd08d64=_0x56c8a9[_0xc3b6('0x62')];var _0x403be=_0xd08d64['slice'](-0x1);if(_0x403be==='/'){_0xd08d64=_0xd08d64[_0xc3b6('0x63')](0x0,_0xd08d64[_0xc3b6('0x64')](_0x403be));}return rp({'method':_0xc3b6('0x65'),'uri':util[_0xc3b6('0x66')]('%s%s',_0xd08d64,_0xc3b6('0x67')),'json':!![],'form':{'method':_0xc3b6('0x68'),'input_type':_0xc3b6('0x69'),'response_type':_0xc3b6('0x69'),'rest_data':JSON[_0xc3b6('0x6a')]({'user_auth':{'user_name':_0x56c8a9[_0xc3b6('0x60')],'password':_0x56c8a9[_0xc3b6('0x61')],'encryption':_0xc3b6('0x6b')},'application':_0xc3b6('0x6c')})}});}})[_0xc3b6('0x25')](function(_0x17de2b){if(_0x17de2b&&_0x17de2b[_0xc3b6('0x3e')]!=='Invalid\x20Login'&&_0x17de2b[_0xc3b6('0x3e')]!==_0xc3b6('0x6d')){return rp({'method':_0xc3b6('0x65'),'uri':util[_0xc3b6('0x66')](_0xc3b6('0x6e'),_0xd08d64,'/service/v4_1/rest.php'),'json':!![],'form':{'method':'get_module_fields','input_type':'JSON','response_type':_0xc3b6('0x69'),'rest_data':JSON['stringify']({'session':_0x17de2b['id'],'module_name':'Calls'})}})[_0xc3b6('0x25')](function(_0xd9e95e){if(_0xd9e95e){var _0x9a0bc4=_[_0xc3b6('0x6f')](_0xd9e95e[_0xc3b6('0x70')]);_[_0xc3b6('0x71')](_0x9a0bc4,function(_0x3f0911){return _0x150119['includes'](_0x3f0911[_0xc3b6('0x3e')]);});return{'count':_0x9a0bc4[_0xc3b6('0x49')],'rows':_[_0xc3b6('0x2b')](_0x9a0bc4,function(_0x12c5f1){return{'id':_0x12c5f1[_0xc3b6('0x3e')],'name':_0x12c5f1[_0xc3b6('0x72')],'custom':_[_0xc3b6('0x73')](_0x12c5f1[_0xc3b6('0x3e')],'_c')?!![]:![],'options':_0x12c5f1['options']?_[_0xc3b6('0x2b')](_[_0xc3b6('0x6f')](_0x12c5f1[_0xc3b6('0x40')]),function(_0x299b5e){return{'name':_0x299b5e[_0xc3b6('0x74')],'value':_0x299b5e[_0xc3b6('0x3e')]};}):[]};})};}})['then'](respondWithResult(_0x4fc010,null))['catch'](function(_0x1cceb9){var _0x340ce=_0x2bf24e[_0xc3b6('0x31')][_0xc3b6('0x75')]?0x1f4:_0x1cceb9[_0xc3b6('0x76')]||0x1f4;logger[_0xc3b6('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0xc3b6('0x58'),_0x340ce,JSON[_0xc3b6('0x6a')](_0x1cceb9));delete _0x1cceb9[_0xc3b6('0x3e')];if(_0x340ce===0x191){_0x340ce=0x190;}_0x4fc010[_0xc3b6('0x1c')](_0x340ce)['send'](_0x2bf24e[_0xc3b6('0x31')][_0xc3b6('0x75')]?{'message':_0xc3b6('0x77'),'statusCode':_0x1cceb9[_0xc3b6('0x76')]}:_0x1cceb9);});}else{var _0x1fd230=0x1f4;_0x4fc010['status'](_0x1fd230)[_0xc3b6('0x2a')]({'message':'Wrong\x20credentials','statusCode':0x190});}});};