0be3df9fab96d23a8db1ec0f03834797c18957f9
[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 _0x1d18=['hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','length','create','body','params','find','getConfigurations','findOne','DeskConfiguration','AccountId','Subjects','getDescriptions','channel','DeskField','Descriptions','priority','remoteUri','authType','username','password','consumerKey','token','tokenSecret','substring','lastIndexOf','GET','%s/custom_fields','application/json','basic','Authorization','format','Basic\x20%s','%s:%s','concat','entries','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','send','html-pdf','eml-format','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','test','request','info','DeskAccount,\x20%s,\x20%s','request\x20sent','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','status','json','count','offset','limit','reject','save','update','then','destroy','end','name','map','DeskAccount','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','fields','attributes'];(function(_0x728360,_0x47529f){var _0x2ecad0=function(_0x197ff4){while(--_0x197ff4){_0x728360['push'](_0x728360['shift']());}};_0x2ecad0(++_0x47529f);}(_0x1d18,0x195));var _0x81d1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1d18[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x81d1('0x0'));var emlformat=require(_0x81d1('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x81d1('0x2'));var moment=require(_0x81d1('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x81d1('0x4'));var util=require(_0x81d1('0x5'));var path=require(_0x81d1('0x6'));var sox=require(_0x81d1('0x7'));var csv=require(_0x81d1('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x81d1('0x9'));var squel=require(_0x81d1('0xa'));var crypto=require('crypto');var jsforce=require(_0x81d1('0xb'));var deskjs=require(_0x81d1('0xc'));var toCsv=require(_0x81d1('0x8'));var querystring=require(_0x81d1('0xd'));var Papa=require(_0x81d1('0xe'));var Redis=require(_0x81d1('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x81d1('0x10'));var as=require(_0x81d1('0x11'));var hardwareService=require(_0x81d1('0x12'));var logger=require('../../config/logger')(_0x81d1('0x13'));var utils=require(_0x81d1('0x14'));var config=require(_0x81d1('0x15'));var db=require(_0x81d1('0x16'))['db'];var integrations=require(_0x81d1('0x17'));var jayson=require(_0x81d1('0x18'));var client=jayson[_0x81d1('0x19')][_0x81d1('0x1a')]({'port':0x232a});function checkPasswordPattern(_0x401c28,_0x4e8363,_0x517bc7){if(_0x517bc7){var _0x105c0e=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x105c0e[_0x81d1('0x1b')](_0x4e8363)){return _0x401c28;}else{throw new db['Sequelize']['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~!@#$%^&-_=+[{]}.');}}else{return _0x401c28;}}function respondWithRpcPromise(_0x6869d,_0x89a95f,_0x17348d,_0x40b490){return new BPromise(function(_0x1b41f1,_0x37e2e2){var _0x2371d0=_0x40b490||client;return _0x2371d0[_0x81d1('0x1c')](_0x6869d,_0x17348d)['then'](function(_0x427876){logger[_0x81d1('0x1d')](_0x81d1('0x1e'),_0x89a95f,_0x81d1('0x1f'));logger['debug'](_0x81d1('0x20'),_0x89a95f,_0x81d1('0x1f'),JSON[_0x81d1('0x21')](_0x427876));if(_0x427876[_0x81d1('0x22')]){if(_0x427876[_0x81d1('0x22')][_0x81d1('0x23')]===0x1f4){logger[_0x81d1('0x22')]('DeskAccount,\x20%s,\x20%s',_0x89a95f,_0x427876['error']['message']);return _0x37e2e2(_0x427876[_0x81d1('0x22')][_0x81d1('0x24')]);}logger['error'](_0x81d1('0x1e'),_0x89a95f,_0x427876[_0x81d1('0x22')][_0x81d1('0x24')]);return _0x1b41f1(_0x427876[_0x81d1('0x22')][_0x81d1('0x24')]);}else{logger[_0x81d1('0x1d')]('DeskAccount,\x20%s,\x20%s',_0x89a95f,_0x81d1('0x1f'));_0x1b41f1(_0x427876[_0x81d1('0x25')]['message']);}})['catch'](function(_0xaf779f){logger[_0x81d1('0x22')](_0x81d1('0x1e'),_0x89a95f,_0xaf779f);_0x37e2e2(_0xaf779f);});});}function respondWithStatusCode(_0xfba5b7,_0x497986){_0x497986=_0x497986||0xcc;return function(_0x3360f9){if(_0x3360f9){return _0xfba5b7['sendStatus'](_0x497986);}return _0xfba5b7[_0x81d1('0x26')](_0x497986)['end']();};}function respondWithResult(_0x2eb855,_0x1e8f64){_0x1e8f64=_0x1e8f64||0xc8;return function(_0x21d6c6){if(_0x21d6c6){return _0x2eb855[_0x81d1('0x26')](_0x1e8f64)[_0x81d1('0x27')](_0x21d6c6);}};}function respondWithFilteredResult(_0x4e2e54,_0x54ed24){return function(_0xe34ff4){if(_0xe34ff4){var _0x31b9c2=_0xe34ff4[_0x81d1('0x28')],_0x482fd2=_0x54ed24[_0x81d1('0x29')],_0x31d149=_0x54ed24[_0x81d1('0x29')]+_0x54ed24[_0x81d1('0x2a')],_0x139460;if(_0x31d149>=_0x31b9c2){_0x31d149=_0x31b9c2;_0x139460=0xc8;}else{_0x139460=0xce;}_0x4e2e54[_0x81d1('0x26')](_0x139460);return _0x4e2e54['set']('Content-Range',_0x482fd2+'-'+_0x31d149+'/'+_0x31b9c2)['json'](_0xe34ff4);}return null;};}function patchUpdates(_0x6a40d8){return function(_0x1c8e76){try{jsonpatch['apply'](_0x1c8e76,_0x6a40d8,!![]);}catch(_0x409384){return BPromise[_0x81d1('0x2b')](_0x409384);}return _0x1c8e76[_0x81d1('0x2c')]();};}function saveUpdates(_0x65bb1e,_0x47ec9a){return function(_0x4cf5f2){if(_0x4cf5f2){return _0x4cf5f2[_0x81d1('0x2d')](_0x65bb1e)[_0x81d1('0x2e')](function(_0x23f189){return _0x23f189;});}return null;};}function removeEntity(_0x2875fb,_0x5cb176){return function(_0xe99757){if(_0xe99757){return _0xe99757[_0x81d1('0x2f')]()['then'](function(){_0x2875fb[_0x81d1('0x26')](0xcc)[_0x81d1('0x30')]();});}};}function handleEntityNotFound(_0x1aa5d7,_0x2d10fd){return function(_0x5d908c){if(!_0x5d908c){_0x1aa5d7['sendStatus'](0x194);}return _0x5d908c;};}function handleError(_0x1f8683,_0x32e078){_0x32e078=_0x32e078||0x1f4;return function(_0x46cc17){logger[_0x81d1('0x22')](_0x46cc17['stack']);if(_0x46cc17[_0x81d1('0x31')]){delete _0x46cc17[_0x81d1('0x31')];}_0x1f8683[_0x81d1('0x26')](_0x32e078)['send'](_0x46cc17);};}exports['index']=function(_0x3f6009,_0x92d968){var _0x238ef8={},_0x2abf9c={},_0x1e8caf={'count':0x0,'rows':[]};var _0x2adb41=_[_0x81d1('0x32')](db[_0x81d1('0x33')][_0x81d1('0x34')],function(_0xb4da5e){return{'name':_0xb4da5e[_0x81d1('0x35')],'type':_0xb4da5e[_0x81d1('0x36')][_0x81d1('0x37')]};});_0x2abf9c[_0x81d1('0x38')]=_[_0x81d1('0x32')](_0x2adb41,_0x81d1('0x31'));_0x2abf9c['query']=_[_0x81d1('0x39')](_0x3f6009['query']);_0x2abf9c[_0x81d1('0x3a')]=_[_0x81d1('0x3b')](_0x2abf9c[_0x81d1('0x38')],_0x2abf9c[_0x81d1('0x3c')]);_0x238ef8['attributes']=_[_0x81d1('0x3b')](_0x2abf9c[_0x81d1('0x38')],qs[_0x81d1('0x3d')](_0x3f6009[_0x81d1('0x3c')][_0x81d1('0x3d')]));_0x238ef8[_0x81d1('0x3e')]=_0x238ef8[_0x81d1('0x3e')]['length']?_0x238ef8[_0x81d1('0x3e')]:_0x2abf9c[_0x81d1('0x38')];if(!_0x3f6009[_0x81d1('0x3c')][_0x81d1('0x3f')](_0x81d1('0x40'))){_0x238ef8[_0x81d1('0x2a')]=qs['limit'](_0x3f6009['query'][_0x81d1('0x2a')]);_0x238ef8[_0x81d1('0x29')]=qs[_0x81d1('0x29')](_0x3f6009[_0x81d1('0x3c')][_0x81d1('0x29')]);}_0x238ef8[_0x81d1('0x41')]=qs[_0x81d1('0x42')](_0x3f6009['query']['sort']);_0x238ef8[_0x81d1('0x43')]=qs[_0x81d1('0x3a')](_[_0x81d1('0x44')](_0x3f6009['query'],_0x2abf9c['filters']),_0x2adb41);if(_0x3f6009[_0x81d1('0x3c')][_0x81d1('0x45')]){_0x238ef8[_0x81d1('0x43')]=_['merge'](_0x238ef8[_0x81d1('0x43')],{'$or':_[_0x81d1('0x32')](_0x2adb41,function(_0x5952f7){if(_0x5952f7[_0x81d1('0x36')]!==_0x81d1('0x46')){var _0x2b8a50={};_0x2b8a50[_0x5952f7[_0x81d1('0x31')]]={'$like':'%'+_0x3f6009[_0x81d1('0x3c')][_0x81d1('0x45')]+'%'};return _0x2b8a50;}})});}_0x238ef8=_[_0x81d1('0x47')]({},_0x238ef8,_0x3f6009[_0x81d1('0x48')]);var _0x5aa580={'where':_0x238ef8[_0x81d1('0x43')]};return db[_0x81d1('0x33')][_0x81d1('0x28')](_0x5aa580)['then'](function(_0x12120b){_0x1e8caf[_0x81d1('0x28')]=_0x12120b;if(_0x3f6009['query'][_0x81d1('0x49')]){_0x238ef8[_0x81d1('0x4a')]=[{'all':!![]}];}return db['DeskAccount'][_0x81d1('0x4b')](_0x238ef8);})[_0x81d1('0x2e')](function(_0x3738f5){_0x1e8caf[_0x81d1('0x4c')]=_0x3738f5;return _0x1e8caf;})[_0x81d1('0x2e')](respondWithFilteredResult(_0x92d968,_0x238ef8))[_0x81d1('0x4d')](handleError(_0x92d968,null));};exports[_0x81d1('0x4e')]=function(_0x5a0a38,_0x1611db){var _0x3cdadb={'raw':![],'where':{'id':_0x5a0a38['params']['id']}},_0x33d1a4={};_0x33d1a4[_0x81d1('0x38')]=_[_0x81d1('0x39')](db['DeskAccount']['rawAttributes']);_0x33d1a4[_0x81d1('0x3c')]=_[_0x81d1('0x39')](_0x5a0a38[_0x81d1('0x3c')]);_0x33d1a4[_0x81d1('0x3a')]=_['intersection'](_0x33d1a4['model'],_0x33d1a4[_0x81d1('0x3c')]);_0x3cdadb[_0x81d1('0x3e')]=_['intersection'](_0x33d1a4[_0x81d1('0x38')],qs[_0x81d1('0x3d')](_0x5a0a38[_0x81d1('0x3c')][_0x81d1('0x3d')]));_0x3cdadb['attributes']=_0x3cdadb[_0x81d1('0x3e')][_0x81d1('0x4f')]?_0x3cdadb[_0x81d1('0x3e')]:_0x33d1a4[_0x81d1('0x38')];if(_0x5a0a38[_0x81d1('0x3c')][_0x81d1('0x49')]){_0x3cdadb[_0x81d1('0x4a')]=[{'all':!![]}];}_0x3cdadb=_['merge']({},_0x3cdadb,_0x5a0a38[_0x81d1('0x48')]);return db[_0x81d1('0x33')]['find'](_0x3cdadb)['then'](handleEntityNotFound(_0x1611db,null))['then'](respondWithResult(_0x1611db,null))[_0x81d1('0x4d')](handleError(_0x1611db,null));};exports[_0x81d1('0x50')]=function(_0x59fe8b,_0x38ef97){return db[_0x81d1('0x33')][_0x81d1('0x50')](_0x59fe8b[_0x81d1('0x51')],{})[_0x81d1('0x2e')](respondWithResult(_0x38ef97,0xc9))[_0x81d1('0x4d')](handleError(_0x38ef97,null));};exports[_0x81d1('0x2d')]=function(_0x118ffa,_0x9df625){if(_0x118ffa['body']['id']){delete _0x118ffa[_0x81d1('0x51')]['id'];}return db['DeskAccount']['find']({'where':{'id':_0x118ffa[_0x81d1('0x52')]['id']}})[_0x81d1('0x2e')](handleEntityNotFound(_0x9df625,null))[_0x81d1('0x2e')](saveUpdates(_0x118ffa[_0x81d1('0x51')],null))[_0x81d1('0x2e')](respondWithResult(_0x9df625,null))['catch'](handleError(_0x9df625,null));};exports['destroy']=function(_0xe069de,_0x8c92fc){return db[_0x81d1('0x33')][_0x81d1('0x53')]({'where':{'id':_0xe069de[_0x81d1('0x52')]['id']}})[_0x81d1('0x2e')](handleEntityNotFound(_0x8c92fc,null))[_0x81d1('0x2e')](removeEntity(_0x8c92fc,null))['catch'](handleError(_0x8c92fc,null));};exports[_0x81d1('0x54')]=function(_0x5a5e87,_0x5e5530,_0x104612){var _0x143e4a={};var _0x4bc385={};var _0x5b324c;var _0x21d6b1;return db[_0x81d1('0x33')][_0x81d1('0x55')]({'where':{'id':_0x5a5e87[_0x81d1('0x52')]['id']}})[_0x81d1('0x2e')](handleEntityNotFound(_0x5e5530,null))[_0x81d1('0x2e')](function(_0x5b3e49){if(_0x5b3e49){_0x5b324c=_0x5b3e49;_0x4bc385[_0x81d1('0x38')]=_[_0x81d1('0x39')](db[_0x81d1('0x56')][_0x81d1('0x34')]);_0x4bc385[_0x81d1('0x3c')]=_[_0x81d1('0x39')](_0x5a5e87[_0x81d1('0x3c')]);_0x4bc385[_0x81d1('0x3a')]=_[_0x81d1('0x3b')](_0x4bc385[_0x81d1('0x38')],_0x4bc385[_0x81d1('0x3c')]);_0x143e4a[_0x81d1('0x3e')]=_[_0x81d1('0x3b')](_0x4bc385[_0x81d1('0x38')],qs[_0x81d1('0x3d')](_0x5a5e87[_0x81d1('0x3c')][_0x81d1('0x3d')]));_0x143e4a[_0x81d1('0x3e')]=_0x143e4a['attributes'][_0x81d1('0x4f')]?_0x143e4a['attributes']:_0x4bc385[_0x81d1('0x38')];_0x143e4a[_0x81d1('0x41')]=qs[_0x81d1('0x42')](_0x5a5e87['query'][_0x81d1('0x42')]);_0x143e4a[_0x81d1('0x43')]=qs[_0x81d1('0x3a')](_['pick'](_0x5a5e87[_0x81d1('0x3c')],_0x4bc385['filters']));if(_0x5a5e87[_0x81d1('0x3c')][_0x81d1('0x45')]){_0x143e4a[_0x81d1('0x43')]=_[_0x81d1('0x47')](_0x143e4a[_0x81d1('0x43')],{'$or':_[_0x81d1('0x32')](_0x143e4a['attributes'],function(_0x3ae9cf){var _0x4f055c={};_0x4f055c[_0x3ae9cf]={'$like':'%'+_0x5a5e87['query'][_0x81d1('0x45')]+'%'};return _0x4f055c;})});}_0x143e4a=_[_0x81d1('0x47')]({},_0x143e4a,_0x5a5e87[_0x81d1('0x48')]);return _0x5b324c['getConfigurations'](_0x143e4a);}})[_0x81d1('0x2e')](function(_0x1e2802){if(_0x1e2802){_0x21d6b1=_0x1e2802['length'];if(!_0x5a5e87[_0x81d1('0x3c')][_0x81d1('0x3f')](_0x81d1('0x40'))){_0x143e4a[_0x81d1('0x2a')]=qs[_0x81d1('0x2a')](_0x5a5e87[_0x81d1('0x3c')][_0x81d1('0x2a')]);_0x143e4a[_0x81d1('0x29')]=qs[_0x81d1('0x29')](_0x5a5e87[_0x81d1('0x3c')][_0x81d1('0x29')]);}return _0x5b324c[_0x81d1('0x54')](_0x143e4a);}})[_0x81d1('0x2e')](function(_0x3464e0){if(_0x3464e0){return _0x3464e0?{'count':_0x21d6b1,'rows':_0x3464e0}:null;}})[_0x81d1('0x2e')](respondWithResult(_0x5e5530,null))['catch'](handleError(_0x5e5530,null));};exports['addConfiguration']=function(_0x15220b,_0x547742,_0x1c0d47){if(_0x15220b[_0x81d1('0x51')]['id']){delete _0x15220b[_0x81d1('0x51')]['id'];}return db[_0x81d1('0x33')][_0x81d1('0x55')]({'where':{'id':_0x15220b[_0x81d1('0x52')]['id']}})['then'](handleEntityNotFound(_0x547742,null))['then'](function(_0x1e0fe1){if(_0x1e0fe1){_0x15220b[_0x81d1('0x51')][_0x81d1('0x57')]=_0x1e0fe1['id'];_0x15220b[_0x81d1('0x51')][_0x81d1('0x58')]=integrations['getSubjects'](_0x15220b[_0x81d1('0x51')]['channel'],_0x15220b[_0x81d1('0x51')][_0x81d1('0x36')]);_0x15220b['body']['Descriptions']=integrations[_0x81d1('0x59')](_0x15220b['body'][_0x81d1('0x5a')],_0x15220b[_0x81d1('0x51')]['type']);return db['DeskConfiguration'][_0x81d1('0x50')](_0x15220b[_0x81d1('0x51')],{'include':[{'model':db[_0x81d1('0x5b')],'as':_0x81d1('0x58')},{'model':db[_0x81d1('0x5b')],'as':_0x81d1('0x5c')}]});}return null;})[_0x81d1('0x2e')](respondWithResult(_0x547742,null))[_0x81d1('0x4d')](handleError(_0x547742,null));};exports['getFields']=function(_0xfebe04,_0x127b5b,_0x1ad629){var _0x1df7c8=[{'name':_0x81d1('0x5d'),'label':_0x81d1('0x5d'),'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 _0x387f9a='';return db[_0x81d1('0x33')]['findOne']({'where':{'id':_0xfebe04[_0x81d1('0x52')]['id']},'attributes':['id',_0x81d1('0x5e'),_0x81d1('0x5f'),_0x81d1('0x60'),_0x81d1('0x61'),_0x81d1('0x62'),'consumerSecret',_0x81d1('0x63'),_0x81d1('0x64')]})['then'](handleEntityNotFound(_0x127b5b,null))['then'](function(_0x1eb88){if(_0x1eb88){_0x387f9a=_0x1eb88['remoteUri'];var _0x4bfa75=_0x387f9a['slice'](-0x1);if(_0x4bfa75==='/'){_0x387f9a=_0x387f9a[_0x81d1('0x65')](0x0,_0x387f9a[_0x81d1('0x66')](_0x4bfa75));}var _0x2719cc={'method':_0x81d1('0x67'),'uri':util['format'](_0x81d1('0x68'),_0x387f9a),'headers':{'Content-Type':_0x81d1('0x69'),'Accept':_0x81d1('0x69')},'json':!![]};if(_0x1eb88[_0x81d1('0x5f')]===_0x81d1('0x6a')){_0x2719cc['headers'][_0x81d1('0x6b')]=util[_0x81d1('0x6c')](_0x81d1('0x6d'),new Buffer(util['format'](_0x81d1('0x6e'),_0x1eb88[_0x81d1('0x60')],_0x1eb88[_0x81d1('0x61')]))['toString']('base64'));}return rp(_0x2719cc)[_0x81d1('0x2e')](function(_0x25753c){return _0x1df7c8[_0x81d1('0x6f')](_[_0x81d1('0x32')](_0x25753c['_embedded'][_0x81d1('0x70')],function(_0x24fe15){return{'id':_0x24fe15[_0x81d1('0x31')],'name':_0x24fe15[_0x81d1('0x31')],'type':_0x24fe15['type'],'active':_0x24fe15['active'],'label':_0x24fe15['label'],'custom':!![]};}));});}})[_0x81d1('0x2e')](function(_0x331854){return{'count':_0x331854[_0x81d1('0x4f')],'rows':_0x331854};})[_0x81d1('0x2e')](respondWithResult(_0x127b5b,null))['catch'](function(_0x1f0063){var _0x4714fe=_0xfebe04[_0x81d1('0x3c')][_0x81d1('0x1b')]?0x1f4:_0x1f0063[_0x81d1('0x71')]||0x1f4;logger[_0x81d1('0x22')](_0x81d1('0x72'),_0x81d1('0x73'),_0x4714fe,JSON[_0x81d1('0x21')](_0x1f0063));delete _0x1f0063[_0x81d1('0x31')];if(_0x4714fe===0x191){_0x4714fe=0x190;}_0x127b5b[_0x81d1('0x26')](_0x4714fe)[_0x81d1('0x74')](_0xfebe04[_0x81d1('0x3c')][_0x81d1('0x1b')]?{'message':'Wrong\x20credentials','statusCode':_0x1f0063[_0x81d1('0x71')]}:_0x1f0063);});};