dfb646aff3a65b0fe6d08d1855a978b189c6f369
[motion2.git] / server / api / intDeskAccount / intDeskAccount.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 _0x972c=['fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','params','keys','find','create','body','destroy','getConfigurations','findOne','DeskConfiguration','order','addConfiguration','channel','Descriptions','getDescriptions','DeskField','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','tokenSecret','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','toString','concat','_embedded','entries','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','test','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','sendStatus','status','end','json','offset','limit','Content-Range','apply','update','name','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes'];(function(_0x370627,_0x2ba63d){var _0x391d54=function(_0x254205){while(--_0x254205){_0x370627['push'](_0x370627['shift']());}};_0x391d54(++_0x2ba63d);}(_0x972c,0x1aa));var _0xc972=function(_0x29ba76,_0x485cad){_0x29ba76=_0x29ba76-0x0;var _0xf92e6d=_0x972c[_0x29ba76];return _0xf92e6d;};'use strict';var pdf=require(_0xc972('0x0'));var emlformat=require(_0xc972('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xc972('0x2'));var jsonpatch=require(_0xc972('0x3'));var rp=require(_0xc972('0x4'));var moment=require(_0xc972('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc972('0x6'));var path=require(_0xc972('0x7'));var sox=require(_0xc972('0x8'));var csv=require(_0xc972('0x9'));var ejs=require(_0xc972('0xa'));var fs=require('fs');var _=require(_0xc972('0xb'));var squel=require(_0xc972('0xc'));var crypto=require(_0xc972('0xd'));var jsforce=require(_0xc972('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xc972('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xc972('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc972('0x11'))(_0xc972('0x12'));var utils=require(_0xc972('0x13'));var config=require(_0xc972('0x14'));var db=require(_0xc972('0x15'))['db'];var integrations=require(_0xc972('0x16'));var jayson=require(_0xc972('0x17'));var client=jayson[_0xc972('0x18')]['http']({'port':0x232a});function checkPasswordPattern(_0x5a7b44,_0xf98339,_0x578a74){if(_0x578a74){var _0x459b55=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x459b55[_0xc972('0x19')](_0xf98339)){return _0x5a7b44;}else{throw new db['Sequelize'][(_0xc972('0x1a'))](_0xc972('0x1b'));}}else{return _0x5a7b44;}}function respondWithRpcPromise(_0x1a381c,_0x5d527a,_0x24358f,_0x40ceb3){return new BPromise(function(_0x4b3713,_0x2592b7){var _0x429e41=_0x40ceb3||client;return _0x429e41[_0xc972('0x1c')](_0x1a381c,_0x24358f)[_0xc972('0x1d')](function(_0xcf8f59){logger[_0xc972('0x1e')](_0xc972('0x1f'),_0x5d527a,_0xc972('0x20'));logger[_0xc972('0x21')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x5d527a,'request\x20sent',JSON[_0xc972('0x22')](_0xcf8f59));if(_0xcf8f59[_0xc972('0x23')]){if(_0xcf8f59[_0xc972('0x23')][_0xc972('0x24')]===0x1f4){logger[_0xc972('0x23')](_0xc972('0x1f'),_0x5d527a,_0xcf8f59[_0xc972('0x23')][_0xc972('0x25')]);return _0x2592b7(_0xcf8f59['error'][_0xc972('0x25')]);}logger[_0xc972('0x23')]('DeskAccount,\x20%s,\x20%s',_0x5d527a,_0xcf8f59[_0xc972('0x23')][_0xc972('0x25')]);return _0x4b3713(_0xcf8f59[_0xc972('0x23')]['message']);}else{logger[_0xc972('0x1e')]('DeskAccount,\x20%s,\x20%s',_0x5d527a,_0xc972('0x20'));_0x4b3713(_0xcf8f59[_0xc972('0x26')][_0xc972('0x25')]);}})['catch'](function(_0xa52ed6){logger['error']('DeskAccount,\x20%s,\x20%s',_0x5d527a,_0xa52ed6);_0x2592b7(_0xa52ed6);});});}function respondWithStatusCode(_0x122132,_0x4090ee){_0x4090ee=_0x4090ee||0xcc;return function(_0xf6e763){if(_0xf6e763){return _0x122132[_0xc972('0x27')](_0x4090ee);}return _0x122132[_0xc972('0x28')](_0x4090ee)[_0xc972('0x29')]();};}function respondWithResult(_0x34d46c,_0xb7f3c2){_0xb7f3c2=_0xb7f3c2||0xc8;return function(_0x48e63f){if(_0x48e63f){return _0x34d46c[_0xc972('0x28')](_0xb7f3c2)[_0xc972('0x2a')](_0x48e63f);}};}function respondWithFilteredResult(_0x2ba166,_0x1eaa8d){return function(_0x5cebc6){if(_0x5cebc6){var _0x3f0639=_0x5cebc6['count'],_0x40e7ce=_0x1eaa8d[_0xc972('0x2b')],_0x3912e4=_0x1eaa8d[_0xc972('0x2b')]+_0x1eaa8d[_0xc972('0x2c')],_0x452c30;if(_0x3912e4>=_0x3f0639){_0x3912e4=_0x3f0639;_0x452c30=0xc8;}else{_0x452c30=0xce;}_0x2ba166[_0xc972('0x28')](_0x452c30);return _0x2ba166['set'](_0xc972('0x2d'),_0x40e7ce+'-'+_0x3912e4+'/'+_0x3f0639)['json'](_0x5cebc6);}return null;};}function patchUpdates(_0x217629){return function(_0x31460e){try{jsonpatch[_0xc972('0x2e')](_0x31460e,_0x217629,!![]);}catch(_0x306255){return BPromise['reject'](_0x306255);}return _0x31460e['save']();};}function saveUpdates(_0x1d6673,_0x22d5a1){return function(_0x3afa9d){if(_0x3afa9d){return _0x3afa9d[_0xc972('0x2f')](_0x1d6673)[_0xc972('0x1d')](function(_0x3d0fe2){return _0x3d0fe2;});}return null;};}function removeEntity(_0x22bde4,_0xf7302d){return function(_0x46ddec){if(_0x46ddec){return _0x46ddec['destroy']()[_0xc972('0x1d')](function(){_0x22bde4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x506245,_0xe9b89a){return function(_0x5b0849){if(!_0x5b0849){_0x506245[_0xc972('0x27')](0x194);}return _0x5b0849;};}function handleError(_0x45f385,_0x176093){_0x176093=_0x176093||0x1f4;return function(_0x442300){logger['error'](_0x442300['stack']);if(_0x442300[_0xc972('0x30')]){delete _0x442300['name'];}_0x45f385['status'](_0x176093)[_0xc972('0x31')](_0x442300);};}exports[_0xc972('0x32')]=function(_0x1fc58c,_0x2dded0){var _0x3b339b={},_0x557d4d={},_0x52b733={'count':0x0,'rows':[]};var _0x5c06ad=_[_0xc972('0x33')](db[_0xc972('0x34')][_0xc972('0x35')],function(_0x2357a9){return{'name':_0x2357a9[_0xc972('0x36')],'type':_0x2357a9[_0xc972('0x37')][_0xc972('0x38')]};});_0x557d4d[_0xc972('0x39')]=_['map'](_0x5c06ad,_0xc972('0x30'));_0x557d4d[_0xc972('0x3a')]=_['keys'](_0x1fc58c['query']);_0x557d4d[_0xc972('0x3b')]=_[_0xc972('0x3c')](_0x557d4d[_0xc972('0x39')],_0x557d4d[_0xc972('0x3a')]);_0x3b339b[_0xc972('0x3d')]=_[_0xc972('0x3c')](_0x557d4d[_0xc972('0x39')],qs[_0xc972('0x3e')](_0x1fc58c['query'][_0xc972('0x3e')]));_0x3b339b[_0xc972('0x3d')]=_0x3b339b['attributes'][_0xc972('0x3f')]?_0x3b339b[_0xc972('0x3d')]:_0x557d4d['model'];if(!_0x1fc58c[_0xc972('0x3a')][_0xc972('0x40')](_0xc972('0x41'))){_0x3b339b['limit']=qs[_0xc972('0x2c')](_0x1fc58c['query']['limit']);_0x3b339b['offset']=qs[_0xc972('0x2b')](_0x1fc58c[_0xc972('0x3a')][_0xc972('0x2b')]);}_0x3b339b['order']=qs[_0xc972('0x42')](_0x1fc58c['query'][_0xc972('0x42')]);_0x3b339b[_0xc972('0x43')]=qs[_0xc972('0x3b')](_[_0xc972('0x44')](_0x1fc58c[_0xc972('0x3a')],_0x557d4d['filters']),_0x5c06ad);if(_0x1fc58c[_0xc972('0x3a')][_0xc972('0x45')]){_0x3b339b[_0xc972('0x43')]=_[_0xc972('0x46')](_0x3b339b['where'],{'$or':_[_0xc972('0x33')](_0x5c06ad,function(_0xe4ac01){if(_0xe4ac01[_0xc972('0x37')]!==_0xc972('0x47')){var _0x42f488={};_0x42f488[_0xe4ac01[_0xc972('0x30')]]={'$like':'%'+_0x1fc58c[_0xc972('0x3a')][_0xc972('0x45')]+'%'};return _0x42f488;}})});}_0x3b339b=_['merge']({},_0x3b339b,_0x1fc58c[_0xc972('0x48')]);var _0x45265e={'where':_0x3b339b['where']};return db['DeskAccount'][_0xc972('0x49')](_0x45265e)[_0xc972('0x1d')](function(_0x649305){_0x52b733[_0xc972('0x49')]=_0x649305;if(_0x1fc58c['query'][_0xc972('0x4a')]){_0x3b339b[_0xc972('0x4b')]=[{'all':!![]}];}return db['DeskAccount'][_0xc972('0x4c')](_0x3b339b);})[_0xc972('0x1d')](function(_0x38913a){_0x52b733[_0xc972('0x4d')]=_0x38913a;return _0x52b733;})[_0xc972('0x1d')](respondWithFilteredResult(_0x2dded0,_0x3b339b))[_0xc972('0x4e')](handleError(_0x2dded0,null));};exports['show']=function(_0x2d48a5,_0x376a1a){var _0x2c40fb={'raw':![],'where':{'id':_0x2d48a5[_0xc972('0x4f')]['id']}},_0xc2c07a={};_0xc2c07a[_0xc972('0x39')]=_['keys'](db['DeskAccount'][_0xc972('0x35')]);_0xc2c07a[_0xc972('0x3a')]=_[_0xc972('0x50')](_0x2d48a5[_0xc972('0x3a')]);_0xc2c07a[_0xc972('0x3b')]=_[_0xc972('0x3c')](_0xc2c07a[_0xc972('0x39')],_0xc2c07a[_0xc972('0x3a')]);_0x2c40fb[_0xc972('0x3d')]=_['intersection'](_0xc2c07a[_0xc972('0x39')],qs[_0xc972('0x3e')](_0x2d48a5['query']['fields']));_0x2c40fb['attributes']=_0x2c40fb['attributes'][_0xc972('0x3f')]?_0x2c40fb[_0xc972('0x3d')]:_0xc2c07a[_0xc972('0x39')];if(_0x2d48a5[_0xc972('0x3a')][_0xc972('0x4a')]){_0x2c40fb[_0xc972('0x4b')]=[{'all':!![]}];}_0x2c40fb=_['merge']({},_0x2c40fb,_0x2d48a5['options']);return db[_0xc972('0x34')][_0xc972('0x51')](_0x2c40fb)[_0xc972('0x1d')](handleEntityNotFound(_0x376a1a,null))[_0xc972('0x1d')](respondWithResult(_0x376a1a,null))[_0xc972('0x4e')](handleError(_0x376a1a,null));};exports[_0xc972('0x52')]=function(_0x2f13c4,_0x339c15){return db[_0xc972('0x34')][_0xc972('0x52')](_0x2f13c4[_0xc972('0x53')],{})[_0xc972('0x1d')](respondWithResult(_0x339c15,0xc9))[_0xc972('0x4e')](handleError(_0x339c15,null));};exports['update']=function(_0x40a065,_0x40f36e){if(_0x40a065[_0xc972('0x53')]['id']){delete _0x40a065[_0xc972('0x53')]['id'];}return db[_0xc972('0x34')][_0xc972('0x51')]({'where':{'id':_0x40a065[_0xc972('0x4f')]['id']}})[_0xc972('0x1d')](handleEntityNotFound(_0x40f36e,null))[_0xc972('0x1d')](saveUpdates(_0x40a065[_0xc972('0x53')],null))['then'](respondWithResult(_0x40f36e,null))[_0xc972('0x4e')](handleError(_0x40f36e,null));};exports[_0xc972('0x54')]=function(_0x3abe5f,_0x19e80a){return db[_0xc972('0x34')][_0xc972('0x51')]({'where':{'id':_0x3abe5f[_0xc972('0x4f')]['id']}})[_0xc972('0x1d')](handleEntityNotFound(_0x19e80a,null))[_0xc972('0x1d')](removeEntity(_0x19e80a,null))[_0xc972('0x4e')](handleError(_0x19e80a,null));};exports[_0xc972('0x55')]=function(_0x32fd04,_0x3d3638,_0x20b6a0){var _0x1d5607={};var _0x4766f9={};var _0x366c50;var _0x16b22b;return db[_0xc972('0x34')][_0xc972('0x56')]({'where':{'id':_0x32fd04[_0xc972('0x4f')]['id']}})[_0xc972('0x1d')](handleEntityNotFound(_0x3d3638,null))[_0xc972('0x1d')](function(_0x5d345e){if(_0x5d345e){_0x366c50=_0x5d345e;_0x4766f9['model']=_['keys'](db[_0xc972('0x57')][_0xc972('0x35')]);_0x4766f9[_0xc972('0x3a')]=_[_0xc972('0x50')](_0x32fd04[_0xc972('0x3a')]);_0x4766f9[_0xc972('0x3b')]=_['intersection'](_0x4766f9[_0xc972('0x39')],_0x4766f9[_0xc972('0x3a')]);_0x1d5607[_0xc972('0x3d')]=_['intersection'](_0x4766f9[_0xc972('0x39')],qs[_0xc972('0x3e')](_0x32fd04[_0xc972('0x3a')][_0xc972('0x3e')]));_0x1d5607['attributes']=_0x1d5607['attributes'][_0xc972('0x3f')]?_0x1d5607[_0xc972('0x3d')]:_0x4766f9[_0xc972('0x39')];_0x1d5607[_0xc972('0x58')]=qs[_0xc972('0x42')](_0x32fd04[_0xc972('0x3a')][_0xc972('0x42')]);_0x1d5607[_0xc972('0x43')]=qs[_0xc972('0x3b')](_[_0xc972('0x44')](_0x32fd04[_0xc972('0x3a')],_0x4766f9[_0xc972('0x3b')]));if(_0x32fd04['query'][_0xc972('0x45')]){_0x1d5607[_0xc972('0x43')]=_[_0xc972('0x46')](_0x1d5607[_0xc972('0x43')],{'$or':_[_0xc972('0x33')](_0x1d5607[_0xc972('0x3d')],function(_0x1e022c){var _0x333e9b={};_0x333e9b[_0x1e022c]={'$like':'%'+_0x32fd04[_0xc972('0x3a')][_0xc972('0x45')]+'%'};return _0x333e9b;})});}_0x1d5607=_[_0xc972('0x46')]({},_0x1d5607,_0x32fd04[_0xc972('0x48')]);return _0x366c50['getConfigurations'](_0x1d5607);}})['then'](function(_0x4fdaaa){if(_0x4fdaaa){_0x16b22b=_0x4fdaaa[_0xc972('0x3f')];if(!_0x32fd04[_0xc972('0x3a')]['hasOwnProperty'](_0xc972('0x41'))){_0x1d5607[_0xc972('0x2c')]=qs['limit'](_0x32fd04['query']['limit']);_0x1d5607[_0xc972('0x2b')]=qs[_0xc972('0x2b')](_0x32fd04[_0xc972('0x3a')][_0xc972('0x2b')]);}return _0x366c50[_0xc972('0x55')](_0x1d5607);}})[_0xc972('0x1d')](function(_0x46a16a){if(_0x46a16a){return _0x46a16a?{'count':_0x16b22b,'rows':_0x46a16a}:null;}})[_0xc972('0x1d')](respondWithResult(_0x3d3638,null))[_0xc972('0x4e')](handleError(_0x3d3638,null));};exports[_0xc972('0x59')]=function(_0x107606,_0x5e6d38,_0x54cbc0){if(_0x107606[_0xc972('0x53')]['id']){delete _0x107606['body']['id'];}return db['DeskAccount'][_0xc972('0x56')]({'where':{'id':_0x107606['params']['id']}})[_0xc972('0x1d')](handleEntityNotFound(_0x5e6d38,null))[_0xc972('0x1d')](function(_0x558e5e){if(_0x558e5e){_0x107606[_0xc972('0x53')]['AccountId']=_0x558e5e['id'];_0x107606[_0xc972('0x53')]['Subjects']=integrations['getSubjects'](_0x107606['body'][_0xc972('0x5a')],_0x107606['body'][_0xc972('0x37')]);_0x107606['body'][_0xc972('0x5b')]=integrations[_0xc972('0x5c')](_0x107606[_0xc972('0x53')]['channel'],_0x107606['body'][_0xc972('0x37')]);return db[_0xc972('0x57')]['create'](_0x107606[_0xc972('0x53')],{'include':[{'model':db[_0xc972('0x5d')],'as':'Subjects'},{'model':db[_0xc972('0x5d')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x5e6d38,null))[_0xc972('0x4e')](handleError(_0x5e6d38,null));};exports['getFields']=function(_0x55a72f,_0x39b5fb,_0x232e5f){var _0x16b80b=[{'name':'priority','label':_0xc972('0x5e'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x20e5b8='';return db[_0xc972('0x34')][_0xc972('0x56')]({'where':{'id':_0x55a72f[_0xc972('0x4f')]['id']},'attributes':['id',_0xc972('0x5f'),_0xc972('0x60'),_0xc972('0x61'),_0xc972('0x62'),_0xc972('0x63'),_0xc972('0x64'),'token',_0xc972('0x65')]})[_0xc972('0x1d')](handleEntityNotFound(_0x39b5fb,null))['then'](function(_0x105983){if(_0x105983){_0x20e5b8=_0x105983[_0xc972('0x5f')];var _0x36102c=_0x20e5b8['slice'](-0x1);if(_0x36102c==='/'){_0x20e5b8=_0x20e5b8[_0xc972('0x66')](0x0,_0x20e5b8[_0xc972('0x67')](_0x36102c));}var _0x1543f6={'method':_0xc972('0x68'),'uri':util[_0xc972('0x69')](_0xc972('0x6a'),_0x20e5b8),'headers':{'Content-Type':_0xc972('0x6b'),'Accept':_0xc972('0x6b')},'json':!![]};if(_0x105983['authType']===_0xc972('0x6c')){_0x1543f6[_0xc972('0x6d')][_0xc972('0x6e')]=util[_0xc972('0x69')](_0xc972('0x6f'),new Buffer(util[_0xc972('0x69')](_0xc972('0x70'),_0x105983['username'],_0x105983[_0xc972('0x62')]))[_0xc972('0x71')]('base64'));}return rp(_0x1543f6)[_0xc972('0x1d')](function(_0xfdf72e){return _0x16b80b[_0xc972('0x72')](_[_0xc972('0x33')](_0xfdf72e[_0xc972('0x73')][_0xc972('0x74')],function(_0x3bd29e){return{'id':_0x3bd29e[_0xc972('0x30')],'name':_0x3bd29e[_0xc972('0x30')],'type':_0x3bd29e[_0xc972('0x37')],'active':_0x3bd29e['active'],'label':_0x3bd29e[_0xc972('0x75')],'custom':!![]};}));});}})[_0xc972('0x1d')](function(_0xfac61c){return{'count':_0xfac61c[_0xc972('0x3f')],'rows':_0xfac61c};})[_0xc972('0x1d')](respondWithResult(_0x39b5fb,null))['catch'](function(_0x2da132){var _0x192336=_0x55a72f[_0xc972('0x3a')]['test']?0x1f4:_0x2da132[_0xc972('0x76')]||0x1f4;logger['error'](_0xc972('0x77'),_0xc972('0x78'),_0x192336,JSON[_0xc972('0x22')](_0x2da132));delete _0x2da132[_0xc972('0x30')];if(_0x192336===0x191){_0x192336=0x190;}_0x39b5fb[_0xc972('0x28')](_0x192336)[_0xc972('0x31')](_0x55a72f[_0xc972('0x3a')][_0xc972('0x19')]?{'message':_0xc972('0x79'),'statusCode':_0x2da132[_0xc972('0x76')]}:_0x2da132);});};