Built motion from commit 67e5df37.|2.0.66
[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 _0xf7f5=['concat','entries','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','json','offset','limit','set','Content-Range','apply','reject','update','destroy','stack','name','send','model','keys','DeskAccount','rawAttributes','query','dateEnd','filters','intersection','fields','attributes','length','order','sort','where','pick','add','day','dateStart','merge','map','filter','count','findAll','rows','show','params','includeAll','create','body','find','getConfigurations','findOne','DeskConfiguration','hasOwnProperty','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','type','getDescriptions','DeskField','Descriptions','getFields','priority','authType','password','token','format','%s/custom_fields','remoteUri','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','username','toString','base64'];(function(_0x46fb85,_0x403036){var _0xd6a8ef=function(_0x4fd6d1){while(--_0x4fd6d1){_0x46fb85['push'](_0x46fb85['shift']());}};_0xd6a8ef(++_0x403036);}(_0xf7f5,0xf2));var _0x5f7f=function(_0x51327f,_0x507914){_0x51327f=_0x51327f-0x0;var _0x10b9c2=_0xf7f5[_0x51327f];return _0x10b9c2;};'use strict';var jsonpatch=require(_0x5f7f('0x0'));var rp=require(_0x5f7f('0x1'));var moment=require(_0x5f7f('0x2'));var BPromise=require(_0x5f7f('0x3'));var Mustache=require(_0x5f7f('0x4'));var util=require(_0x5f7f('0x5'));var path=require(_0x5f7f('0x6'));var sox=require(_0x5f7f('0x7'));var csv=require('to-csv');var ejs=require(_0x5f7f('0x8'));var fs=require('fs');var _=require(_0x5f7f('0x9'));var squel=require(_0x5f7f('0xa'));var crypto=require('crypto');var jsforce=require(_0x5f7f('0xb'));var deskjs=require(_0x5f7f('0xc'));var toCsv=require(_0x5f7f('0xd'));var querystring=require('querystring');var Papa=require(_0x5f7f('0xe'));var qs=require(_0x5f7f('0xf'));var logger=require(_0x5f7f('0x10'))(_0x5f7f('0x11'));var utils=require(_0x5f7f('0x12'));var config=require(_0x5f7f('0x13'));var db=require(_0x5f7f('0x14'))['db'];var integrations=require(_0x5f7f('0x15'));var jayson=require(_0x5f7f('0x16'));var client=jayson[_0x5f7f('0x17')][_0x5f7f('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x180345,_0x5519d6,_0xf8882f,_0x1ec5ec){return new BPromise(function(_0x361f29,_0x463b5b){var _0x1ee8a3=_0x1ec5ec||client;return _0x1ee8a3[_0x5f7f('0x19')](_0x180345,_0xf8882f)[_0x5f7f('0x1a')](function(_0x493bf3){logger[_0x5f7f('0x1b')](_0x5f7f('0x1c'),_0x5519d6,_0x5f7f('0x1d'));logger[_0x5f7f('0x1e')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x5519d6,_0x5f7f('0x1d'),JSON[_0x5f7f('0x1f')](_0x493bf3));if(_0x493bf3[_0x5f7f('0x20')]){if(_0x493bf3[_0x5f7f('0x20')][_0x5f7f('0x21')]===0x1f4){logger[_0x5f7f('0x20')](_0x5f7f('0x1c'),_0x5519d6,_0x493bf3[_0x5f7f('0x20')]['message']);return _0x463b5b(_0x493bf3[_0x5f7f('0x20')]['message']);}logger[_0x5f7f('0x20')]('DeskAccount,\x20%s,\x20%s',_0x5519d6,_0x493bf3[_0x5f7f('0x20')][_0x5f7f('0x22')]);return _0x361f29(_0x493bf3['error']['message']);}else{logger['info'](_0x5f7f('0x1c'),_0x5519d6,_0x5f7f('0x1d'));_0x361f29(_0x493bf3[_0x5f7f('0x23')][_0x5f7f('0x22')]);}})[_0x5f7f('0x24')](function(_0x406625){logger[_0x5f7f('0x20')](_0x5f7f('0x1c'),_0x5519d6,_0x406625);_0x463b5b(_0x406625);});});}function respondWithStatusCode(_0x5b9aea,_0x544faa){_0x544faa=_0x544faa||0xcc;return function(_0x512381){if(_0x512381){return _0x5b9aea[_0x5f7f('0x25')](_0x544faa);}return _0x5b9aea[_0x5f7f('0x26')](_0x544faa)['end']();};}function respondWithResult(_0x3a0abc,_0x4dfeae){_0x4dfeae=_0x4dfeae||0xc8;return function(_0xc0560d){if(_0xc0560d){return _0x3a0abc[_0x5f7f('0x26')](_0x4dfeae)[_0x5f7f('0x27')](_0xc0560d);}};}function respondWithFilteredResult(_0x150934,_0x4e5c07){return function(_0x43b4d3){if(_0x43b4d3){var _0x5cad68=_0x43b4d3['count'],_0x423486=_0x4e5c07[_0x5f7f('0x28')],_0x552bee=_0x4e5c07[_0x5f7f('0x28')]+_0x4e5c07[_0x5f7f('0x29')],_0x2748b1;if(_0x552bee>=_0x5cad68){_0x552bee=_0x5cad68;_0x2748b1=0xc8;}else{_0x2748b1=0xce;}_0x150934[_0x5f7f('0x26')](_0x2748b1);return _0x150934[_0x5f7f('0x2a')](_0x5f7f('0x2b'),_0x423486+'-'+_0x552bee+'/'+_0x5cad68)[_0x5f7f('0x27')](_0x43b4d3);}return null;};}function patchUpdates(_0x4811e7){return function(_0x410a48){try{jsonpatch[_0x5f7f('0x2c')](_0x410a48,_0x4811e7,!![]);}catch(_0x56bb4e){return BPromise[_0x5f7f('0x2d')](_0x56bb4e);}return _0x410a48['save']();};}function saveUpdates(_0x49161b,_0x58e4e3){return function(_0x598ab2){if(_0x598ab2){return _0x598ab2[_0x5f7f('0x2e')](_0x49161b)[_0x5f7f('0x1a')](function(_0x37bb2f){return _0x37bb2f;});}return null;};}function removeEntity(_0x149848,_0x5e38b0){return function(_0x5a683f){if(_0x5a683f){return _0x5a683f[_0x5f7f('0x2f')]()[_0x5f7f('0x1a')](function(){_0x149848[_0x5f7f('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2c85ed,_0x3edd94){return function(_0x3b6983){if(!_0x3b6983){_0x2c85ed['sendStatus'](0x194);}return _0x3b6983;};}function handleError(_0x45b77c,_0x512692){_0x512692=_0x512692||0x1f4;return function(_0x470160){logger[_0x5f7f('0x20')](_0x470160[_0x5f7f('0x30')]);if(_0x470160[_0x5f7f('0x31')]){delete _0x470160[_0x5f7f('0x31')];}_0x45b77c['status'](_0x512692)[_0x5f7f('0x32')](_0x470160);};}exports['index']=function(_0x524815,_0x2b9e88){var _0x1e2f05={},_0x381be0={},_0x5227c7={'count':0x0,'rows':[]};_0x381be0[_0x5f7f('0x33')]=_[_0x5f7f('0x34')](db[_0x5f7f('0x35')][_0x5f7f('0x36')]);var _0x36ad27={'dateStart':_0x524815['query']['dateStart'],'dateEnd':_0x524815[_0x5f7f('0x37')][_0x5f7f('0x38')]};delete _0x524815[_0x5f7f('0x37')]['dateStart'];delete _0x524815[_0x5f7f('0x37')][_0x5f7f('0x38')];_0x381be0['query']=_[_0x5f7f('0x34')](_0x524815[_0x5f7f('0x37')]);_0x381be0[_0x5f7f('0x39')]=_[_0x5f7f('0x3a')](_0x381be0[_0x5f7f('0x33')],_0x381be0[_0x5f7f('0x37')]);_0x1e2f05['attributes']=_[_0x5f7f('0x3a')](_0x381be0[_0x5f7f('0x33')],qs['fields'](_0x524815[_0x5f7f('0x37')][_0x5f7f('0x3b')]));_0x1e2f05[_0x5f7f('0x3c')]=_0x1e2f05[_0x5f7f('0x3c')][_0x5f7f('0x3d')]?_0x1e2f05[_0x5f7f('0x3c')]:_0x381be0[_0x5f7f('0x33')];if(!_0x524815[_0x5f7f('0x37')]['hasOwnProperty']('nolimit')){_0x1e2f05[_0x5f7f('0x29')]=qs[_0x5f7f('0x29')](_0x524815[_0x5f7f('0x37')][_0x5f7f('0x29')]);_0x1e2f05[_0x5f7f('0x28')]=qs['offset'](_0x524815[_0x5f7f('0x37')][_0x5f7f('0x28')]);}_0x1e2f05[_0x5f7f('0x3e')]=qs[_0x5f7f('0x3f')](_0x524815[_0x5f7f('0x37')][_0x5f7f('0x3f')]);_0x1e2f05[_0x5f7f('0x40')]=qs[_0x5f7f('0x39')](_[_0x5f7f('0x41')](_0x524815[_0x5f7f('0x37')],_0x381be0[_0x5f7f('0x39')]));if(_0x36ad27['dateStart']){if(_0x36ad27[_0x5f7f('0x38')]){_0x36ad27[_0x5f7f('0x38')]=moment(_0x36ad27[_0x5f7f('0x38')])[_0x5f7f('0x42')](0x1,_0x5f7f('0x43'));}else{_0x36ad27[_0x5f7f('0x38')]=moment(_0x36ad27[_0x5f7f('0x44')])[_0x5f7f('0x42')](0x1,_0x5f7f('0x43'));}_[_0x5f7f('0x45')](_0x1e2f05['where'],{'createdAt':{'$gte':_0x36ad27[_0x5f7f('0x44')],'$lte':_0x36ad27[_0x5f7f('0x38')]}});}if(_0x524815['query']['filter']){_0x1e2f05[_0x5f7f('0x40')]=_['merge'](_0x1e2f05['where'],{'$or':_[_0x5f7f('0x46')](_0x1e2f05[_0x5f7f('0x3c')],function(_0x332813){var _0x46d13f={};_0x46d13f[_0x332813]={'$like':'%'+_0x524815['query'][_0x5f7f('0x47')]+'%'};return _0x46d13f;})});}_0x1e2f05=_[_0x5f7f('0x45')]({},_0x1e2f05,_0x524815['options']);var _0x56d7c4={'where':_0x1e2f05[_0x5f7f('0x40')]};return db[_0x5f7f('0x35')][_0x5f7f('0x48')](_0x56d7c4)['then'](function(_0x520566){_0x5227c7[_0x5f7f('0x48')]=_0x520566;if(_0x524815[_0x5f7f('0x37')]['includeAll']){_0x1e2f05['include']=[{'all':!![]}];}return db['DeskAccount'][_0x5f7f('0x49')](_0x1e2f05);})[_0x5f7f('0x1a')](function(_0x53ceb7){_0x5227c7[_0x5f7f('0x4a')]=_0x53ceb7;return _0x5227c7;})[_0x5f7f('0x1a')](respondWithFilteredResult(_0x2b9e88,_0x1e2f05))[_0x5f7f('0x24')](handleError(_0x2b9e88,null));};exports[_0x5f7f('0x4b')]=function(_0x13a6ab,_0xb93924){var _0x28acad={'raw':![],'where':{'id':_0x13a6ab[_0x5f7f('0x4c')]['id']}},_0x38899c={};_0x38899c[_0x5f7f('0x33')]=_['keys'](db[_0x5f7f('0x35')][_0x5f7f('0x36')]);_0x38899c[_0x5f7f('0x37')]=_[_0x5f7f('0x34')](_0x13a6ab[_0x5f7f('0x37')]);_0x38899c[_0x5f7f('0x39')]=_['intersection'](_0x38899c['model'],_0x38899c[_0x5f7f('0x37')]);_0x28acad[_0x5f7f('0x3c')]=_[_0x5f7f('0x3a')](_0x38899c['model'],qs[_0x5f7f('0x3b')](_0x13a6ab[_0x5f7f('0x37')][_0x5f7f('0x3b')]));_0x28acad[_0x5f7f('0x3c')]=_0x28acad[_0x5f7f('0x3c')][_0x5f7f('0x3d')]?_0x28acad[_0x5f7f('0x3c')]:_0x38899c['model'];if(_0x13a6ab[_0x5f7f('0x37')][_0x5f7f('0x4d')]){_0x28acad['include']=[{'all':!![]}];}_0x28acad=_[_0x5f7f('0x45')]({},_0x28acad,_0x13a6ab['options']);return db[_0x5f7f('0x35')]['find'](_0x28acad)[_0x5f7f('0x1a')](handleEntityNotFound(_0xb93924,null))['then'](respondWithResult(_0xb93924,null))[_0x5f7f('0x24')](handleError(_0xb93924,null));};exports[_0x5f7f('0x4e')]=function(_0x1ee4ff,_0x9766b){return db[_0x5f7f('0x35')]['create'](_0x1ee4ff[_0x5f7f('0x4f')],{})[_0x5f7f('0x1a')](respondWithResult(_0x9766b,0xc9))[_0x5f7f('0x24')](handleError(_0x9766b,null));};exports[_0x5f7f('0x2e')]=function(_0x9a61f9,_0x50b0eb){if(_0x9a61f9[_0x5f7f('0x4f')]['id']){delete _0x9a61f9[_0x5f7f('0x4f')]['id'];}return db[_0x5f7f('0x35')][_0x5f7f('0x50')]({'where':{'id':_0x9a61f9[_0x5f7f('0x4c')]['id']}})[_0x5f7f('0x1a')](handleEntityNotFound(_0x50b0eb,null))[_0x5f7f('0x1a')](saveUpdates(_0x9a61f9[_0x5f7f('0x4f')],null))[_0x5f7f('0x1a')](respondWithResult(_0x50b0eb,null))[_0x5f7f('0x24')](handleError(_0x50b0eb,null));};exports['destroy']=function(_0x3f7b9c,_0x32ab1c){return db[_0x5f7f('0x35')]['find']({'where':{'id':_0x3f7b9c[_0x5f7f('0x4c')]['id']}})[_0x5f7f('0x1a')](handleEntityNotFound(_0x32ab1c,null))[_0x5f7f('0x1a')](removeEntity(_0x32ab1c,null))[_0x5f7f('0x24')](handleError(_0x32ab1c,null));};exports[_0x5f7f('0x51')]=function(_0x41aab2,_0x579360,_0x45ee45){var _0x53d7d1={};var _0x32a47e={};var _0x23bb20;var _0x151046;return db[_0x5f7f('0x35')][_0x5f7f('0x52')]({'where':{'id':_0x41aab2['params']['id']}})[_0x5f7f('0x1a')](handleEntityNotFound(_0x579360,null))[_0x5f7f('0x1a')](function(_0x1f6f7b){if(_0x1f6f7b){_0x23bb20=_0x1f6f7b;_0x32a47e[_0x5f7f('0x33')]=_[_0x5f7f('0x34')](db[_0x5f7f('0x53')]['rawAttributes']);_0x32a47e[_0x5f7f('0x37')]=_[_0x5f7f('0x34')](_0x41aab2[_0x5f7f('0x37')]);_0x32a47e[_0x5f7f('0x39')]=_[_0x5f7f('0x3a')](_0x32a47e[_0x5f7f('0x33')],_0x32a47e[_0x5f7f('0x37')]);_0x53d7d1[_0x5f7f('0x3c')]=_[_0x5f7f('0x3a')](_0x32a47e[_0x5f7f('0x33')],qs['fields'](_0x41aab2[_0x5f7f('0x37')][_0x5f7f('0x3b')]));_0x53d7d1[_0x5f7f('0x3c')]=_0x53d7d1[_0x5f7f('0x3c')][_0x5f7f('0x3d')]?_0x53d7d1[_0x5f7f('0x3c')]:_0x32a47e[_0x5f7f('0x33')];_0x53d7d1[_0x5f7f('0x3e')]=qs['sort'](_0x41aab2[_0x5f7f('0x37')]['sort']);_0x53d7d1[_0x5f7f('0x40')]=qs[_0x5f7f('0x39')](_[_0x5f7f('0x41')](_0x41aab2[_0x5f7f('0x37')],_0x32a47e[_0x5f7f('0x39')]));if(_0x41aab2[_0x5f7f('0x37')][_0x5f7f('0x47')]){_0x53d7d1[_0x5f7f('0x40')]=_[_0x5f7f('0x45')](_0x53d7d1['where'],{'$or':_[_0x5f7f('0x46')](_0x53d7d1['attributes'],function(_0x5146e0){var _0x2e090d={};_0x2e090d[_0x5146e0]={'$like':'%'+_0x41aab2['query']['filter']+'%'};return _0x2e090d;})});}_0x53d7d1=_['merge']({},_0x53d7d1,_0x41aab2['options']);return _0x23bb20[_0x5f7f('0x51')](_0x53d7d1);}})[_0x5f7f('0x1a')](function(_0xafff49){if(_0xafff49){_0x151046=_0xafff49[_0x5f7f('0x3d')];if(!_0x41aab2[_0x5f7f('0x37')][_0x5f7f('0x54')](_0x5f7f('0x55'))){_0x53d7d1[_0x5f7f('0x29')]=qs['limit'](_0x41aab2[_0x5f7f('0x37')][_0x5f7f('0x29')]);_0x53d7d1[_0x5f7f('0x28')]=qs['offset'](_0x41aab2['query'][_0x5f7f('0x28')]);}return _0x23bb20['getConfigurations'](_0x53d7d1);}})[_0x5f7f('0x1a')](function(_0x598e77){if(_0x598e77){return _0x598e77?{'count':_0x151046,'rows':_0x598e77}:null;}})[_0x5f7f('0x1a')](respondWithResult(_0x579360,null))[_0x5f7f('0x24')](handleError(_0x579360,null));};exports[_0x5f7f('0x56')]=function(_0xde26f5,_0x3db492,_0x103a63){if(_0xde26f5[_0x5f7f('0x4f')]['id']){delete _0xde26f5['body']['id'];}return db[_0x5f7f('0x35')]['findOne']({'where':{'id':_0xde26f5[_0x5f7f('0x4c')]['id']}})[_0x5f7f('0x1a')](handleEntityNotFound(_0x3db492,null))[_0x5f7f('0x1a')](function(_0x12a2fe){if(_0x12a2fe){_0xde26f5['body'][_0x5f7f('0x57')]=_0x12a2fe['id'];_0xde26f5[_0x5f7f('0x4f')][_0x5f7f('0x58')]=integrations[_0x5f7f('0x59')](_0xde26f5[_0x5f7f('0x4f')][_0x5f7f('0x5a')],_0xde26f5[_0x5f7f('0x4f')][_0x5f7f('0x5b')]);_0xde26f5[_0x5f7f('0x4f')]['Descriptions']=integrations[_0x5f7f('0x5c')](_0xde26f5[_0x5f7f('0x4f')][_0x5f7f('0x5a')],_0xde26f5[_0x5f7f('0x4f')][_0x5f7f('0x5b')]);return db['DeskConfiguration']['create'](_0xde26f5['body'],{'include':[{'model':db[_0x5f7f('0x5d')],'as':_0x5f7f('0x58')},{'model':db[_0x5f7f('0x5d')],'as':_0x5f7f('0x5e')}]});}return null;})[_0x5f7f('0x1a')](respondWithResult(_0x3db492,null))[_0x5f7f('0x24')](handleError(_0x3db492,null));};exports[_0x5f7f('0x5f')]=function(_0x450dbb,_0x1d33ea,_0x2ed3b4){var _0x3d2896=[{'name':_0x5f7f('0x60'),'label':_0x5f7f('0x60'),'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}]}];return db[_0x5f7f('0x35')]['findOne']({'where':{'id':_0x450dbb[_0x5f7f('0x4c')]['id']},'attributes':['id','remoteUri',_0x5f7f('0x61'),'username',_0x5f7f('0x62'),'consumerKey','consumerSecret',_0x5f7f('0x63'),'tokenSecret']})[_0x5f7f('0x1a')](handleEntityNotFound(_0x1d33ea,null))[_0x5f7f('0x1a')](function(_0x1841cc){if(_0x1841cc){var _0x626ba2={'method':'GET','uri':util[_0x5f7f('0x64')](_0x5f7f('0x65'),_0x1841cc[_0x5f7f('0x66')]),'headers':{'Content-Type':_0x5f7f('0x67'),'Accept':_0x5f7f('0x67')},'json':!![]};if(_0x1841cc[_0x5f7f('0x61')]===_0x5f7f('0x68')){_0x626ba2[_0x5f7f('0x69')][_0x5f7f('0x6a')]=util[_0x5f7f('0x64')](_0x5f7f('0x6b'),new Buffer(util['format'](_0x5f7f('0x6c'),_0x1841cc[_0x5f7f('0x6d')],_0x1841cc['password']))[_0x5f7f('0x6e')](_0x5f7f('0x6f')));}return rp(_0x626ba2)[_0x5f7f('0x1a')](function(_0x5a56bd){return _0x3d2896[_0x5f7f('0x70')](_['map'](_0x5a56bd['_embedded'][_0x5f7f('0x71')],function(_0x1220d0){return{'id':_0x1220d0[_0x5f7f('0x31')],'name':_0x1220d0['name'],'type':_0x1220d0[_0x5f7f('0x5b')],'active':_0x1220d0['active'],'label':_0x1220d0[_0x5f7f('0x72')],'custom':!![]};}));});}})[_0x5f7f('0x1a')](function(_0x1445d8){return{'count':_0x1445d8['length'],'rows':_0x1445d8};})[_0x5f7f('0x1a')](respondWithResult(_0x1d33ea,null))[_0x5f7f('0x24')](function(_0x539f36){var _0x4a705a=_0x450dbb[_0x5f7f('0x37')][_0x5f7f('0x73')]?0x1f4:_0x539f36[_0x5f7f('0x74')]||0x1f4;logger['error'](_0x5f7f('0x75'),'getFields',_0x4a705a,JSON[_0x5f7f('0x1f')](_0x539f36));delete _0x539f36['name'];if(_0x4a705a===0x191){_0x4a705a=0x190;}_0x1d33ea[_0x5f7f('0x26')](_0x4a705a)[_0x5f7f('0x32')](_0x450dbb['query'][_0x5f7f('0x73')]?{'message':'Wrong\x20credentials','statusCode':_0x539f36[_0x5f7f('0x74')]}:_0x539f36);});};