Built motion from commit (unavailable).|2.5.17
[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 _0xd55a=['DeskConfiguration','DeskField','Subjects','getFields','priority','remoteUri','authType','username','password','consumerSecret','token','tokenSecret','GET','format','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','toString','base64','concat','entries','active','label','test','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','statusCode','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../components/integrations/configuration','jayson/promise','client','then','info','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','DeskAccount,\x20%s,\x20%s','message','catch','sendStatus','status','count','offset','limit','set','Content-Range','apply','reject','destroy','end','stack','name','send','index','DeskAccount','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','VIRTUAL','merge','options','includeAll','findAll','rows','params','find','create','body','update','getConfigurations','findOne','pick','addConfiguration','AccountId','getSubjects','channel','Descriptions'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0xd55a,0x180));var _0xad55=function(_0x38edc5,_0x10915e){_0x38edc5=_0x38edc5-0x0;var _0x4e5614=_0xd55a[_0x38edc5];return _0x4e5614;};'use strict';var pdf=require(_0xad55('0x0'));var emlformat=require(_0xad55('0x1'));var rimraf=require(_0xad55('0x2'));var zipdir=require(_0xad55('0x3'));var jsonpatch=require(_0xad55('0x4'));var rp=require('request-promise');var moment=require(_0xad55('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xad55('0x6'));var util=require('util');var path=require(_0xad55('0x7'));var sox=require(_0xad55('0x8'));var csv=require(_0xad55('0x9'));var ejs=require(_0xad55('0xa'));var fs=require('fs');var _=require(_0xad55('0xb'));var squel=require(_0xad55('0xc'));var crypto=require(_0xad55('0xd'));var jsforce=require(_0xad55('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xad55('0x9'));var querystring=require(_0xad55('0xf'));var Papa=require('papaparse');var Redis=require(_0xad55('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xad55('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xad55('0x12'))(_0xad55('0x13'));var utils=require('../../config/utils');var config=require(_0xad55('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xad55('0x15'));var jayson=require(_0xad55('0x16'));var client=jayson[_0xad55('0x17')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1f1f14,_0x516f72,_0x1a6ee8,_0x365f86){return new BPromise(function(_0x58bd2f,_0x3dd9e6){var _0x330577=_0x365f86||client;return _0x330577['request'](_0x1f1f14,_0x1a6ee8)[_0xad55('0x18')](function(_0x1f9f12){logger[_0xad55('0x19')]('DeskAccount,\x20%s,\x20%s',_0x516f72,_0xad55('0x1a'));logger[_0xad55('0x1b')](_0xad55('0x1c'),_0x516f72,_0xad55('0x1a'),JSON[_0xad55('0x1d')](_0x1f9f12));if(_0x1f9f12[_0xad55('0x1e')]){if(_0x1f9f12['error']['code']===0x1f4){logger[_0xad55('0x1e')](_0xad55('0x1f'),_0x516f72,_0x1f9f12[_0xad55('0x1e')][_0xad55('0x20')]);return _0x3dd9e6(_0x1f9f12[_0xad55('0x1e')][_0xad55('0x20')]);}logger[_0xad55('0x1e')](_0xad55('0x1f'),_0x516f72,_0x1f9f12['error'][_0xad55('0x20')]);return _0x58bd2f(_0x1f9f12['error'][_0xad55('0x20')]);}else{logger[_0xad55('0x19')](_0xad55('0x1f'),_0x516f72,_0xad55('0x1a'));_0x58bd2f(_0x1f9f12['result'][_0xad55('0x20')]);}})[_0xad55('0x21')](function(_0x5736bc){logger[_0xad55('0x1e')]('DeskAccount,\x20%s,\x20%s',_0x516f72,_0x5736bc);_0x3dd9e6(_0x5736bc);});});}function respondWithStatusCode(_0x3d04f9,_0x348838){_0x348838=_0x348838||0xcc;return function(_0xbcb20d){if(_0xbcb20d){return _0x3d04f9[_0xad55('0x22')](_0x348838);}return _0x3d04f9[_0xad55('0x23')](_0x348838)['end']();};}function respondWithResult(_0x20bef1,_0x13ce2e){_0x13ce2e=_0x13ce2e||0xc8;return function(_0x3ffc0a){if(_0x3ffc0a){return _0x20bef1[_0xad55('0x23')](_0x13ce2e)['json'](_0x3ffc0a);}};}function respondWithFilteredResult(_0x28dbd8,_0x68faac){return function(_0x2b4c9b){if(_0x2b4c9b){var _0x2fbad6=_0x2b4c9b[_0xad55('0x24')],_0x35ded8=_0x68faac['offset'],_0x1d629c=_0x68faac[_0xad55('0x25')]+_0x68faac[_0xad55('0x26')],_0x203359;if(_0x1d629c>=_0x2fbad6){_0x1d629c=_0x2fbad6;_0x203359=0xc8;}else{_0x203359=0xce;}_0x28dbd8[_0xad55('0x23')](_0x203359);return _0x28dbd8[_0xad55('0x27')](_0xad55('0x28'),_0x35ded8+'-'+_0x1d629c+'/'+_0x2fbad6)['json'](_0x2b4c9b);}return null;};}function patchUpdates(_0x2d4cf0){return function(_0x561737){try{jsonpatch[_0xad55('0x29')](_0x561737,_0x2d4cf0,!![]);}catch(_0x57ce0d){return BPromise[_0xad55('0x2a')](_0x57ce0d);}return _0x561737['save']();};}function saveUpdates(_0x204f61,_0x36d701){return function(_0x1365c8){if(_0x1365c8){return _0x1365c8['update'](_0x204f61)[_0xad55('0x18')](function(_0x196c28){return _0x196c28;});}return null;};}function removeEntity(_0xf95a25,_0x4edbc0){return function(_0x9d91df){if(_0x9d91df){return _0x9d91df[_0xad55('0x2b')]()['then'](function(){_0xf95a25['status'](0xcc)[_0xad55('0x2c')]();});}};}function handleEntityNotFound(_0x321919,_0x48de4a){return function(_0x2d05a5){if(!_0x2d05a5){_0x321919[_0xad55('0x22')](0x194);}return _0x2d05a5;};}function handleError(_0x2fc702,_0x57e048){_0x57e048=_0x57e048||0x1f4;return function(_0x58c1ae){logger[_0xad55('0x1e')](_0x58c1ae[_0xad55('0x2d')]);if(_0x58c1ae[_0xad55('0x2e')]){delete _0x58c1ae[_0xad55('0x2e')];}_0x2fc702[_0xad55('0x23')](_0x57e048)[_0xad55('0x2f')](_0x58c1ae);};}exports[_0xad55('0x30')]=function(_0x109236,_0x1521e7){var _0x140b8e={},_0x19551a={},_0x1af8a1={'count':0x0,'rows':[]};var _0x8f3018=_['map'](db[_0xad55('0x31')][_0xad55('0x32')],function(_0x45178a){return{'name':_0x45178a[_0xad55('0x33')],'type':_0x45178a[_0xad55('0x34')][_0xad55('0x35')]};});_0x19551a[_0xad55('0x36')]=_[_0xad55('0x37')](_0x8f3018,_0xad55('0x2e'));_0x19551a[_0xad55('0x38')]=_[_0xad55('0x39')](_0x109236[_0xad55('0x38')]);_0x19551a[_0xad55('0x3a')]=_[_0xad55('0x3b')](_0x19551a[_0xad55('0x36')],_0x19551a[_0xad55('0x38')]);_0x140b8e[_0xad55('0x3c')]=_[_0xad55('0x3b')](_0x19551a['model'],qs[_0xad55('0x3d')](_0x109236['query'][_0xad55('0x3d')]));_0x140b8e[_0xad55('0x3c')]=_0x140b8e[_0xad55('0x3c')][_0xad55('0x3e')]?_0x140b8e['attributes']:_0x19551a[_0xad55('0x36')];if(!_0x109236[_0xad55('0x38')][_0xad55('0x3f')](_0xad55('0x40'))){_0x140b8e[_0xad55('0x26')]=qs[_0xad55('0x26')](_0x109236['query'][_0xad55('0x26')]);_0x140b8e[_0xad55('0x25')]=qs[_0xad55('0x25')](_0x109236['query']['offset']);}_0x140b8e[_0xad55('0x41')]=qs[_0xad55('0x42')](_0x109236[_0xad55('0x38')][_0xad55('0x42')]);_0x140b8e['where']=qs[_0xad55('0x3a')](_['pick'](_0x109236[_0xad55('0x38')],_0x19551a[_0xad55('0x3a')]),_0x8f3018);if(_0x109236[_0xad55('0x38')][_0xad55('0x43')]){_0x140b8e[_0xad55('0x44')]=_['merge'](_0x140b8e[_0xad55('0x44')],{'$or':_[_0xad55('0x37')](_0x8f3018,function(_0xae1064){if(_0xae1064['type']!==_0xad55('0x45')){var _0x15921e={};_0x15921e[_0xae1064[_0xad55('0x2e')]]={'$like':'%'+_0x109236['query'][_0xad55('0x43')]+'%'};return _0x15921e;}})});}_0x140b8e=_[_0xad55('0x46')]({},_0x140b8e,_0x109236[_0xad55('0x47')]);var _0x1fb79a={'where':_0x140b8e[_0xad55('0x44')]};return db['DeskAccount'][_0xad55('0x24')](_0x1fb79a)['then'](function(_0x49cf05){_0x1af8a1['count']=_0x49cf05;if(_0x109236[_0xad55('0x38')][_0xad55('0x48')]){_0x140b8e['include']=[{'all':!![]}];}return db[_0xad55('0x31')][_0xad55('0x49')](_0x140b8e);})[_0xad55('0x18')](function(_0x26f7a2){_0x1af8a1[_0xad55('0x4a')]=_0x26f7a2;return _0x1af8a1;})['then'](respondWithFilteredResult(_0x1521e7,_0x140b8e))[_0xad55('0x21')](handleError(_0x1521e7,null));};exports['show']=function(_0x4f5160,_0x3ee848){var _0x256a46={'raw':![],'where':{'id':_0x4f5160[_0xad55('0x4b')]['id']}},_0x3cad67={};_0x3cad67['model']=_['keys'](db[_0xad55('0x31')][_0xad55('0x32')]);_0x3cad67['query']=_[_0xad55('0x39')](_0x4f5160[_0xad55('0x38')]);_0x3cad67['filters']=_[_0xad55('0x3b')](_0x3cad67[_0xad55('0x36')],_0x3cad67['query']);_0x256a46[_0xad55('0x3c')]=_[_0xad55('0x3b')](_0x3cad67[_0xad55('0x36')],qs[_0xad55('0x3d')](_0x4f5160[_0xad55('0x38')][_0xad55('0x3d')]));_0x256a46[_0xad55('0x3c')]=_0x256a46[_0xad55('0x3c')][_0xad55('0x3e')]?_0x256a46['attributes']:_0x3cad67[_0xad55('0x36')];if(_0x4f5160[_0xad55('0x38')]['includeAll']){_0x256a46['include']=[{'all':!![]}];}_0x256a46=_[_0xad55('0x46')]({},_0x256a46,_0x4f5160[_0xad55('0x47')]);return db[_0xad55('0x31')][_0xad55('0x4c')](_0x256a46)['then'](handleEntityNotFound(_0x3ee848,null))[_0xad55('0x18')](respondWithResult(_0x3ee848,null))['catch'](handleError(_0x3ee848,null));};exports['create']=function(_0xeaa66c,_0xf1a7af){return db[_0xad55('0x31')][_0xad55('0x4d')](_0xeaa66c[_0xad55('0x4e')],{})[_0xad55('0x18')](respondWithResult(_0xf1a7af,0xc9))[_0xad55('0x21')](handleError(_0xf1a7af,null));};exports[_0xad55('0x4f')]=function(_0x328775,_0x45fb72){if(_0x328775[_0xad55('0x4e')]['id']){delete _0x328775['body']['id'];}return db['DeskAccount']['find']({'where':{'id':_0x328775['params']['id']}})[_0xad55('0x18')](handleEntityNotFound(_0x45fb72,null))[_0xad55('0x18')](saveUpdates(_0x328775[_0xad55('0x4e')],null))[_0xad55('0x18')](respondWithResult(_0x45fb72,null))[_0xad55('0x21')](handleError(_0x45fb72,null));};exports[_0xad55('0x2b')]=function(_0x24dd3d,_0x3ddcd2){return db['DeskAccount'][_0xad55('0x4c')]({'where':{'id':_0x24dd3d[_0xad55('0x4b')]['id']}})[_0xad55('0x18')](handleEntityNotFound(_0x3ddcd2,null))[_0xad55('0x18')](removeEntity(_0x3ddcd2,null))['catch'](handleError(_0x3ddcd2,null));};exports[_0xad55('0x50')]=function(_0x425089,_0x1f3fc7,_0x25cf80){var _0x2c161f={};var _0x5ea5d7={};var _0x59cccb;var _0x23d2bd;return db[_0xad55('0x31')][_0xad55('0x51')]({'where':{'id':_0x425089[_0xad55('0x4b')]['id']}})[_0xad55('0x18')](handleEntityNotFound(_0x1f3fc7,null))['then'](function(_0x5b2194){if(_0x5b2194){_0x59cccb=_0x5b2194;_0x5ea5d7[_0xad55('0x36')]=_[_0xad55('0x39')](db['DeskConfiguration']['rawAttributes']);_0x5ea5d7[_0xad55('0x38')]=_['keys'](_0x425089[_0xad55('0x38')]);_0x5ea5d7[_0xad55('0x3a')]=_[_0xad55('0x3b')](_0x5ea5d7[_0xad55('0x36')],_0x5ea5d7['query']);_0x2c161f[_0xad55('0x3c')]=_['intersection'](_0x5ea5d7[_0xad55('0x36')],qs[_0xad55('0x3d')](_0x425089[_0xad55('0x38')][_0xad55('0x3d')]));_0x2c161f[_0xad55('0x3c')]=_0x2c161f[_0xad55('0x3c')]['length']?_0x2c161f[_0xad55('0x3c')]:_0x5ea5d7[_0xad55('0x36')];_0x2c161f[_0xad55('0x41')]=qs[_0xad55('0x42')](_0x425089[_0xad55('0x38')][_0xad55('0x42')]);_0x2c161f['where']=qs[_0xad55('0x3a')](_[_0xad55('0x52')](_0x425089[_0xad55('0x38')],_0x5ea5d7[_0xad55('0x3a')]));if(_0x425089[_0xad55('0x38')]['filter']){_0x2c161f[_0xad55('0x44')]=_['merge'](_0x2c161f[_0xad55('0x44')],{'$or':_[_0xad55('0x37')](_0x2c161f[_0xad55('0x3c')],function(_0x5b6f8f){var _0x21a63a={};_0x21a63a[_0x5b6f8f]={'$like':'%'+_0x425089[_0xad55('0x38')][_0xad55('0x43')]+'%'};return _0x21a63a;})});}_0x2c161f=_[_0xad55('0x46')]({},_0x2c161f,_0x425089['options']);return _0x59cccb[_0xad55('0x50')](_0x2c161f);}})['then'](function(_0x201857){if(_0x201857){_0x23d2bd=_0x201857[_0xad55('0x3e')];if(!_0x425089[_0xad55('0x38')]['hasOwnProperty']('nolimit')){_0x2c161f[_0xad55('0x26')]=qs[_0xad55('0x26')](_0x425089['query']['limit']);_0x2c161f['offset']=qs['offset'](_0x425089['query']['offset']);}return _0x59cccb[_0xad55('0x50')](_0x2c161f);}})['then'](function(_0x313aae){if(_0x313aae){return _0x313aae?{'count':_0x23d2bd,'rows':_0x313aae}:null;}})[_0xad55('0x18')](respondWithResult(_0x1f3fc7,null))[_0xad55('0x21')](handleError(_0x1f3fc7,null));};exports[_0xad55('0x53')]=function(_0x105284,_0x2bcdc5,_0x2af92e){if(_0x105284[_0xad55('0x4e')]['id']){delete _0x105284[_0xad55('0x4e')]['id'];}return db[_0xad55('0x31')][_0xad55('0x51')]({'where':{'id':_0x105284['params']['id']}})[_0xad55('0x18')](handleEntityNotFound(_0x2bcdc5,null))[_0xad55('0x18')](function(_0x590c16){if(_0x590c16){_0x105284[_0xad55('0x4e')][_0xad55('0x54')]=_0x590c16['id'];_0x105284[_0xad55('0x4e')]['Subjects']=integrations[_0xad55('0x55')](_0x105284[_0xad55('0x4e')][_0xad55('0x56')],_0x105284[_0xad55('0x4e')][_0xad55('0x34')]);_0x105284[_0xad55('0x4e')][_0xad55('0x57')]=integrations['getDescriptions'](_0x105284[_0xad55('0x4e')][_0xad55('0x56')],_0x105284[_0xad55('0x4e')]['type']);return db[_0xad55('0x58')][_0xad55('0x4d')](_0x105284['body'],{'include':[{'model':db[_0xad55('0x59')],'as':_0xad55('0x5a')},{'model':db[_0xad55('0x59')],'as':_0xad55('0x57')}]});}return null;})['then'](respondWithResult(_0x2bcdc5,null))['catch'](handleError(_0x2bcdc5,null));};exports[_0xad55('0x5b')]=function(_0x224562,_0x5da4fa,_0x5dd404){var _0x1e92a3=[{'name':'priority','label':_0xad55('0x5c'),'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 _0x26c300='';return db['DeskAccount'][_0xad55('0x51')]({'where':{'id':_0x224562['params']['id']},'attributes':['id',_0xad55('0x5d'),_0xad55('0x5e'),_0xad55('0x5f'),_0xad55('0x60'),'consumerKey',_0xad55('0x61'),_0xad55('0x62'),_0xad55('0x63')]})[_0xad55('0x18')](handleEntityNotFound(_0x5da4fa,null))[_0xad55('0x18')](function(_0x59066a){if(_0x59066a){_0x26c300=_0x59066a[_0xad55('0x5d')];var _0x2eaa59=_0x26c300['slice'](-0x1);if(_0x2eaa59==='/'){_0x26c300=_0x26c300['substring'](0x0,_0x26c300['lastIndexOf'](_0x2eaa59));}var _0x203862={'method':_0xad55('0x64'),'uri':util[_0xad55('0x65')]('%s/custom_fields',_0x26c300),'headers':{'Content-Type':_0xad55('0x66'),'Accept':_0xad55('0x66')},'json':!![]};if(_0x59066a[_0xad55('0x5e')]===_0xad55('0x67')){_0x203862[_0xad55('0x68')][_0xad55('0x69')]=util[_0xad55('0x65')](_0xad55('0x6a'),new Buffer(util['format'](_0xad55('0x6b'),_0x59066a[_0xad55('0x5f')],_0x59066a[_0xad55('0x60')]))[_0xad55('0x6c')](_0xad55('0x6d')));}return rp(_0x203862)[_0xad55('0x18')](function(_0x1c5291){return _0x1e92a3[_0xad55('0x6e')](_[_0xad55('0x37')](_0x1c5291['_embedded'][_0xad55('0x6f')],function(_0x325e89){return{'id':_0x325e89[_0xad55('0x2e')],'name':_0x325e89[_0xad55('0x2e')],'type':_0x325e89[_0xad55('0x34')],'active':_0x325e89[_0xad55('0x70')],'label':_0x325e89[_0xad55('0x71')],'custom':!![]};}));});}})[_0xad55('0x18')](function(_0x5b736b){return{'count':_0x5b736b[_0xad55('0x3e')],'rows':_0x5b736b};})[_0xad55('0x18')](respondWithResult(_0x5da4fa,null))['catch'](function(_0x1a0a00){var _0x2fc35e=_0x224562[_0xad55('0x38')][_0xad55('0x72')]?0x1f4:_0x1a0a00['statusCode']||0x1f4;logger['error'](_0xad55('0x73'),_0xad55('0x5b'),_0x2fc35e,JSON[_0xad55('0x1d')](_0x1a0a00));delete _0x1a0a00['name'];if(_0x2fc35e===0x191){_0x2fc35e=0x190;}_0x5da4fa[_0xad55('0x23')](_0x2fc35e)[_0xad55('0x2f')](_0x224562[_0xad55('0x38')][_0xad55('0x72')]?{'message':_0xad55('0x74'),'statusCode':_0x1a0a00[_0xad55('0x75')]}:_0x1a0a00);});};