Built motion from commit 56b8093a.|2.6.29
[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 _0xb08b=['show','find','body','update','getConfigurations','findOne','params','SugarcrmConfiguration','order','nolimit','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','create','SugarcrmField','getFields','description','duration_hours','duration_minutes','parent_name','password','remoteUri','substring','lastIndexOf','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','username','PLAIN','xCALLY\x20Motion\x20Integration','get_module_fields','Calls','module_fields','remove','label','endsWith','values','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','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','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','index','SugarcrmAccount','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xb08b,0x19f));var _0xbb08=function(_0x5f0a20,_0x51e115){_0x5f0a20=_0x5f0a20-0x0;var _0x2a9e9a=_0xb08b[_0x5f0a20];return _0x2a9e9a;};'use strict';var emlformat=require(_0xbb08('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbb08('0x1'));var jsonpatch=require(_0xbb08('0x2'));var rp=require('request-promise');var moment=require(_0xbb08('0x3'));var BPromise=require(_0xbb08('0x4'));var Mustache=require('mustache');var util=require(_0xbb08('0x5'));var path=require('path');var sox=require(_0xbb08('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbb08('0x7'));var _=require(_0xbb08('0x8'));var squel=require(_0xbb08('0x9'));var crypto=require(_0xbb08('0xa'));var jsforce=require(_0xbb08('0xb'));var deskjs=require(_0xbb08('0xc'));var toCsv=require(_0xbb08('0xd'));var querystring=require(_0xbb08('0xe'));var Papa=require(_0xbb08('0xf'));var Redis=require(_0xbb08('0x10'));var authService=require(_0xbb08('0x11'));var qs=require(_0xbb08('0x12'));var as=require(_0xbb08('0x13'));var hardwareService=require(_0xbb08('0x14'));var logger=require(_0xbb08('0x15'))(_0xbb08('0x16'));var utils=require(_0xbb08('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xbb08('0x18'));var db=require(_0xbb08('0x19'))['db'];var integrations=require(_0xbb08('0x1a'));function respondWithStatusCode(_0x2afe65,_0x2e652e){_0x2e652e=_0x2e652e||0xcc;return function(_0x56feb4){if(_0x56feb4){return _0x2afe65[_0xbb08('0x1b')](_0x2e652e);}return _0x2afe65[_0xbb08('0x1c')](_0x2e652e)[_0xbb08('0x1d')]();};}function respondWithResult(_0x445d2d,_0x1f355a){_0x1f355a=_0x1f355a||0xc8;return function(_0x1b3ec3){if(_0x1b3ec3){return _0x445d2d[_0xbb08('0x1c')](_0x1f355a)[_0xbb08('0x1e')](_0x1b3ec3);}};}function respondWithFilteredResult(_0x477b12,_0x2f53e7){return function(_0x1d8aa8){if(_0x1d8aa8){var _0x1c5352=typeof _0x2f53e7[_0xbb08('0x1f')]===_0xbb08('0x20')&&typeof _0x2f53e7['limit']===_0xbb08('0x20');var _0x2e2990=_0x1d8aa8['count'];var _0x39a13c=_0x1c5352?0x0:_0x2f53e7[_0xbb08('0x1f')];var _0x59d4d4=_0x1c5352?_0x1d8aa8[_0xbb08('0x21')]:_0x2f53e7[_0xbb08('0x1f')]+_0x2f53e7[_0xbb08('0x22')];var _0x46ea06;if(_0x59d4d4>=_0x2e2990){_0x59d4d4=_0x2e2990;_0x46ea06=0xc8;}else{_0x46ea06=0xce;}_0x477b12[_0xbb08('0x1c')](_0x46ea06);return _0x477b12[_0xbb08('0x23')](_0xbb08('0x24'),_0x39a13c+'-'+_0x59d4d4+'/'+_0x2e2990)[_0xbb08('0x1e')](_0x1d8aa8);}return null;};}function patchUpdates(_0x15ff5b){return function(_0x408171){try{jsonpatch[_0xbb08('0x25')](_0x408171,_0x15ff5b,!![]);}catch(_0x4ffa0f){return BPromise[_0xbb08('0x26')](_0x4ffa0f);}return _0x408171[_0xbb08('0x27')]();};}function saveUpdates(_0xab349e,_0x157f4d){return function(_0x24276d){if(_0x24276d){return _0x24276d['update'](_0xab349e)[_0xbb08('0x28')](function(_0x2fda37){return _0x2fda37;});}return null;};}function removeEntity(_0x456247,_0x2b4443){return function(_0x30d9d0){if(_0x30d9d0){return _0x30d9d0[_0xbb08('0x29')]()[_0xbb08('0x28')](function(){_0x456247[_0xbb08('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12975f,_0x4a47fd){return function(_0x3891dc){if(!_0x3891dc){_0x12975f[_0xbb08('0x1b')](0x194);}return _0x3891dc;};}function handleError(_0xaf1114,_0x5ce6bc){_0x5ce6bc=_0x5ce6bc||0x1f4;return function(_0x2f8678){logger[_0xbb08('0x2a')](_0x2f8678[_0xbb08('0x2b')]);if(_0x2f8678[_0xbb08('0x2c')]){delete _0x2f8678[_0xbb08('0x2c')];}_0xaf1114[_0xbb08('0x1c')](_0x5ce6bc)['send'](_0x2f8678);};}exports[_0xbb08('0x2d')]=function(_0x54bddc,_0x2f067b){var _0x16d7c9={},_0x1b2b1f={},_0x2f16c1={'count':0x0,'rows':[]};var _0x446358=_['map'](db[_0xbb08('0x2e')][_0xbb08('0x2f')],function(_0x2c5f68){return{'name':_0x2c5f68[_0xbb08('0x30')],'type':_0x2c5f68[_0xbb08('0x31')][_0xbb08('0x32')]};});_0x1b2b1f[_0xbb08('0x33')]=_[_0xbb08('0x34')](_0x446358,_0xbb08('0x2c'));_0x1b2b1f[_0xbb08('0x35')]=_[_0xbb08('0x36')](_0x54bddc[_0xbb08('0x35')]);_0x1b2b1f[_0xbb08('0x37')]=_[_0xbb08('0x38')](_0x1b2b1f[_0xbb08('0x33')],_0x1b2b1f['query']);_0x16d7c9[_0xbb08('0x39')]=_['intersection'](_0x1b2b1f[_0xbb08('0x33')],qs['fields'](_0x54bddc[_0xbb08('0x35')][_0xbb08('0x3a')]));_0x16d7c9['attributes']=_0x16d7c9[_0xbb08('0x39')][_0xbb08('0x3b')]?_0x16d7c9[_0xbb08('0x39')]:_0x1b2b1f[_0xbb08('0x33')];if(!_0x54bddc['query'][_0xbb08('0x3c')]('nolimit')){_0x16d7c9['limit']=qs[_0xbb08('0x22')](_0x54bddc[_0xbb08('0x35')]['limit']);_0x16d7c9['offset']=qs[_0xbb08('0x1f')](_0x54bddc[_0xbb08('0x35')]['offset']);}_0x16d7c9['order']=qs[_0xbb08('0x3d')](_0x54bddc['query'][_0xbb08('0x3d')]);_0x16d7c9[_0xbb08('0x3e')]=qs[_0xbb08('0x37')](_[_0xbb08('0x3f')](_0x54bddc[_0xbb08('0x35')],_0x1b2b1f[_0xbb08('0x37')]),_0x446358);if(_0x54bddc[_0xbb08('0x35')][_0xbb08('0x40')]){_0x16d7c9[_0xbb08('0x3e')]=_[_0xbb08('0x41')](_0x16d7c9['where'],{'$or':_[_0xbb08('0x34')](_0x446358,function(_0x3e2cbc){if(_0x3e2cbc[_0xbb08('0x31')]!==_0xbb08('0x42')){var _0x299569={};_0x299569[_0x3e2cbc[_0xbb08('0x2c')]]={'$like':'%'+_0x54bddc[_0xbb08('0x35')][_0xbb08('0x40')]+'%'};return _0x299569;}})});}_0x16d7c9=_[_0xbb08('0x41')]({},_0x16d7c9,_0x54bddc[_0xbb08('0x43')]);var _0x1c0c80={'where':_0x16d7c9[_0xbb08('0x3e')]};return db['SugarcrmAccount']['count'](_0x1c0c80)[_0xbb08('0x28')](function(_0x5aed92){_0x2f16c1[_0xbb08('0x21')]=_0x5aed92;if(_0x54bddc['query'][_0xbb08('0x44')]){_0x16d7c9[_0xbb08('0x45')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0xbb08('0x46')](_0x16d7c9);})[_0xbb08('0x28')](function(_0x1572d9){_0x2f16c1[_0xbb08('0x47')]=_0x1572d9;return _0x2f16c1;})[_0xbb08('0x28')](respondWithFilteredResult(_0x2f067b,_0x16d7c9))[_0xbb08('0x48')](handleError(_0x2f067b,null));};exports[_0xbb08('0x49')]=function(_0x5c00c7,_0x156c28){var _0x2331ee={'raw':![],'where':{'id':_0x5c00c7['params']['id']}},_0x3dc136={};_0x3dc136['model']=_[_0xbb08('0x36')](db[_0xbb08('0x2e')][_0xbb08('0x2f')]);_0x3dc136[_0xbb08('0x35')]=_[_0xbb08('0x36')](_0x5c00c7[_0xbb08('0x35')]);_0x3dc136[_0xbb08('0x37')]=_[_0xbb08('0x38')](_0x3dc136[_0xbb08('0x33')],_0x3dc136[_0xbb08('0x35')]);_0x2331ee[_0xbb08('0x39')]=_[_0xbb08('0x38')](_0x3dc136[_0xbb08('0x33')],qs[_0xbb08('0x3a')](_0x5c00c7[_0xbb08('0x35')][_0xbb08('0x3a')]));_0x2331ee[_0xbb08('0x39')]=_0x2331ee[_0xbb08('0x39')][_0xbb08('0x3b')]?_0x2331ee[_0xbb08('0x39')]:_0x3dc136[_0xbb08('0x33')];if(_0x5c00c7[_0xbb08('0x35')][_0xbb08('0x44')]){_0x2331ee[_0xbb08('0x45')]=[{'all':!![]}];}_0x2331ee=_[_0xbb08('0x41')]({},_0x2331ee,_0x5c00c7[_0xbb08('0x43')]);return db[_0xbb08('0x2e')][_0xbb08('0x4a')](_0x2331ee)[_0xbb08('0x28')](handleEntityNotFound(_0x156c28,null))[_0xbb08('0x28')](respondWithResult(_0x156c28,null))[_0xbb08('0x48')](handleError(_0x156c28,null));};exports['create']=function(_0xa6a16f,_0x28ef71){return db[_0xbb08('0x2e')]['create'](_0xa6a16f[_0xbb08('0x4b')],{})[_0xbb08('0x28')](respondWithResult(_0x28ef71,0xc9))[_0xbb08('0x48')](handleError(_0x28ef71,null));};exports[_0xbb08('0x4c')]=function(_0x1552a8,_0x15a714){if(_0x1552a8['body']['id']){delete _0x1552a8[_0xbb08('0x4b')]['id'];}return db[_0xbb08('0x2e')][_0xbb08('0x4a')]({'where':{'id':_0x1552a8['params']['id']}})[_0xbb08('0x28')](handleEntityNotFound(_0x15a714,null))[_0xbb08('0x28')](saveUpdates(_0x1552a8[_0xbb08('0x4b')],null))[_0xbb08('0x28')](respondWithResult(_0x15a714,null))[_0xbb08('0x48')](handleError(_0x15a714,null));};exports[_0xbb08('0x29')]=function(_0x32ea69,_0x450d77){return db[_0xbb08('0x2e')][_0xbb08('0x4a')]({'where':{'id':_0x32ea69['params']['id']}})[_0xbb08('0x28')](handleEntityNotFound(_0x450d77,null))[_0xbb08('0x28')](removeEntity(_0x450d77,null))['catch'](handleError(_0x450d77,null));};exports[_0xbb08('0x4d')]=function(_0x2478bc,_0x13756d,_0x324584){var _0x168be3={};var _0xda89bd={};var _0x5e1acc;var _0x25d827;return db[_0xbb08('0x2e')][_0xbb08('0x4e')]({'where':{'id':_0x2478bc[_0xbb08('0x4f')]['id']}})[_0xbb08('0x28')](handleEntityNotFound(_0x13756d,null))[_0xbb08('0x28')](function(_0x4483a2){if(_0x4483a2){_0x5e1acc=_0x4483a2;_0xda89bd[_0xbb08('0x33')]=_[_0xbb08('0x36')](db[_0xbb08('0x50')][_0xbb08('0x2f')]);_0xda89bd['query']=_['keys'](_0x2478bc[_0xbb08('0x35')]);_0xda89bd['filters']=_[_0xbb08('0x38')](_0xda89bd[_0xbb08('0x33')],_0xda89bd[_0xbb08('0x35')]);_0x168be3[_0xbb08('0x39')]=_[_0xbb08('0x38')](_0xda89bd['model'],qs[_0xbb08('0x3a')](_0x2478bc[_0xbb08('0x35')][_0xbb08('0x3a')]));_0x168be3[_0xbb08('0x39')]=_0x168be3[_0xbb08('0x39')][_0xbb08('0x3b')]?_0x168be3[_0xbb08('0x39')]:_0xda89bd[_0xbb08('0x33')];_0x168be3[_0xbb08('0x51')]=qs[_0xbb08('0x3d')](_0x2478bc['query'][_0xbb08('0x3d')]);_0x168be3[_0xbb08('0x3e')]=qs[_0xbb08('0x37')](_['pick'](_0x2478bc['query'],_0xda89bd[_0xbb08('0x37')]));if(_0x2478bc[_0xbb08('0x35')][_0xbb08('0x40')]){_0x168be3['where']=_['merge'](_0x168be3[_0xbb08('0x3e')],{'$or':_['map'](_0x168be3[_0xbb08('0x39')],function(_0x1ebbd8){var _0x31b67e={};_0x31b67e[_0x1ebbd8]={'$like':'%'+_0x2478bc['query']['filter']+'%'};return _0x31b67e;})});}_0x168be3=_['merge']({},_0x168be3,_0x2478bc[_0xbb08('0x43')]);return _0x5e1acc['getConfigurations'](_0x168be3);}})[_0xbb08('0x28')](function(_0x1e1e9b){if(_0x1e1e9b){_0x25d827=_0x1e1e9b[_0xbb08('0x3b')];if(!_0x2478bc[_0xbb08('0x35')]['hasOwnProperty'](_0xbb08('0x52'))){_0x168be3[_0xbb08('0x22')]=qs[_0xbb08('0x22')](_0x2478bc[_0xbb08('0x35')][_0xbb08('0x22')]);_0x168be3['offset']=qs['offset'](_0x2478bc[_0xbb08('0x35')][_0xbb08('0x1f')]);}return _0x5e1acc[_0xbb08('0x4d')](_0x168be3);}})['then'](function(_0x18562e){if(_0x18562e){return _0x18562e?{'count':_0x25d827,'rows':_0x18562e}:null;}})[_0xbb08('0x28')](respondWithResult(_0x13756d,null))[_0xbb08('0x48')](handleError(_0x13756d,null));};exports['addConfiguration']=function(_0x2be1a5,_0x1a0841,_0x309766){if(_0x2be1a5[_0xbb08('0x4b')]['id']){delete _0x2be1a5[_0xbb08('0x4b')]['id'];}return db[_0xbb08('0x2e')]['findOne']({'where':{'id':_0x2be1a5[_0xbb08('0x4f')]['id']}})[_0xbb08('0x28')](handleEntityNotFound(_0x1a0841,null))[_0xbb08('0x28')](function(_0x4a2244){if(_0x4a2244){_0x2be1a5['body'][_0xbb08('0x53')]=_0x4a2244['id'];_0x2be1a5['body'][_0xbb08('0x54')]=integrations[_0xbb08('0x55')](_0x2be1a5['body'][_0xbb08('0x56')],_0x2be1a5['body'][_0xbb08('0x31')]);_0x2be1a5['body'][_0xbb08('0x57')]=integrations[_0xbb08('0x58')](_0x2be1a5[_0xbb08('0x4b')][_0xbb08('0x56')],_0x2be1a5[_0xbb08('0x4b')]['type']);return db[_0xbb08('0x50')][_0xbb08('0x59')](_0x2be1a5[_0xbb08('0x4b')],{'include':[{'model':db[_0xbb08('0x5a')],'as':_0xbb08('0x54')},{'model':db[_0xbb08('0x5a')],'as':_0xbb08('0x57')}]});}return null;})[_0xbb08('0x28')](respondWithResult(_0x1a0841,null))[_0xbb08('0x48')](handleError(_0x1a0841,null));};exports[_0xbb08('0x5b')]=function(_0x29e2e6,_0x26d1ea,_0x46503c){var _0x1dd6fb='';var _0x11322d=['id',_0xbb08('0x2c'),'assigned_user_id','created_by',_0xbb08('0x5c'),'date_start',_0xbb08('0x5d'),_0xbb08('0x5e'),'parent_id','parent_type',_0xbb08('0x5f'),'direction'];return db[_0xbb08('0x2e')][_0xbb08('0x4e')]({'where':{'id':_0x29e2e6[_0xbb08('0x4f')]['id']},'attributes':['id','username',_0xbb08('0x60'),_0xbb08('0x61')]})[_0xbb08('0x28')](handleEntityNotFound(_0x26d1ea,null))[_0xbb08('0x28')](function(_0x335328){if(_0x335328){_0x1dd6fb=_0x335328['remoteUri'];var _0x175624=_0x1dd6fb['slice'](-0x1);if(_0x175624==='/'){_0x1dd6fb=_0x1dd6fb[_0xbb08('0x62')](0x0,_0x1dd6fb[_0xbb08('0x63')](_0x175624));}return rp({'method':'POST','uri':util[_0xbb08('0x64')](_0xbb08('0x65'),_0x1dd6fb,_0xbb08('0x66')),'json':!![],'form':{'method':_0xbb08('0x67'),'input_type':_0xbb08('0x68'),'response_type':_0xbb08('0x68'),'rest_data':JSON[_0xbb08('0x69')]({'user_auth':{'user_name':_0x335328[_0xbb08('0x6a')],'password':_0x335328['password'],'encryption':_0xbb08('0x6b')},'application':_0xbb08('0x6c')})}});}})[_0xbb08('0x28')](function(_0x375944){if(_0x375944&&_0x375944['name']!=='Invalid\x20Login'&&_0x375944[_0xbb08('0x2c')]!=='Password\x20Expired'){return rp({'method':'POST','uri':util[_0xbb08('0x64')](_0xbb08('0x65'),_0x1dd6fb,_0xbb08('0x66')),'json':!![],'form':{'method':_0xbb08('0x6d'),'input_type':_0xbb08('0x68'),'response_type':_0xbb08('0x68'),'rest_data':JSON[_0xbb08('0x69')]({'session':_0x375944['id'],'module_name':_0xbb08('0x6e')})}})['then'](function(_0x4581c5){if(_0x4581c5){var _0x250819=_['values'](_0x4581c5[_0xbb08('0x6f')]);_[_0xbb08('0x70')](_0x250819,function(_0x146a88){return _0x11322d['includes'](_0x146a88[_0xbb08('0x2c')]);});return{'count':_0x250819['length'],'rows':_['map'](_0x250819,function(_0x46cbf3){return{'id':_0x46cbf3[_0xbb08('0x2c')],'name':_0x46cbf3[_0xbb08('0x71')],'custom':_[_0xbb08('0x72')](_0x46cbf3[_0xbb08('0x2c')],'_c')?!![]:![],'options':_0x46cbf3[_0xbb08('0x43')]?_[_0xbb08('0x34')](_[_0xbb08('0x73')](_0x46cbf3[_0xbb08('0x43')]),function(_0x41ab8b){return{'name':_0x41ab8b[_0xbb08('0x74')],'value':_0x41ab8b[_0xbb08('0x2c')]};}):[]};})};}})[_0xbb08('0x28')](respondWithResult(_0x26d1ea,null))['catch'](function(_0xd108ac){var _0x310e58=_0x29e2e6[_0xbb08('0x35')][_0xbb08('0x75')]?0x1f4:_0xd108ac[_0xbb08('0x76')]||0x1f4;logger[_0xbb08('0x2a')](_0xbb08('0x77'),_0xbb08('0x5b'),_0x310e58,JSON['stringify'](_0xd108ac));delete _0xd108ac[_0xbb08('0x2c')];if(_0x310e58===0x191){_0x310e58=0x190;}_0x26d1ea[_0xbb08('0x1c')](_0x310e58)[_0xbb08('0x78')](_0x29e2e6[_0xbb08('0x35')]['test']?{'message':_0xbb08('0x79'),'statusCode':_0xd108ac['statusCode']}:_0xd108ac);});}else{var _0x5c9626=0x1f4;_0x26d1ea[_0xbb08('0x1c')](_0x5c9626)[_0xbb08('0x78')]({'message':_0xbb08('0x79'),'statusCode':0x190});}});};