Built motion from commit (unavailable).|2.5.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 _0x9758=['update','destroy','stack','name','send','SugarcrmAccount','rawAttributes','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','merge','VIRTUAL','filter','options','where','includeAll','include','findAll','rows','show','find','create','body','getConfigurations','params','SugarcrmConfiguration','map','addConfiguration','findOne','AccountId','Subjects','getSubjects','type','Descriptions','getDescriptions','channel','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','duration_minutes','parent_id','parent_type','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','JSON','PLAIN','xCALLY\x20Motion\x20Integration','get_module_fields','values','module_fields','remove','includes','label','value','statusCode','eml-format','zip-dir','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','test','Sequelize','ValidationError','request','then','info','request\x20sent','stringify','error','code','SugarcrmAccount,\x20%s,\x20%s','message','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save'];(function(_0x15eab7,_0x49bed6){var _0x1f15c6=function(_0x33acb0){while(--_0x33acb0){_0x15eab7['push'](_0x15eab7['shift']());}};_0x1f15c6(++_0x49bed6);}(_0x9758,0x1cf));var _0x8975=function(_0x31eef0,_0x4d95f7){_0x31eef0=_0x31eef0-0x0;var _0x466718=_0x9758[_0x31eef0];return _0x466718;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x8975('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8975('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8975('0x2'));var moment=require(_0x8975('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8975('0x4'));var path=require(_0x8975('0x5'));var sox=require(_0x8975('0x6'));var csv=require(_0x8975('0x7'));var ejs=require(_0x8975('0x8'));var fs=require('fs');var _=require(_0x8975('0x9'));var squel=require(_0x8975('0xa'));var crypto=require(_0x8975('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8975('0x7'));var querystring=require('querystring');var Papa=require(_0x8975('0xc'));var Redis=require('ioredis');var authService=require(_0x8975('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x8975('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8975('0xf'))(_0x8975('0x10'));var utils=require(_0x8975('0x11'));var config=require(_0x8975('0x12'));var db=require(_0x8975('0x13'))['db'];var integrations=require(_0x8975('0x14'));var jayson=require(_0x8975('0x15'));var client=jayson[_0x8975('0x16')][_0x8975('0x17')]({'port':0x232a});function checkPasswordPattern(_0x1b941f,_0x5a00a8,_0x46f08b){if(_0x46f08b){var _0xdf7097=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0xdf7097[_0x8975('0x18')](_0x5a00a8)){return _0x1b941f;}else{throw new db[(_0x8975('0x19'))][(_0x8975('0x1a'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x1b941f;}}function respondWithRpcPromise(_0x18b7fe,_0x286793,_0x162bdc,_0x59652b){return new BPromise(function(_0x3ac34c,_0x51565d){var _0x2054af=_0x59652b||client;return _0x2054af[_0x8975('0x1b')](_0x18b7fe,_0x162bdc)[_0x8975('0x1c')](function(_0x2e67d9){logger[_0x8975('0x1d')]('SugarcrmAccount,\x20%s,\x20%s',_0x286793,_0x8975('0x1e'));logger['debug']('SugarcrmAccount,\x20%s,\x20%s,\x20%s',_0x286793,_0x8975('0x1e'),JSON[_0x8975('0x1f')](_0x2e67d9));if(_0x2e67d9[_0x8975('0x20')]){if(_0x2e67d9[_0x8975('0x20')][_0x8975('0x21')]===0x1f4){logger['error'](_0x8975('0x22'),_0x286793,_0x2e67d9['error'][_0x8975('0x23')]);return _0x51565d(_0x2e67d9[_0x8975('0x20')][_0x8975('0x23')]);}logger[_0x8975('0x20')]('SugarcrmAccount,\x20%s,\x20%s',_0x286793,_0x2e67d9[_0x8975('0x20')][_0x8975('0x23')]);return _0x3ac34c(_0x2e67d9[_0x8975('0x20')]['message']);}else{logger[_0x8975('0x1d')]('SugarcrmAccount,\x20%s,\x20%s',_0x286793,_0x8975('0x1e'));_0x3ac34c(_0x2e67d9['result'][_0x8975('0x23')]);}})[_0x8975('0x24')](function(_0x4a86ba){logger['error'](_0x8975('0x22'),_0x286793,_0x4a86ba);_0x51565d(_0x4a86ba);});});}function respondWithStatusCode(_0x216d51,_0x290970){_0x290970=_0x290970||0xcc;return function(_0x7a68cd){if(_0x7a68cd){return _0x216d51[_0x8975('0x25')](_0x290970);}return _0x216d51[_0x8975('0x26')](_0x290970)[_0x8975('0x27')]();};}function respondWithResult(_0x421ea3,_0x5726d2){_0x5726d2=_0x5726d2||0xc8;return function(_0x20b8f6){if(_0x20b8f6){return _0x421ea3[_0x8975('0x26')](_0x5726d2)[_0x8975('0x28')](_0x20b8f6);}};}function respondWithFilteredResult(_0x3958d4,_0x37854b){return function(_0x3d996e){if(_0x3d996e){var _0x48b553=_0x3d996e[_0x8975('0x29')],_0x3f46e7=_0x37854b[_0x8975('0x2a')],_0x35f473=_0x37854b[_0x8975('0x2a')]+_0x37854b[_0x8975('0x2b')],_0x37ed42;if(_0x35f473>=_0x48b553){_0x35f473=_0x48b553;_0x37ed42=0xc8;}else{_0x37ed42=0xce;}_0x3958d4['status'](_0x37ed42);return _0x3958d4[_0x8975('0x2c')](_0x8975('0x2d'),_0x3f46e7+'-'+_0x35f473+'/'+_0x48b553)[_0x8975('0x28')](_0x3d996e);}return null;};}function patchUpdates(_0x4b8359){return function(_0x1b533d){try{jsonpatch[_0x8975('0x2e')](_0x1b533d,_0x4b8359,!![]);}catch(_0x589c6c){return BPromise[_0x8975('0x2f')](_0x589c6c);}return _0x1b533d[_0x8975('0x30')]();};}function saveUpdates(_0x47e9f5,_0x4e36a1){return function(_0x50e8f5){if(_0x50e8f5){return _0x50e8f5[_0x8975('0x31')](_0x47e9f5)[_0x8975('0x1c')](function(_0xe54d23){return _0xe54d23;});}return null;};}function removeEntity(_0x4ed2d3,_0xac9ec9){return function(_0x50abd9){if(_0x50abd9){return _0x50abd9[_0x8975('0x32')]()[_0x8975('0x1c')](function(){_0x4ed2d3[_0x8975('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x428c43,_0x3d8c72){return function(_0x22fce5){if(!_0x22fce5){_0x428c43[_0x8975('0x25')](0x194);}return _0x22fce5;};}function handleError(_0x583775,_0x3d0ff0){_0x3d0ff0=_0x3d0ff0||0x1f4;return function(_0x5c9e00){logger[_0x8975('0x20')](_0x5c9e00[_0x8975('0x33')]);if(_0x5c9e00[_0x8975('0x34')]){delete _0x5c9e00[_0x8975('0x34')];}_0x583775['status'](_0x3d0ff0)[_0x8975('0x35')](_0x5c9e00);};}exports['index']=function(_0x5be00a,_0x345f64){var _0x50f4bd={},_0x18987f={},_0x4c8529={'count':0x0,'rows':[]};var _0x5ec8cc=_['map'](db[_0x8975('0x36')][_0x8975('0x37')],function(_0x109403){return{'name':_0x109403['fieldName'],'type':_0x109403['type'][_0x8975('0x38')]};});_0x18987f['model']=_['map'](_0x5ec8cc,_0x8975('0x34'));_0x18987f[_0x8975('0x39')]=_[_0x8975('0x3a')](_0x5be00a[_0x8975('0x39')]);_0x18987f[_0x8975('0x3b')]=_[_0x8975('0x3c')](_0x18987f[_0x8975('0x3d')],_0x18987f[_0x8975('0x39')]);_0x50f4bd[_0x8975('0x3e')]=_['intersection'](_0x18987f[_0x8975('0x3d')],qs[_0x8975('0x3f')](_0x5be00a[_0x8975('0x39')][_0x8975('0x3f')]));_0x50f4bd[_0x8975('0x3e')]=_0x50f4bd['attributes'][_0x8975('0x40')]?_0x50f4bd[_0x8975('0x3e')]:_0x18987f['model'];if(!_0x5be00a[_0x8975('0x39')][_0x8975('0x41')](_0x8975('0x42'))){_0x50f4bd[_0x8975('0x2b')]=qs['limit'](_0x5be00a[_0x8975('0x39')]['limit']);_0x50f4bd[_0x8975('0x2a')]=qs['offset'](_0x5be00a[_0x8975('0x39')][_0x8975('0x2a')]);}_0x50f4bd[_0x8975('0x43')]=qs[_0x8975('0x44')](_0x5be00a['query'][_0x8975('0x44')]);_0x50f4bd['where']=qs['filters'](_[_0x8975('0x45')](_0x5be00a[_0x8975('0x39')],_0x18987f[_0x8975('0x3b')]),_0x5ec8cc);if(_0x5be00a['query']['filter']){_0x50f4bd['where']=_[_0x8975('0x46')](_0x50f4bd['where'],{'$or':_['map'](_0x5ec8cc,function(_0x484957){if(_0x484957['type']!==_0x8975('0x47')){var _0x2ee709={};_0x2ee709[_0x484957[_0x8975('0x34')]]={'$like':'%'+_0x5be00a[_0x8975('0x39')][_0x8975('0x48')]+'%'};return _0x2ee709;}})});}_0x50f4bd=_[_0x8975('0x46')]({},_0x50f4bd,_0x5be00a[_0x8975('0x49')]);var _0x555923={'where':_0x50f4bd[_0x8975('0x4a')]};return db[_0x8975('0x36')][_0x8975('0x29')](_0x555923)['then'](function(_0x23d0f5){_0x4c8529[_0x8975('0x29')]=_0x23d0f5;if(_0x5be00a[_0x8975('0x39')][_0x8975('0x4b')]){_0x50f4bd[_0x8975('0x4c')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0x8975('0x4d')](_0x50f4bd);})[_0x8975('0x1c')](function(_0x2270c8){_0x4c8529[_0x8975('0x4e')]=_0x2270c8;return _0x4c8529;})[_0x8975('0x1c')](respondWithFilteredResult(_0x345f64,_0x50f4bd))['catch'](handleError(_0x345f64,null));};exports[_0x8975('0x4f')]=function(_0x42e260,_0x3ca042){var _0x35dd7a={'raw':![],'where':{'id':_0x42e260['params']['id']}},_0x56c0de={};_0x56c0de[_0x8975('0x3d')]=_['keys'](db[_0x8975('0x36')][_0x8975('0x37')]);_0x56c0de[_0x8975('0x39')]=_[_0x8975('0x3a')](_0x42e260['query']);_0x56c0de[_0x8975('0x3b')]=_[_0x8975('0x3c')](_0x56c0de[_0x8975('0x3d')],_0x56c0de[_0x8975('0x39')]);_0x35dd7a[_0x8975('0x3e')]=_[_0x8975('0x3c')](_0x56c0de[_0x8975('0x3d')],qs['fields'](_0x42e260[_0x8975('0x39')][_0x8975('0x3f')]));_0x35dd7a['attributes']=_0x35dd7a[_0x8975('0x3e')][_0x8975('0x40')]?_0x35dd7a['attributes']:_0x56c0de[_0x8975('0x3d')];if(_0x42e260[_0x8975('0x39')][_0x8975('0x4b')]){_0x35dd7a[_0x8975('0x4c')]=[{'all':!![]}];}_0x35dd7a=_[_0x8975('0x46')]({},_0x35dd7a,_0x42e260['options']);return db['SugarcrmAccount'][_0x8975('0x50')](_0x35dd7a)[_0x8975('0x1c')](handleEntityNotFound(_0x3ca042,null))['then'](respondWithResult(_0x3ca042,null))[_0x8975('0x24')](handleError(_0x3ca042,null));};exports[_0x8975('0x51')]=function(_0x28458b,_0x5f10c2){return db[_0x8975('0x36')][_0x8975('0x51')](_0x28458b[_0x8975('0x52')],{})['then'](respondWithResult(_0x5f10c2,0xc9))[_0x8975('0x24')](handleError(_0x5f10c2,null));};exports[_0x8975('0x31')]=function(_0x1bca3e,_0x12db6a){if(_0x1bca3e['body']['id']){delete _0x1bca3e[_0x8975('0x52')]['id'];}return db['SugarcrmAccount'][_0x8975('0x50')]({'where':{'id':_0x1bca3e['params']['id']}})[_0x8975('0x1c')](handleEntityNotFound(_0x12db6a,null))[_0x8975('0x1c')](saveUpdates(_0x1bca3e[_0x8975('0x52')],null))['then'](respondWithResult(_0x12db6a,null))[_0x8975('0x24')](handleError(_0x12db6a,null));};exports[_0x8975('0x32')]=function(_0x455441,_0x24614b){return db['SugarcrmAccount'][_0x8975('0x50')]({'where':{'id':_0x455441['params']['id']}})['then'](handleEntityNotFound(_0x24614b,null))[_0x8975('0x1c')](removeEntity(_0x24614b,null))[_0x8975('0x24')](handleError(_0x24614b,null));};exports[_0x8975('0x53')]=function(_0x440a84,_0x18d547,_0x33f8d9){var _0x1f9d3f={};var _0x375919={};var _0x10b6af;var _0x49283f;return db[_0x8975('0x36')]['findOne']({'where':{'id':_0x440a84[_0x8975('0x54')]['id']}})[_0x8975('0x1c')](handleEntityNotFound(_0x18d547,null))[_0x8975('0x1c')](function(_0x1b59b0){if(_0x1b59b0){_0x10b6af=_0x1b59b0;_0x375919[_0x8975('0x3d')]=_['keys'](db[_0x8975('0x55')]['rawAttributes']);_0x375919[_0x8975('0x39')]=_[_0x8975('0x3a')](_0x440a84[_0x8975('0x39')]);_0x375919[_0x8975('0x3b')]=_[_0x8975('0x3c')](_0x375919[_0x8975('0x3d')],_0x375919[_0x8975('0x39')]);_0x1f9d3f['attributes']=_['intersection'](_0x375919[_0x8975('0x3d')],qs['fields'](_0x440a84['query'][_0x8975('0x3f')]));_0x1f9d3f[_0x8975('0x3e')]=_0x1f9d3f[_0x8975('0x3e')][_0x8975('0x40')]?_0x1f9d3f['attributes']:_0x375919[_0x8975('0x3d')];_0x1f9d3f[_0x8975('0x43')]=qs[_0x8975('0x44')](_0x440a84[_0x8975('0x39')][_0x8975('0x44')]);_0x1f9d3f[_0x8975('0x4a')]=qs[_0x8975('0x3b')](_[_0x8975('0x45')](_0x440a84['query'],_0x375919[_0x8975('0x3b')]));if(_0x440a84['query'][_0x8975('0x48')]){_0x1f9d3f[_0x8975('0x4a')]=_[_0x8975('0x46')](_0x1f9d3f[_0x8975('0x4a')],{'$or':_[_0x8975('0x56')](_0x1f9d3f[_0x8975('0x3e')],function(_0x3f77f0){var _0xecc936={};_0xecc936[_0x3f77f0]={'$like':'%'+_0x440a84[_0x8975('0x39')]['filter']+'%'};return _0xecc936;})});}_0x1f9d3f=_[_0x8975('0x46')]({},_0x1f9d3f,_0x440a84[_0x8975('0x49')]);return _0x10b6af[_0x8975('0x53')](_0x1f9d3f);}})[_0x8975('0x1c')](function(_0x2ce68b){if(_0x2ce68b){_0x49283f=_0x2ce68b[_0x8975('0x40')];if(!_0x440a84[_0x8975('0x39')]['hasOwnProperty'](_0x8975('0x42'))){_0x1f9d3f[_0x8975('0x2b')]=qs['limit'](_0x440a84[_0x8975('0x39')][_0x8975('0x2b')]);_0x1f9d3f[_0x8975('0x2a')]=qs[_0x8975('0x2a')](_0x440a84['query'][_0x8975('0x2a')]);}return _0x10b6af[_0x8975('0x53')](_0x1f9d3f);}})['then'](function(_0x2fe483){if(_0x2fe483){return _0x2fe483?{'count':_0x49283f,'rows':_0x2fe483}:null;}})[_0x8975('0x1c')](respondWithResult(_0x18d547,null))[_0x8975('0x24')](handleError(_0x18d547,null));};exports[_0x8975('0x57')]=function(_0x685982,_0x25ee0b,_0x1e7f68){if(_0x685982['body']['id']){delete _0x685982[_0x8975('0x52')]['id'];}return db['SugarcrmAccount'][_0x8975('0x58')]({'where':{'id':_0x685982[_0x8975('0x54')]['id']}})['then'](handleEntityNotFound(_0x25ee0b,null))[_0x8975('0x1c')](function(_0x3bf5e5){if(_0x3bf5e5){_0x685982[_0x8975('0x52')][_0x8975('0x59')]=_0x3bf5e5['id'];_0x685982[_0x8975('0x52')][_0x8975('0x5a')]=integrations[_0x8975('0x5b')](_0x685982[_0x8975('0x52')]['channel'],_0x685982['body'][_0x8975('0x5c')]);_0x685982['body'][_0x8975('0x5d')]=integrations[_0x8975('0x5e')](_0x685982[_0x8975('0x52')][_0x8975('0x5f')],_0x685982[_0x8975('0x52')][_0x8975('0x5c')]);return db[_0x8975('0x55')][_0x8975('0x51')](_0x685982[_0x8975('0x52')],{'include':[{'model':db[_0x8975('0x60')],'as':'Subjects'},{'model':db[_0x8975('0x60')],'as':_0x8975('0x5d')}]});}return null;})[_0x8975('0x1c')](respondWithResult(_0x25ee0b,null))[_0x8975('0x24')](handleError(_0x25ee0b,null));};exports[_0x8975('0x61')]=function(_0x1205b5,_0x2fed77,_0x546011){var _0x39743d='';var _0x420889=['id',_0x8975('0x34'),_0x8975('0x62'),_0x8975('0x63'),_0x8975('0x64'),_0x8975('0x65'),'duration_hours',_0x8975('0x66'),_0x8975('0x67'),_0x8975('0x68'),_0x8975('0x69'),_0x8975('0x6a')];return db[_0x8975('0x36')]['findOne']({'where':{'id':_0x1205b5[_0x8975('0x54')]['id']},'attributes':['id',_0x8975('0x6b'),_0x8975('0x6c'),_0x8975('0x6d')]})['then'](handleEntityNotFound(_0x2fed77,null))[_0x8975('0x1c')](function(_0x555fed){if(_0x555fed){_0x39743d=_0x555fed['remoteUri'];var _0x8d8ad=_0x39743d[_0x8975('0x6e')](-0x1);if(_0x8d8ad==='/'){_0x39743d=_0x39743d[_0x8975('0x6f')](0x0,_0x39743d[_0x8975('0x70')](_0x8d8ad));}return rp({'method':_0x8975('0x71'),'uri':util[_0x8975('0x72')](_0x8975('0x73'),_0x39743d,_0x8975('0x74')),'json':!![],'form':{'method':'login','input_type':_0x8975('0x75'),'response_type':'JSON','rest_data':JSON[_0x8975('0x1f')]({'user_auth':{'user_name':_0x555fed[_0x8975('0x6b')],'password':_0x555fed[_0x8975('0x6c')],'encryption':_0x8975('0x76')},'application':_0x8975('0x77')})}});}})[_0x8975('0x1c')](function(_0x329204){if(_0x329204&&_0x329204[_0x8975('0x34')]!=='Invalid\x20Login'&&_0x329204[_0x8975('0x34')]!=='Password\x20Expired'){return rp({'method':_0x8975('0x71'),'uri':util['format']('%s%s',_0x39743d,_0x8975('0x74')),'json':!![],'form':{'method':_0x8975('0x78'),'input_type':_0x8975('0x75'),'response_type':_0x8975('0x75'),'rest_data':JSON[_0x8975('0x1f')]({'session':_0x329204['id'],'module_name':'Calls'})}})[_0x8975('0x1c')](function(_0x443024){if(_0x443024){var _0xe297b3=_[_0x8975('0x79')](_0x443024[_0x8975('0x7a')]);_[_0x8975('0x7b')](_0xe297b3,function(_0x2b8829){return _0x420889[_0x8975('0x7c')](_0x2b8829['name']);});return{'count':_0xe297b3[_0x8975('0x40')],'rows':_[_0x8975('0x56')](_0xe297b3,function(_0x2a6c1d){return{'id':_0x2a6c1d[_0x8975('0x34')],'name':_0x2a6c1d[_0x8975('0x7d')],'custom':_['endsWith'](_0x2a6c1d[_0x8975('0x34')],'_c')?!![]:![],'options':_0x2a6c1d[_0x8975('0x49')]?_['map'](_[_0x8975('0x79')](_0x2a6c1d['options']),function(_0x2106e6){return{'name':_0x2106e6[_0x8975('0x7e')],'value':_0x2106e6[_0x8975('0x34')]};}):[]};})};}})[_0x8975('0x1c')](respondWithResult(_0x2fed77,null))[_0x8975('0x24')](function(_0x59f813){var _0x552de4=_0x1205b5[_0x8975('0x39')][_0x8975('0x18')]?0x1f4:_0x59f813['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x8975('0x61'),_0x552de4,JSON[_0x8975('0x1f')](_0x59f813));delete _0x59f813[_0x8975('0x34')];if(_0x552de4===0x191){_0x552de4=0x190;}_0x2fed77['status'](_0x552de4)['send'](_0x1205b5[_0x8975('0x39')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x59f813[_0x8975('0x7f')]}:_0x59f813);});}else{var _0x19ca73=0x1f4;_0x2fed77[_0x8975('0x26')](_0x19ca73)['send']({'message':'Wrong\x20credentials','statusCode':0x190});}});};