bff191d7e50d63418eeb8c848fc1965e00f80091
[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 _0x8d90=['query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','include','findAll','rows','params','includeAll','find','create','body','getConfigurations','findOne','DeskConfiguration','rawAttributes','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','username','consumerSecret','token','tokenSecret','substring','GET','format','%s/custom_fields','application/json','authType','basic','headers','Authorization','Basic\x20%s','toString','base64','_embedded','entries','active','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','offset','set','Content-Range','reject','save','update','destroy','stack','name','send','index','map','DeskAccount','type','key'];(function(_0x482815,_0x3601b1){var _0x272d11=function(_0x414e63){while(--_0x414e63){_0x482815['push'](_0x482815['shift']());}};_0x272d11(++_0x3601b1);}(_0x8d90,0x1b3));var _0x08d9=function(_0x47cf44,_0x4bb1bb){_0x47cf44=_0x47cf44-0x0;var _0x266445=_0x8d90[_0x47cf44];return _0x266445;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x08d9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x08d9('0x1'));var jsonpatch=require(_0x08d9('0x2'));var rp=require(_0x08d9('0x3'));var moment=require(_0x08d9('0x4'));var BPromise=require(_0x08d9('0x5'));var Mustache=require(_0x08d9('0x6'));var util=require('util');var path=require(_0x08d9('0x7'));var sox=require(_0x08d9('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x08d9('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x08d9('0xa'));var toCsv=require(_0x08d9('0xb'));var querystring=require(_0x08d9('0xc'));var Papa=require(_0x08d9('0xd'));var Redis=require(_0x08d9('0xe'));var authService=require(_0x08d9('0xf'));var qs=require(_0x08d9('0x10'));var as=require(_0x08d9('0x11'));var hardwareService=require(_0x08d9('0x12'));var logger=require(_0x08d9('0x13'))('api');var utils=require(_0x08d9('0x14'));var config=require(_0x08d9('0x15'));var licenseUtil=require(_0x08d9('0x16'));var db=require(_0x08d9('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x08d9('0x18'));var client=jayson[_0x08d9('0x19')][_0x08d9('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x49f254,_0x3df8ec,_0x5b1f2e,_0x2e2e30){return new BPromise(function(_0x411c57,_0x2eb95b){var _0x228040=_0x2e2e30||client;return _0x228040[_0x08d9('0x1b')](_0x49f254,_0x5b1f2e)[_0x08d9('0x1c')](function(_0x3c37b2){logger['info'](_0x08d9('0x1d'),_0x3df8ec,_0x08d9('0x1e'));logger[_0x08d9('0x1f')](_0x08d9('0x20'),_0x3df8ec,'request\x20sent',JSON[_0x08d9('0x21')](_0x3c37b2));if(_0x3c37b2['error']){if(_0x3c37b2['error']['code']===0x1f4){logger[_0x08d9('0x22')](_0x08d9('0x1d'),_0x3df8ec,_0x3c37b2['error'][_0x08d9('0x23')]);return _0x2eb95b(_0x3c37b2[_0x08d9('0x22')][_0x08d9('0x23')]);}logger[_0x08d9('0x22')](_0x08d9('0x1d'),_0x3df8ec,_0x3c37b2[_0x08d9('0x22')][_0x08d9('0x23')]);return _0x411c57(_0x3c37b2['error'][_0x08d9('0x23')]);}else{logger['info'](_0x08d9('0x1d'),_0x3df8ec,_0x08d9('0x1e'));_0x411c57(_0x3c37b2[_0x08d9('0x24')]['message']);}})[_0x08d9('0x25')](function(_0x56f539){logger[_0x08d9('0x22')](_0x08d9('0x1d'),_0x3df8ec,_0x56f539);_0x2eb95b(_0x56f539);});});}function respondWithStatusCode(_0x5cb337,_0x4991b9){_0x4991b9=_0x4991b9||0xcc;return function(_0x41f9ad){if(_0x41f9ad){return _0x5cb337[_0x08d9('0x26')](_0x4991b9);}return _0x5cb337[_0x08d9('0x27')](_0x4991b9)[_0x08d9('0x28')]();};}function respondWithResult(_0x1bbbf9,_0x4a2251){_0x4a2251=_0x4a2251||0xc8;return function(_0x584640){if(_0x584640){return _0x1bbbf9['status'](_0x4a2251)[_0x08d9('0x29')](_0x584640);}};}function respondWithFilteredResult(_0x47492f,_0x57cfee){return function(_0x48a5c2){if(_0x48a5c2){var _0x3b3b48=_0x48a5c2['count'],_0xa84c=_0x57cfee[_0x08d9('0x2a')],_0x40d562=_0x57cfee[_0x08d9('0x2a')]+_0x57cfee['limit'],_0x29c550;if(_0x40d562>=_0x3b3b48){_0x40d562=_0x3b3b48;_0x29c550=0xc8;}else{_0x29c550=0xce;}_0x47492f[_0x08d9('0x27')](_0x29c550);return _0x47492f[_0x08d9('0x2b')](_0x08d9('0x2c'),_0xa84c+'-'+_0x40d562+'/'+_0x3b3b48)[_0x08d9('0x29')](_0x48a5c2);}return null;};}function patchUpdates(_0x5b4cf1){return function(_0x4e29b6){try{jsonpatch['apply'](_0x4e29b6,_0x5b4cf1,!![]);}catch(_0x92f575){return BPromise[_0x08d9('0x2d')](_0x92f575);}return _0x4e29b6[_0x08d9('0x2e')]();};}function saveUpdates(_0x2c891d,_0x3aaaa4){return function(_0xe567b7){if(_0xe567b7){return _0xe567b7[_0x08d9('0x2f')](_0x2c891d)[_0x08d9('0x1c')](function(_0x31ba8b){return _0x31ba8b;});}return null;};}function removeEntity(_0x3f4f29,_0x2572d8){return function(_0x235e8d){if(_0x235e8d){return _0x235e8d[_0x08d9('0x30')]()[_0x08d9('0x1c')](function(){_0x3f4f29['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x12389c,_0x1143e9){return function(_0xd5e66b){if(!_0xd5e66b){_0x12389c[_0x08d9('0x26')](0x194);}return _0xd5e66b;};}function handleError(_0x3c25ef,_0x3f6f32){_0x3f6f32=_0x3f6f32||0x1f4;return function(_0x1d4e0b){logger[_0x08d9('0x22')](_0x1d4e0b[_0x08d9('0x31')]);if(_0x1d4e0b[_0x08d9('0x32')]){delete _0x1d4e0b[_0x08d9('0x32')];}_0x3c25ef[_0x08d9('0x27')](_0x3f6f32)[_0x08d9('0x33')](_0x1d4e0b);};}exports[_0x08d9('0x34')]=function(_0x1274b1,_0x257d48){var _0x466a98={},_0x565d5d={},_0x50ef12={'count':0x0,'rows':[]};var _0x4c80a6=_[_0x08d9('0x35')](db[_0x08d9('0x36')]['rawAttributes'],function(_0x13fb84){return{'name':_0x13fb84['fieldName'],'type':_0x13fb84[_0x08d9('0x37')][_0x08d9('0x38')]};});_0x565d5d['model']=_[_0x08d9('0x35')](_0x4c80a6,_0x08d9('0x32'));_0x565d5d[_0x08d9('0x39')]=_[_0x08d9('0x3a')](_0x1274b1['query']);_0x565d5d[_0x08d9('0x3b')]=_['intersection'](_0x565d5d[_0x08d9('0x3c')],_0x565d5d['query']);_0x466a98[_0x08d9('0x3d')]=_[_0x08d9('0x3e')](_0x565d5d[_0x08d9('0x3c')],qs[_0x08d9('0x3f')](_0x1274b1[_0x08d9('0x39')]['fields']));_0x466a98[_0x08d9('0x3d')]=_0x466a98[_0x08d9('0x3d')][_0x08d9('0x40')]?_0x466a98[_0x08d9('0x3d')]:_0x565d5d['model'];if(!_0x1274b1[_0x08d9('0x39')][_0x08d9('0x41')]('nolimit')){_0x466a98[_0x08d9('0x42')]=qs[_0x08d9('0x42')](_0x1274b1[_0x08d9('0x39')][_0x08d9('0x42')]);_0x466a98[_0x08d9('0x2a')]=qs['offset'](_0x1274b1['query']['offset']);}_0x466a98[_0x08d9('0x43')]=qs[_0x08d9('0x44')](_0x1274b1[_0x08d9('0x39')][_0x08d9('0x44')]);_0x466a98[_0x08d9('0x45')]=qs['filters'](_[_0x08d9('0x46')](_0x1274b1['query'],_0x565d5d[_0x08d9('0x3b')]),_0x4c80a6);if(_0x1274b1[_0x08d9('0x39')][_0x08d9('0x47')]){_0x466a98[_0x08d9('0x45')]=_[_0x08d9('0x48')](_0x466a98[_0x08d9('0x45')],{'$or':_['map'](_0x4c80a6,function(_0x39785e){if(_0x39785e[_0x08d9('0x37')]!==_0x08d9('0x49')){var _0x51f04f={};_0x51f04f[_0x39785e[_0x08d9('0x32')]]={'$like':'%'+_0x1274b1['query']['filter']+'%'};return _0x51f04f;}})});}_0x466a98=_['merge']({},_0x466a98,_0x1274b1[_0x08d9('0x4a')]);var _0x3600c2={'where':_0x466a98[_0x08d9('0x45')]};return db[_0x08d9('0x36')][_0x08d9('0x4b')](_0x3600c2)[_0x08d9('0x1c')](function(_0x532e31){_0x50ef12[_0x08d9('0x4b')]=_0x532e31;if(_0x1274b1[_0x08d9('0x39')]['includeAll']){_0x466a98[_0x08d9('0x4c')]=[{'all':!![]}];}return db[_0x08d9('0x36')][_0x08d9('0x4d')](_0x466a98);})[_0x08d9('0x1c')](function(_0x54e619){_0x50ef12[_0x08d9('0x4e')]=_0x54e619;return _0x50ef12;})[_0x08d9('0x1c')](respondWithFilteredResult(_0x257d48,_0x466a98))[_0x08d9('0x25')](handleError(_0x257d48,null));};exports['show']=function(_0x3eaeed,_0x2479b8){var _0x1233e5={'raw':![],'where':{'id':_0x3eaeed[_0x08d9('0x4f')]['id']}},_0xd6923e={};_0xd6923e[_0x08d9('0x3c')]=_[_0x08d9('0x3a')](db['DeskAccount']['rawAttributes']);_0xd6923e[_0x08d9('0x39')]=_[_0x08d9('0x3a')](_0x3eaeed[_0x08d9('0x39')]);_0xd6923e[_0x08d9('0x3b')]=_[_0x08d9('0x3e')](_0xd6923e[_0x08d9('0x3c')],_0xd6923e[_0x08d9('0x39')]);_0x1233e5[_0x08d9('0x3d')]=_[_0x08d9('0x3e')](_0xd6923e[_0x08d9('0x3c')],qs[_0x08d9('0x3f')](_0x3eaeed['query'][_0x08d9('0x3f')]));_0x1233e5[_0x08d9('0x3d')]=_0x1233e5[_0x08d9('0x3d')][_0x08d9('0x40')]?_0x1233e5[_0x08d9('0x3d')]:_0xd6923e[_0x08d9('0x3c')];if(_0x3eaeed['query'][_0x08d9('0x50')]){_0x1233e5[_0x08d9('0x4c')]=[{'all':!![]}];}_0x1233e5=_[_0x08d9('0x48')]({},_0x1233e5,_0x3eaeed[_0x08d9('0x4a')]);return db[_0x08d9('0x36')][_0x08d9('0x51')](_0x1233e5)[_0x08d9('0x1c')](handleEntityNotFound(_0x2479b8,null))[_0x08d9('0x1c')](respondWithResult(_0x2479b8,null))['catch'](handleError(_0x2479b8,null));};exports['create']=function(_0x543bcc,_0x54b04a){return db[_0x08d9('0x36')][_0x08d9('0x52')](_0x543bcc[_0x08d9('0x53')],{})[_0x08d9('0x1c')](respondWithResult(_0x54b04a,0xc9))[_0x08d9('0x25')](handleError(_0x54b04a,null));};exports[_0x08d9('0x2f')]=function(_0x1982ed,_0x8acefc){if(_0x1982ed[_0x08d9('0x53')]['id']){delete _0x1982ed['body']['id'];}return db[_0x08d9('0x36')][_0x08d9('0x51')]({'where':{'id':_0x1982ed['params']['id']}})[_0x08d9('0x1c')](handleEntityNotFound(_0x8acefc,null))[_0x08d9('0x1c')](saveUpdates(_0x1982ed[_0x08d9('0x53')],null))[_0x08d9('0x1c')](respondWithResult(_0x8acefc,null))[_0x08d9('0x25')](handleError(_0x8acefc,null));};exports[_0x08d9('0x30')]=function(_0x259a82,_0x32f877){return db[_0x08d9('0x36')]['find']({'where':{'id':_0x259a82[_0x08d9('0x4f')]['id']}})[_0x08d9('0x1c')](handleEntityNotFound(_0x32f877,null))[_0x08d9('0x1c')](removeEntity(_0x32f877,null))[_0x08d9('0x25')](handleError(_0x32f877,null));};exports[_0x08d9('0x54')]=function(_0x15332d,_0x5d1b49,_0x5d0a90){var _0x3a983f={};var _0x14cda3={};var _0x2aa36b;var _0xc5e32c;return db[_0x08d9('0x36')][_0x08d9('0x55')]({'where':{'id':_0x15332d[_0x08d9('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5d1b49,null))[_0x08d9('0x1c')](function(_0x36486b){if(_0x36486b){_0x2aa36b=_0x36486b;_0x14cda3[_0x08d9('0x3c')]=_['keys'](db[_0x08d9('0x56')][_0x08d9('0x57')]);_0x14cda3[_0x08d9('0x39')]=_[_0x08d9('0x3a')](_0x15332d[_0x08d9('0x39')]);_0x14cda3[_0x08d9('0x3b')]=_[_0x08d9('0x3e')](_0x14cda3[_0x08d9('0x3c')],_0x14cda3[_0x08d9('0x39')]);_0x3a983f['attributes']=_[_0x08d9('0x3e')](_0x14cda3[_0x08d9('0x3c')],qs['fields'](_0x15332d[_0x08d9('0x39')][_0x08d9('0x3f')]));_0x3a983f['attributes']=_0x3a983f[_0x08d9('0x3d')][_0x08d9('0x40')]?_0x3a983f[_0x08d9('0x3d')]:_0x14cda3['model'];_0x3a983f[_0x08d9('0x43')]=qs[_0x08d9('0x44')](_0x15332d['query'][_0x08d9('0x44')]);_0x3a983f[_0x08d9('0x45')]=qs['filters'](_[_0x08d9('0x46')](_0x15332d[_0x08d9('0x39')],_0x14cda3['filters']));if(_0x15332d['query'][_0x08d9('0x47')]){_0x3a983f['where']=_['merge'](_0x3a983f[_0x08d9('0x45')],{'$or':_[_0x08d9('0x35')](_0x3a983f[_0x08d9('0x3d')],function(_0x4911f2){var _0x50f167={};_0x50f167[_0x4911f2]={'$like':'%'+_0x15332d[_0x08d9('0x39')][_0x08d9('0x47')]+'%'};return _0x50f167;})});}_0x3a983f=_[_0x08d9('0x48')]({},_0x3a983f,_0x15332d['options']);return _0x2aa36b['getConfigurations'](_0x3a983f);}})[_0x08d9('0x1c')](function(_0x254b97){if(_0x254b97){_0xc5e32c=_0x254b97[_0x08d9('0x40')];if(!_0x15332d[_0x08d9('0x39')]['hasOwnProperty'](_0x08d9('0x58'))){_0x3a983f[_0x08d9('0x42')]=qs['limit'](_0x15332d['query']['limit']);_0x3a983f[_0x08d9('0x2a')]=qs[_0x08d9('0x2a')](_0x15332d[_0x08d9('0x39')][_0x08d9('0x2a')]);}return _0x2aa36b[_0x08d9('0x54')](_0x3a983f);}})[_0x08d9('0x1c')](function(_0x8fdbff){if(_0x8fdbff){return _0x8fdbff?{'count':_0xc5e32c,'rows':_0x8fdbff}:null;}})[_0x08d9('0x1c')](respondWithResult(_0x5d1b49,null))[_0x08d9('0x25')](handleError(_0x5d1b49,null));};exports[_0x08d9('0x59')]=function(_0xd6a108,_0xcf5d5d,_0x491334){if(_0xd6a108[_0x08d9('0x53')]['id']){delete _0xd6a108['body']['id'];}return db['DeskAccount'][_0x08d9('0x55')]({'where':{'id':_0xd6a108[_0x08d9('0x4f')]['id']}})[_0x08d9('0x1c')](handleEntityNotFound(_0xcf5d5d,null))[_0x08d9('0x1c')](function(_0x434b72){if(_0x434b72){_0xd6a108['body'][_0x08d9('0x5a')]=_0x434b72['id'];_0xd6a108[_0x08d9('0x53')][_0x08d9('0x5b')]=integrations[_0x08d9('0x5c')](_0xd6a108[_0x08d9('0x53')][_0x08d9('0x5d')],_0xd6a108[_0x08d9('0x53')]['type']);_0xd6a108[_0x08d9('0x53')][_0x08d9('0x5e')]=integrations[_0x08d9('0x5f')](_0xd6a108[_0x08d9('0x53')][_0x08d9('0x5d')],_0xd6a108[_0x08d9('0x53')]['type']);return db[_0x08d9('0x56')][_0x08d9('0x52')](_0xd6a108[_0x08d9('0x53')],{'include':[{'model':db[_0x08d9('0x60')],'as':_0x08d9('0x5b')},{'model':db[_0x08d9('0x60')],'as':_0x08d9('0x5e')}]});}return null;})[_0x08d9('0x1c')](respondWithResult(_0xcf5d5d,null))[_0x08d9('0x25')](handleError(_0xcf5d5d,null));};exports[_0x08d9('0x61')]=function(_0x3f1764,_0x10a207,_0x5d13be){var _0x5e1f9a=[{'name':_0x08d9('0x62'),'label':_0x08d9('0x62'),'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 _0x5a20f5='';return db[_0x08d9('0x36')]['findOne']({'where':{'id':_0x3f1764['params']['id']},'attributes':['id',_0x08d9('0x63'),'authType',_0x08d9('0x64'),'password','consumerKey',_0x08d9('0x65'),_0x08d9('0x66'),_0x08d9('0x67')]})[_0x08d9('0x1c')](handleEntityNotFound(_0x10a207,null))[_0x08d9('0x1c')](function(_0x581fa0){if(_0x581fa0){_0x5a20f5=_0x581fa0[_0x08d9('0x63')];var _0x275c09=_0x5a20f5['slice'](-0x1);if(_0x275c09==='/'){_0x5a20f5=_0x5a20f5[_0x08d9('0x68')](0x0,_0x5a20f5['lastIndexOf'](_0x275c09));}var _0xafaa01={'method':_0x08d9('0x69'),'uri':util[_0x08d9('0x6a')](_0x08d9('0x6b'),_0x5a20f5),'headers':{'Content-Type':_0x08d9('0x6c'),'Accept':_0x08d9('0x6c')},'json':!![]};if(_0x581fa0[_0x08d9('0x6d')]===_0x08d9('0x6e')){_0xafaa01[_0x08d9('0x6f')][_0x08d9('0x70')]=util['format'](_0x08d9('0x71'),new Buffer(util[_0x08d9('0x6a')]('%s:%s',_0x581fa0[_0x08d9('0x64')],_0x581fa0['password']))[_0x08d9('0x72')](_0x08d9('0x73')));}return rp(_0xafaa01)[_0x08d9('0x1c')](function(_0x43963b){return _0x5e1f9a['concat'](_[_0x08d9('0x35')](_0x43963b[_0x08d9('0x74')][_0x08d9('0x75')],function(_0x261208){return{'id':_0x261208[_0x08d9('0x32')],'name':_0x261208[_0x08d9('0x32')],'type':_0x261208['type'],'active':_0x261208[_0x08d9('0x76')],'label':_0x261208[_0x08d9('0x77')],'custom':!![]};}));});}})[_0x08d9('0x1c')](function(_0x5bb0ea){return{'count':_0x5bb0ea[_0x08d9('0x40')],'rows':_0x5bb0ea};})[_0x08d9('0x1c')](respondWithResult(_0x10a207,null))[_0x08d9('0x25')](function(_0xc8d86){var _0x3101ef=_0x3f1764[_0x08d9('0x39')]['test']?0x1f4:_0xc8d86[_0x08d9('0x78')]||0x1f4;logger['error'](_0x08d9('0x79'),_0x08d9('0x61'),_0x3101ef,JSON[_0x08d9('0x21')](_0xc8d86));delete _0xc8d86[_0x08d9('0x32')];if(_0x3101ef===0x191){_0x3101ef=0x190;}_0x10a207[_0x08d9('0x27')](_0x3101ef)['send'](_0x3f1764[_0x08d9('0x39')][_0x08d9('0x7a')]?{'message':'Wrong\x20credentials','statusCode':_0xc8d86['statusCode']}:_0xc8d86);});};