Built motion from commit (unavailable).|2.5.29
[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 _0x93d6=['apply','reject','save','update','destroy','stack','name','send','map','DeskAccount','fieldName','type','key','model','keys','filters','query','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','findAll','rows','show','length','includeAll','find','create','body','params','DeskConfiguration','getConfigurations','nolimit','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','slice','lastIndexOf','GET','format','application/json','headers','Authorization','base64','concat','entries','label','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','bluebird','util','path','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','sendStatus','status','end','json','offset','undefined','limit','count'];(function(_0x279faa,_0x3fa70a){var _0x5bd685=function(_0x1b6de8){while(--_0x1b6de8){_0x279faa['push'](_0x279faa['shift']());}};_0x5bd685(++_0x3fa70a);}(_0x93d6,0x127));var _0x693d=function(_0x5ee5ac,_0xe68d07){_0x5ee5ac=_0x5ee5ac-0x0;var _0x30fbdd=_0x93d6[_0x5ee5ac];return _0x30fbdd;};'use strict';var emlformat=require(_0x693d('0x0'));var rimraf=require(_0x693d('0x1'));var zipdir=require(_0x693d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x693d('0x3'));var BPromise=require(_0x693d('0x4'));var Mustache=require('mustache');var util=require(_0x693d('0x5'));var path=require(_0x693d('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x693d('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x693d('0x8'));var squel=require(_0x693d('0x9'));var crypto=require(_0x693d('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x693d('0xb'));var toCsv=require('to-csv');var querystring=require(_0x693d('0xc'));var Papa=require(_0x693d('0xd'));var Redis=require('ioredis');var authService=require(_0x693d('0xe'));var qs=require(_0x693d('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x693d('0x10'));var logger=require(_0x693d('0x11'))('api');var utils=require(_0x693d('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x693d('0x13'));var db=require(_0x693d('0x14'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x693d('0x15'));var client=jayson[_0x693d('0x16')][_0x693d('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x5e599c,_0x3ead8c,_0x570bda,_0x10d682){return new BPromise(function(_0x1301d6,_0x372d94){var _0x18b53a=_0x10d682||client;return _0x18b53a[_0x693d('0x18')](_0x5e599c,_0x570bda)[_0x693d('0x19')](function(_0x3ae8e1){logger[_0x693d('0x1a')](_0x693d('0x1b'),_0x3ead8c,_0x693d('0x1c'));logger['debug']('DeskAccount,\x20%s,\x20%s,\x20%s',_0x3ead8c,'request\x20sent',JSON[_0x693d('0x1d')](_0x3ae8e1));if(_0x3ae8e1[_0x693d('0x1e')]){if(_0x3ae8e1[_0x693d('0x1e')]['code']===0x1f4){logger[_0x693d('0x1e')](_0x693d('0x1b'),_0x3ead8c,_0x3ae8e1[_0x693d('0x1e')][_0x693d('0x1f')]);return _0x372d94(_0x3ae8e1[_0x693d('0x1e')][_0x693d('0x1f')]);}logger['error'](_0x693d('0x1b'),_0x3ead8c,_0x3ae8e1[_0x693d('0x1e')][_0x693d('0x1f')]);return _0x1301d6(_0x3ae8e1[_0x693d('0x1e')][_0x693d('0x1f')]);}else{logger[_0x693d('0x1a')]('DeskAccount,\x20%s,\x20%s',_0x3ead8c,'request\x20sent');_0x1301d6(_0x3ae8e1['result']['message']);}})[_0x693d('0x20')](function(_0x47feca){logger[_0x693d('0x1e')](_0x693d('0x1b'),_0x3ead8c,_0x47feca);_0x372d94(_0x47feca);});});}function respondWithStatusCode(_0x66e44f,_0x39e208){_0x39e208=_0x39e208||0xcc;return function(_0x5d484a){if(_0x5d484a){return _0x66e44f[_0x693d('0x21')](_0x39e208);}return _0x66e44f[_0x693d('0x22')](_0x39e208)[_0x693d('0x23')]();};}function respondWithResult(_0x1be1f6,_0x5556ff){_0x5556ff=_0x5556ff||0xc8;return function(_0x1334d8){if(_0x1334d8){return _0x1be1f6[_0x693d('0x22')](_0x5556ff)[_0x693d('0x24')](_0x1334d8);}};}function respondWithFilteredResult(_0x5b2594,_0x24ea77){return function(_0x195781){if(_0x195781){var _0x344a02=typeof _0x24ea77[_0x693d('0x25')]===_0x693d('0x26')&&typeof _0x24ea77[_0x693d('0x27')]==='undefined';var _0x25b6d2=_0x195781[_0x693d('0x28')];var _0x1de6d6=_0x344a02?0x0:_0x24ea77[_0x693d('0x25')];var _0x37e4b8=_0x344a02?_0x195781['count']:_0x24ea77[_0x693d('0x25')]+_0x24ea77['limit'];var _0x260d11;if(_0x37e4b8>=_0x25b6d2){_0x37e4b8=_0x25b6d2;_0x260d11=0xc8;}else{_0x260d11=0xce;}_0x5b2594[_0x693d('0x22')](_0x260d11);return _0x5b2594['set']('Content-Range',_0x1de6d6+'-'+_0x37e4b8+'/'+_0x25b6d2)[_0x693d('0x24')](_0x195781);}return null;};}function patchUpdates(_0x3d4754){return function(_0x1298e6){try{jsonpatch[_0x693d('0x29')](_0x1298e6,_0x3d4754,!![]);}catch(_0x5cbfec){return BPromise[_0x693d('0x2a')](_0x5cbfec);}return _0x1298e6[_0x693d('0x2b')]();};}function saveUpdates(_0x123431,_0x1836f9){return function(_0x18af17){if(_0x18af17){return _0x18af17[_0x693d('0x2c')](_0x123431)[_0x693d('0x19')](function(_0x47c3b9){return _0x47c3b9;});}return null;};}function removeEntity(_0x1a31ed,_0x2d2309){return function(_0x400b73){if(_0x400b73){return _0x400b73[_0x693d('0x2d')]()['then'](function(){_0x1a31ed[_0x693d('0x22')](0xcc)[_0x693d('0x23')]();});}};}function handleEntityNotFound(_0x2f09fc,_0x2e28ee){return function(_0x2fb4e6){if(!_0x2fb4e6){_0x2f09fc[_0x693d('0x21')](0x194);}return _0x2fb4e6;};}function handleError(_0x2f41b4,_0x3cf430){_0x3cf430=_0x3cf430||0x1f4;return function(_0x3beba7){logger['error'](_0x3beba7[_0x693d('0x2e')]);if(_0x3beba7[_0x693d('0x2f')]){delete _0x3beba7[_0x693d('0x2f')];}_0x2f41b4[_0x693d('0x22')](_0x3cf430)[_0x693d('0x30')](_0x3beba7);};}exports['index']=function(_0x1a3f82,_0x26a4e2){var _0x5800ea={},_0x1c2f7b={},_0x17cbf6={'count':0x0,'rows':[]};var _0x5c5a3f=_[_0x693d('0x31')](db[_0x693d('0x32')]['rawAttributes'],function(_0x453cb1){return{'name':_0x453cb1[_0x693d('0x33')],'type':_0x453cb1[_0x693d('0x34')][_0x693d('0x35')]};});_0x1c2f7b[_0x693d('0x36')]=_[_0x693d('0x31')](_0x5c5a3f,_0x693d('0x2f'));_0x1c2f7b['query']=_[_0x693d('0x37')](_0x1a3f82['query']);_0x1c2f7b[_0x693d('0x38')]=_['intersection'](_0x1c2f7b['model'],_0x1c2f7b[_0x693d('0x39')]);_0x5800ea['attributes']=_[_0x693d('0x3a')](_0x1c2f7b[_0x693d('0x36')],qs[_0x693d('0x3b')](_0x1a3f82[_0x693d('0x39')][_0x693d('0x3b')]));_0x5800ea[_0x693d('0x3c')]=_0x5800ea[_0x693d('0x3c')]['length']?_0x5800ea[_0x693d('0x3c')]:_0x1c2f7b[_0x693d('0x36')];if(!_0x1a3f82[_0x693d('0x39')][_0x693d('0x3d')]('nolimit')){_0x5800ea[_0x693d('0x27')]=qs[_0x693d('0x27')](_0x1a3f82[_0x693d('0x39')][_0x693d('0x27')]);_0x5800ea[_0x693d('0x25')]=qs[_0x693d('0x25')](_0x1a3f82[_0x693d('0x39')]['offset']);}_0x5800ea[_0x693d('0x3e')]=qs[_0x693d('0x3f')](_0x1a3f82[_0x693d('0x39')][_0x693d('0x3f')]);_0x5800ea[_0x693d('0x40')]=qs[_0x693d('0x38')](_[_0x693d('0x41')](_0x1a3f82[_0x693d('0x39')],_0x1c2f7b[_0x693d('0x38')]),_0x5c5a3f);if(_0x1a3f82[_0x693d('0x39')][_0x693d('0x42')]){_0x5800ea['where']=_['merge'](_0x5800ea[_0x693d('0x40')],{'$or':_[_0x693d('0x31')](_0x5c5a3f,function(_0x4ba345){if(_0x4ba345['type']!==_0x693d('0x43')){var _0x28aeb2={};_0x28aeb2[_0x4ba345[_0x693d('0x2f')]]={'$like':'%'+_0x1a3f82['query'][_0x693d('0x42')]+'%'};return _0x28aeb2;}})});}_0x5800ea=_[_0x693d('0x44')]({},_0x5800ea,_0x1a3f82[_0x693d('0x45')]);var _0x88b36={'where':_0x5800ea[_0x693d('0x40')]};return db[_0x693d('0x32')][_0x693d('0x28')](_0x88b36)['then'](function(_0x21105f){_0x17cbf6[_0x693d('0x28')]=_0x21105f;if(_0x1a3f82['query']['includeAll']){_0x5800ea['include']=[{'all':!![]}];}return db[_0x693d('0x32')][_0x693d('0x46')](_0x5800ea);})['then'](function(_0x12b85b){_0x17cbf6[_0x693d('0x47')]=_0x12b85b;return _0x17cbf6;})['then'](respondWithFilteredResult(_0x26a4e2,_0x5800ea))[_0x693d('0x20')](handleError(_0x26a4e2,null));};exports[_0x693d('0x48')]=function(_0x270ac4,_0x227f28){var _0x26868e={'raw':![],'where':{'id':_0x270ac4['params']['id']}},_0x18542b={};_0x18542b[_0x693d('0x36')]=_[_0x693d('0x37')](db[_0x693d('0x32')]['rawAttributes']);_0x18542b[_0x693d('0x39')]=_['keys'](_0x270ac4[_0x693d('0x39')]);_0x18542b[_0x693d('0x38')]=_[_0x693d('0x3a')](_0x18542b[_0x693d('0x36')],_0x18542b['query']);_0x26868e[_0x693d('0x3c')]=_[_0x693d('0x3a')](_0x18542b[_0x693d('0x36')],qs[_0x693d('0x3b')](_0x270ac4[_0x693d('0x39')][_0x693d('0x3b')]));_0x26868e[_0x693d('0x3c')]=_0x26868e[_0x693d('0x3c')][_0x693d('0x49')]?_0x26868e[_0x693d('0x3c')]:_0x18542b[_0x693d('0x36')];if(_0x270ac4[_0x693d('0x39')][_0x693d('0x4a')]){_0x26868e['include']=[{'all':!![]}];}_0x26868e=_[_0x693d('0x44')]({},_0x26868e,_0x270ac4[_0x693d('0x45')]);return db['DeskAccount'][_0x693d('0x4b')](_0x26868e)[_0x693d('0x19')](handleEntityNotFound(_0x227f28,null))[_0x693d('0x19')](respondWithResult(_0x227f28,null))[_0x693d('0x20')](handleError(_0x227f28,null));};exports[_0x693d('0x4c')]=function(_0x51849c,_0x5d9928){return db[_0x693d('0x32')][_0x693d('0x4c')](_0x51849c[_0x693d('0x4d')],{})[_0x693d('0x19')](respondWithResult(_0x5d9928,0xc9))[_0x693d('0x20')](handleError(_0x5d9928,null));};exports['update']=function(_0x379590,_0x3cd039){if(_0x379590[_0x693d('0x4d')]['id']){delete _0x379590['body']['id'];}return db[_0x693d('0x32')]['find']({'where':{'id':_0x379590[_0x693d('0x4e')]['id']}})[_0x693d('0x19')](handleEntityNotFound(_0x3cd039,null))[_0x693d('0x19')](saveUpdates(_0x379590[_0x693d('0x4d')],null))[_0x693d('0x19')](respondWithResult(_0x3cd039,null))[_0x693d('0x20')](handleError(_0x3cd039,null));};exports[_0x693d('0x2d')]=function(_0x58402f,_0x2f8e01){return db[_0x693d('0x32')][_0x693d('0x4b')]({'where':{'id':_0x58402f['params']['id']}})['then'](handleEntityNotFound(_0x2f8e01,null))[_0x693d('0x19')](removeEntity(_0x2f8e01,null))[_0x693d('0x20')](handleError(_0x2f8e01,null));};exports['getConfigurations']=function(_0x1e2a4b,_0x36f843,_0x3b3569){var _0x10de88={};var _0x368276={};var _0xa07d7;var _0x329f92;return db[_0x693d('0x32')]['findOne']({'where':{'id':_0x1e2a4b[_0x693d('0x4e')]['id']}})[_0x693d('0x19')](handleEntityNotFound(_0x36f843,null))['then'](function(_0xfb8690){if(_0xfb8690){_0xa07d7=_0xfb8690;_0x368276['model']=_[_0x693d('0x37')](db[_0x693d('0x4f')]['rawAttributes']);_0x368276[_0x693d('0x39')]=_[_0x693d('0x37')](_0x1e2a4b['query']);_0x368276[_0x693d('0x38')]=_['intersection'](_0x368276['model'],_0x368276['query']);_0x10de88[_0x693d('0x3c')]=_[_0x693d('0x3a')](_0x368276[_0x693d('0x36')],qs[_0x693d('0x3b')](_0x1e2a4b[_0x693d('0x39')][_0x693d('0x3b')]));_0x10de88[_0x693d('0x3c')]=_0x10de88[_0x693d('0x3c')]['length']?_0x10de88['attributes']:_0x368276[_0x693d('0x36')];_0x10de88['order']=qs['sort'](_0x1e2a4b[_0x693d('0x39')]['sort']);_0x10de88[_0x693d('0x40')]=qs[_0x693d('0x38')](_[_0x693d('0x41')](_0x1e2a4b[_0x693d('0x39')],_0x368276[_0x693d('0x38')]));if(_0x1e2a4b['query'][_0x693d('0x42')]){_0x10de88[_0x693d('0x40')]=_[_0x693d('0x44')](_0x10de88[_0x693d('0x40')],{'$or':_[_0x693d('0x31')](_0x10de88[_0x693d('0x3c')],function(_0x3881a9){var _0x48b384={};_0x48b384[_0x3881a9]={'$like':'%'+_0x1e2a4b[_0x693d('0x39')]['filter']+'%'};return _0x48b384;})});}_0x10de88=_[_0x693d('0x44')]({},_0x10de88,_0x1e2a4b['options']);return _0xa07d7[_0x693d('0x50')](_0x10de88);}})[_0x693d('0x19')](function(_0x30a2b7){if(_0x30a2b7){_0x329f92=_0x30a2b7['length'];if(!_0x1e2a4b[_0x693d('0x39')][_0x693d('0x3d')](_0x693d('0x51'))){_0x10de88[_0x693d('0x27')]=qs['limit'](_0x1e2a4b[_0x693d('0x39')][_0x693d('0x27')]);_0x10de88[_0x693d('0x25')]=qs[_0x693d('0x25')](_0x1e2a4b['query']['offset']);}return _0xa07d7[_0x693d('0x50')](_0x10de88);}})['then'](function(_0xd164d8){if(_0xd164d8){return _0xd164d8?{'count':_0x329f92,'rows':_0xd164d8}:null;}})[_0x693d('0x19')](respondWithResult(_0x36f843,null))['catch'](handleError(_0x36f843,null));};exports[_0x693d('0x52')]=function(_0x250a2a,_0x49b19c,_0x4d1968){if(_0x250a2a[_0x693d('0x4d')]['id']){delete _0x250a2a[_0x693d('0x4d')]['id'];}return db['DeskAccount'][_0x693d('0x53')]({'where':{'id':_0x250a2a[_0x693d('0x4e')]['id']}})[_0x693d('0x19')](handleEntityNotFound(_0x49b19c,null))[_0x693d('0x19')](function(_0x24662e){if(_0x24662e){_0x250a2a[_0x693d('0x4d')][_0x693d('0x54')]=_0x24662e['id'];_0x250a2a[_0x693d('0x4d')][_0x693d('0x55')]=integrations['getSubjects'](_0x250a2a[_0x693d('0x4d')][_0x693d('0x56')],_0x250a2a['body'][_0x693d('0x34')]);_0x250a2a[_0x693d('0x4d')][_0x693d('0x57')]=integrations[_0x693d('0x58')](_0x250a2a[_0x693d('0x4d')][_0x693d('0x56')],_0x250a2a['body'][_0x693d('0x34')]);return db['DeskConfiguration']['create'](_0x250a2a[_0x693d('0x4d')],{'include':[{'model':db[_0x693d('0x59')],'as':'Subjects'},{'model':db['DeskField'],'as':_0x693d('0x57')}]});}return null;})['then'](respondWithResult(_0x49b19c,null))[_0x693d('0x20')](handleError(_0x49b19c,null));};exports[_0x693d('0x5a')]=function(_0x29f10b,_0x2af0a2,_0x344a0d){var _0x3ba12a=[{'name':_0x693d('0x5b'),'label':'priority','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 _0x287e9b='';return db[_0x693d('0x32')][_0x693d('0x53')]({'where':{'id':_0x29f10b[_0x693d('0x4e')]['id']},'attributes':['id',_0x693d('0x5c'),_0x693d('0x5d'),_0x693d('0x5e'),_0x693d('0x5f'),_0x693d('0x60'),_0x693d('0x61'),_0x693d('0x62'),'tokenSecret']})['then'](handleEntityNotFound(_0x2af0a2,null))[_0x693d('0x19')](function(_0x5ca0e0){if(_0x5ca0e0){_0x287e9b=_0x5ca0e0[_0x693d('0x5c')];var _0x802d82=_0x287e9b[_0x693d('0x63')](-0x1);if(_0x802d82==='/'){_0x287e9b=_0x287e9b['substring'](0x0,_0x287e9b[_0x693d('0x64')](_0x802d82));}var _0x460c6f={'method':_0x693d('0x65'),'uri':util[_0x693d('0x66')]('%s/custom_fields',_0x287e9b),'headers':{'Content-Type':'application/json','Accept':_0x693d('0x67')},'json':!![]};if(_0x5ca0e0[_0x693d('0x5d')]==='basic'){_0x460c6f[_0x693d('0x68')][_0x693d('0x69')]=util[_0x693d('0x66')]('Basic\x20%s',new Buffer(util[_0x693d('0x66')]('%s:%s',_0x5ca0e0[_0x693d('0x5e')],_0x5ca0e0[_0x693d('0x5f')]))['toString'](_0x693d('0x6a')));}return rp(_0x460c6f)[_0x693d('0x19')](function(_0x31c916){return _0x3ba12a[_0x693d('0x6b')](_[_0x693d('0x31')](_0x31c916['_embedded'][_0x693d('0x6c')],function(_0x262a71){return{'id':_0x262a71[_0x693d('0x2f')],'name':_0x262a71[_0x693d('0x2f')],'type':_0x262a71['type'],'active':_0x262a71['active'],'label':_0x262a71[_0x693d('0x6d')],'custom':!![]};}));});}})[_0x693d('0x19')](function(_0x3a7d85){return{'count':_0x3a7d85[_0x693d('0x49')],'rows':_0x3a7d85};})[_0x693d('0x19')](respondWithResult(_0x2af0a2,null))[_0x693d('0x20')](function(_0x39e1b6){var _0xae4a17=_0x29f10b[_0x693d('0x39')][_0x693d('0x6e')]?0x1f4:_0x39e1b6['statusCode']||0x1f4;logger[_0x693d('0x1e')]('getFields,\x20%s,\x20%s,\x20%s',_0x693d('0x5a'),_0xae4a17,JSON['stringify'](_0x39e1b6));delete _0x39e1b6[_0x693d('0x2f')];if(_0xae4a17===0x191){_0xae4a17=0x190;}_0x2af0a2['status'](_0xae4a17)[_0x693d('0x30')](_0x29f10b[_0x693d('0x39')]['test']?{'message':_0x693d('0x6f'),'statusCode':_0x39e1b6['statusCode']}:_0x39e1b6);});};