Built motion from commit (unavailable).|2.5.30
[motion2.git] / server / api / intZendeskAccount / intZendeskAccount.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 _0x687b=['filters','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','includeAll','find','create','body','ZendeskConfiguration','sort','pick','getConfigurations','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','ZendeskField','getFields','username','token','authType','remoteUri','slice','substring','lastIndexOf','GET','format','%s/%s','ticket_fields','headers','%s:%s','password','toString','Basic\x20%s','base64','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','description','group','assignee','remove','includes','position','title','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','http','request','then','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','name','send','index','ZendeskAccount','rawAttributes','fieldName','type','model','map','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','where'];(function(_0x2faeae,_0x2f7aa4){var _0xf0b909=function(_0x4af974){while(--_0x4af974){_0x2faeae['push'](_0x2faeae['shift']());}};_0xf0b909(++_0x2f7aa4);}(_0x687b,0x14a));var _0xb687=function(_0x25b4a4,_0x2e081b){_0x25b4a4=_0x25b4a4-0x0;var _0x707267=_0x687b[_0x25b4a4];return _0x707267;};'use strict';var emlformat=require(_0xb687('0x0'));var rimraf=require(_0xb687('0x1'));var zipdir=require(_0xb687('0x2'));var jsonpatch=require(_0xb687('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xb687('0x4'));var Mustache=require(_0xb687('0x5'));var util=require(_0xb687('0x6'));var path=require(_0xb687('0x7'));var sox=require(_0xb687('0x8'));var csv=require(_0xb687('0x9'));var ejs=require(_0xb687('0xa'));var fs=require('fs');var fs_extra=require(_0xb687('0xb'));var _=require(_0xb687('0xc'));var squel=require(_0xb687('0xd'));var crypto=require('crypto');var jsforce=require(_0xb687('0xe'));var deskjs=require(_0xb687('0xf'));var toCsv=require('to-csv');var querystring=require(_0xb687('0x10'));var Papa=require(_0xb687('0x11'));var Redis=require(_0xb687('0x12'));var authService=require(_0xb687('0x13'));var qs=require(_0xb687('0x14'));var as=require(_0xb687('0x15'));var hardwareService=require(_0xb687('0x16'));var logger=require(_0xb687('0x17'))(_0xb687('0x18'));var utils=require('../../config/utils');var config=require(_0xb687('0x19'));var licenseUtil=require(_0xb687('0x1a'));var db=require(_0xb687('0x1b'))['db'];var integrations=require(_0xb687('0x1c'));var jayson=require('jayson/promise');var client=jayson['client'][_0xb687('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x155ebe,_0x49e233,_0x108fd0,_0x2f1ac0){return new BPromise(function(_0x1f1f35,_0x30d502){var _0x838dd4=_0x2f1ac0||client;return _0x838dd4[_0xb687('0x1e')](_0x155ebe,_0x108fd0)[_0xb687('0x1f')](function(_0x141375){logger[_0xb687('0x20')](_0xb687('0x21'),_0x49e233,_0xb687('0x22'));logger[_0xb687('0x23')]('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0x49e233,_0xb687('0x22'),JSON[_0xb687('0x24')](_0x141375));if(_0x141375[_0xb687('0x25')]){if(_0x141375['error']['code']===0x1f4){logger[_0xb687('0x25')](_0xb687('0x21'),_0x49e233,_0x141375[_0xb687('0x25')]['message']);return _0x30d502(_0x141375[_0xb687('0x25')]['message']);}logger[_0xb687('0x25')](_0xb687('0x21'),_0x49e233,_0x141375[_0xb687('0x25')][_0xb687('0x26')]);return _0x1f1f35(_0x141375['error'][_0xb687('0x26')]);}else{logger['info'](_0xb687('0x21'),_0x49e233,_0xb687('0x22'));_0x1f1f35(_0x141375[_0xb687('0x27')]['message']);}})[_0xb687('0x28')](function(_0x491623){logger[_0xb687('0x25')](_0xb687('0x21'),_0x49e233,_0x491623);_0x30d502(_0x491623);});});}function respondWithStatusCode(_0xbf6c58,_0x38866c){_0x38866c=_0x38866c||0xcc;return function(_0xf48ba4){if(_0xf48ba4){return _0xbf6c58[_0xb687('0x29')](_0x38866c);}return _0xbf6c58['status'](_0x38866c)[_0xb687('0x2a')]();};}function respondWithResult(_0x129347,_0x1c1585){_0x1c1585=_0x1c1585||0xc8;return function(_0x1a0261){if(_0x1a0261){return _0x129347[_0xb687('0x2b')](_0x1c1585)[_0xb687('0x2c')](_0x1a0261);}};}function respondWithFilteredResult(_0x17ff2b,_0x3cb2f2){return function(_0x3ff9e1){if(_0x3ff9e1){var _0x2e6185=typeof _0x3cb2f2['offset']===_0xb687('0x2d')&&typeof _0x3cb2f2[_0xb687('0x2e')]===_0xb687('0x2d');var _0x265a4b=_0x3ff9e1[_0xb687('0x2f')];var _0x173c58=_0x2e6185?0x0:_0x3cb2f2['offset'];var _0x28b69a=_0x2e6185?_0x3ff9e1['count']:_0x3cb2f2[_0xb687('0x30')]+_0x3cb2f2[_0xb687('0x2e')];var _0x6df7a2;if(_0x28b69a>=_0x265a4b){_0x28b69a=_0x265a4b;_0x6df7a2=0xc8;}else{_0x6df7a2=0xce;}_0x17ff2b[_0xb687('0x2b')](_0x6df7a2);return _0x17ff2b[_0xb687('0x31')](_0xb687('0x32'),_0x173c58+'-'+_0x28b69a+'/'+_0x265a4b)[_0xb687('0x2c')](_0x3ff9e1);}return null;};}function patchUpdates(_0x556815){return function(_0x3da2be){try{jsonpatch[_0xb687('0x33')](_0x3da2be,_0x556815,!![]);}catch(_0x3c08ab){return BPromise[_0xb687('0x34')](_0x3c08ab);}return _0x3da2be[_0xb687('0x35')]();};}function saveUpdates(_0x263834,_0x44be88){return function(_0x164353){if(_0x164353){return _0x164353[_0xb687('0x36')](_0x263834)[_0xb687('0x1f')](function(_0x17185e){return _0x17185e;});}return null;};}function removeEntity(_0x59fc92,_0x4cb06d){return function(_0x1807b3){if(_0x1807b3){return _0x1807b3[_0xb687('0x37')]()[_0xb687('0x1f')](function(){_0x59fc92[_0xb687('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f0b28,_0x1ccc25){return function(_0x2f4773){if(!_0x2f4773){_0x4f0b28['sendStatus'](0x194);}return _0x2f4773;};}function handleError(_0x23dc96,_0x449074){_0x449074=_0x449074||0x1f4;return function(_0x548b83){logger[_0xb687('0x25')](_0x548b83['stack']);if(_0x548b83[_0xb687('0x38')]){delete _0x548b83[_0xb687('0x38')];}_0x23dc96[_0xb687('0x2b')](_0x449074)[_0xb687('0x39')](_0x548b83);};}exports[_0xb687('0x3a')]=function(_0x28087e,_0x5f59d0){var _0x529b1a={},_0x16c37d={},_0x2a73df={'count':0x0,'rows':[]};var _0x38a814=_['map'](db[_0xb687('0x3b')][_0xb687('0x3c')],function(_0x1f1c88){return{'name':_0x1f1c88[_0xb687('0x3d')],'type':_0x1f1c88[_0xb687('0x3e')]['key']};});_0x16c37d[_0xb687('0x3f')]=_[_0xb687('0x40')](_0x38a814,_0xb687('0x38'));_0x16c37d[_0xb687('0x41')]=_[_0xb687('0x42')](_0x28087e[_0xb687('0x41')]);_0x16c37d['filters']=_['intersection'](_0x16c37d[_0xb687('0x3f')],_0x16c37d['query']);_0x529b1a[_0xb687('0x43')]=_[_0xb687('0x44')](_0x16c37d['model'],qs[_0xb687('0x45')](_0x28087e[_0xb687('0x41')]['fields']));_0x529b1a[_0xb687('0x43')]=_0x529b1a[_0xb687('0x43')][_0xb687('0x46')]?_0x529b1a['attributes']:_0x16c37d[_0xb687('0x3f')];if(!_0x28087e[_0xb687('0x41')][_0xb687('0x47')](_0xb687('0x48'))){_0x529b1a[_0xb687('0x2e')]=qs[_0xb687('0x2e')](_0x28087e[_0xb687('0x41')]['limit']);_0x529b1a[_0xb687('0x30')]=qs['offset'](_0x28087e['query'][_0xb687('0x30')]);}_0x529b1a[_0xb687('0x49')]=qs['sort'](_0x28087e[_0xb687('0x41')]['sort']);_0x529b1a[_0xb687('0x4a')]=qs[_0xb687('0x4b')](_['pick'](_0x28087e[_0xb687('0x41')],_0x16c37d[_0xb687('0x4b')]),_0x38a814);if(_0x28087e['query'][_0xb687('0x4c')]){_0x529b1a[_0xb687('0x4a')]=_[_0xb687('0x4d')](_0x529b1a[_0xb687('0x4a')],{'$or':_[_0xb687('0x40')](_0x38a814,function(_0x1c1b14){if(_0x1c1b14[_0xb687('0x3e')]!==_0xb687('0x4e')){var _0x41b1b6={};_0x41b1b6[_0x1c1b14[_0xb687('0x38')]]={'$like':'%'+_0x28087e[_0xb687('0x41')][_0xb687('0x4c')]+'%'};return _0x41b1b6;}})});}_0x529b1a=_['merge']({},_0x529b1a,_0x28087e[_0xb687('0x4f')]);var _0x524853={'where':_0x529b1a[_0xb687('0x4a')]};return db[_0xb687('0x3b')][_0xb687('0x2f')](_0x524853)[_0xb687('0x1f')](function(_0x113b76){_0x2a73df[_0xb687('0x2f')]=_0x113b76;if(_0x28087e['query']['includeAll']){_0x529b1a[_0xb687('0x50')]=[{'all':!![]}];}return db[_0xb687('0x3b')][_0xb687('0x51')](_0x529b1a);})[_0xb687('0x1f')](function(_0x4f5736){_0x2a73df[_0xb687('0x52')]=_0x4f5736;return _0x2a73df;})[_0xb687('0x1f')](respondWithFilteredResult(_0x5f59d0,_0x529b1a))[_0xb687('0x28')](handleError(_0x5f59d0,null));};exports[_0xb687('0x53')]=function(_0x535c00,_0x33a0b0){var _0xfc4c5f={'raw':![],'where':{'id':_0x535c00[_0xb687('0x54')]['id']}},_0x162b19={};_0x162b19['model']=_['keys'](db[_0xb687('0x3b')][_0xb687('0x3c')]);_0x162b19[_0xb687('0x41')]=_['keys'](_0x535c00['query']);_0x162b19[_0xb687('0x4b')]=_[_0xb687('0x44')](_0x162b19[_0xb687('0x3f')],_0x162b19[_0xb687('0x41')]);_0xfc4c5f[_0xb687('0x43')]=_[_0xb687('0x44')](_0x162b19[_0xb687('0x3f')],qs[_0xb687('0x45')](_0x535c00['query'][_0xb687('0x45')]));_0xfc4c5f[_0xb687('0x43')]=_0xfc4c5f[_0xb687('0x43')]['length']?_0xfc4c5f['attributes']:_0x162b19['model'];if(_0x535c00['query'][_0xb687('0x55')]){_0xfc4c5f[_0xb687('0x50')]=[{'all':!![]}];}_0xfc4c5f=_[_0xb687('0x4d')]({},_0xfc4c5f,_0x535c00[_0xb687('0x4f')]);return db[_0xb687('0x3b')][_0xb687('0x56')](_0xfc4c5f)[_0xb687('0x1f')](handleEntityNotFound(_0x33a0b0,null))[_0xb687('0x1f')](respondWithResult(_0x33a0b0,null))[_0xb687('0x28')](handleError(_0x33a0b0,null));};exports[_0xb687('0x57')]=function(_0x128264,_0x166900){return db[_0xb687('0x3b')][_0xb687('0x57')](_0x128264[_0xb687('0x58')],{})[_0xb687('0x1f')](respondWithResult(_0x166900,0xc9))[_0xb687('0x28')](handleError(_0x166900,null));};exports['update']=function(_0x58670a,_0x1ebbca){if(_0x58670a[_0xb687('0x58')]['id']){delete _0x58670a[_0xb687('0x58')]['id'];}return db[_0xb687('0x3b')]['find']({'where':{'id':_0x58670a[_0xb687('0x54')]['id']}})[_0xb687('0x1f')](handleEntityNotFound(_0x1ebbca,null))['then'](saveUpdates(_0x58670a[_0xb687('0x58')],null))['then'](respondWithResult(_0x1ebbca,null))[_0xb687('0x28')](handleError(_0x1ebbca,null));};exports[_0xb687('0x37')]=function(_0x50fb31,_0x4fb188){return db[_0xb687('0x3b')][_0xb687('0x56')]({'where':{'id':_0x50fb31['params']['id']}})[_0xb687('0x1f')](handleEntityNotFound(_0x4fb188,null))[_0xb687('0x1f')](removeEntity(_0x4fb188,null))[_0xb687('0x28')](handleError(_0x4fb188,null));};exports['getConfigurations']=function(_0x25e140,_0x5b3c93,_0xb20c08){var _0x1a31f6={};var _0x3223f8={};var _0x33258c;var _0x819b63;return db['ZendeskAccount']['findOne']({'where':{'id':_0x25e140[_0xb687('0x54')]['id']}})['then'](handleEntityNotFound(_0x5b3c93,null))['then'](function(_0x5def9d){if(_0x5def9d){_0x33258c=_0x5def9d;_0x3223f8['model']=_[_0xb687('0x42')](db[_0xb687('0x59')][_0xb687('0x3c')]);_0x3223f8[_0xb687('0x41')]=_[_0xb687('0x42')](_0x25e140[_0xb687('0x41')]);_0x3223f8[_0xb687('0x4b')]=_[_0xb687('0x44')](_0x3223f8[_0xb687('0x3f')],_0x3223f8[_0xb687('0x41')]);_0x1a31f6[_0xb687('0x43')]=_['intersection'](_0x3223f8['model'],qs[_0xb687('0x45')](_0x25e140['query'][_0xb687('0x45')]));_0x1a31f6[_0xb687('0x43')]=_0x1a31f6[_0xb687('0x43')][_0xb687('0x46')]?_0x1a31f6[_0xb687('0x43')]:_0x3223f8['model'];_0x1a31f6[_0xb687('0x49')]=qs['sort'](_0x25e140[_0xb687('0x41')][_0xb687('0x5a')]);_0x1a31f6[_0xb687('0x4a')]=qs[_0xb687('0x4b')](_[_0xb687('0x5b')](_0x25e140[_0xb687('0x41')],_0x3223f8[_0xb687('0x4b')]));if(_0x25e140['query'][_0xb687('0x4c')]){_0x1a31f6[_0xb687('0x4a')]=_[_0xb687('0x4d')](_0x1a31f6[_0xb687('0x4a')],{'$or':_[_0xb687('0x40')](_0x1a31f6['attributes'],function(_0x2bd850){var _0x2f892={};_0x2f892[_0x2bd850]={'$like':'%'+_0x25e140[_0xb687('0x41')][_0xb687('0x4c')]+'%'};return _0x2f892;})});}_0x1a31f6=_[_0xb687('0x4d')]({},_0x1a31f6,_0x25e140[_0xb687('0x4f')]);return _0x33258c[_0xb687('0x5c')](_0x1a31f6);}})[_0xb687('0x1f')](function(_0x177ea4){if(_0x177ea4){_0x819b63=_0x177ea4[_0xb687('0x46')];if(!_0x25e140[_0xb687('0x41')]['hasOwnProperty'](_0xb687('0x48'))){_0x1a31f6[_0xb687('0x2e')]=qs[_0xb687('0x2e')](_0x25e140[_0xb687('0x41')]['limit']);_0x1a31f6[_0xb687('0x30')]=qs[_0xb687('0x30')](_0x25e140['query'][_0xb687('0x30')]);}return _0x33258c[_0xb687('0x5c')](_0x1a31f6);}})[_0xb687('0x1f')](function(_0x5eeb75){if(_0x5eeb75){return _0x5eeb75?{'count':_0x819b63,'rows':_0x5eeb75}:null;}})[_0xb687('0x1f')](respondWithResult(_0x5b3c93,null))[_0xb687('0x28')](handleError(_0x5b3c93,null));};exports['addConfiguration']=function(_0x8dc972,_0x5449c4,_0x2c2add){if(_0x8dc972[_0xb687('0x58')]['id']){delete _0x8dc972['body']['id'];}return db[_0xb687('0x3b')][_0xb687('0x5d')]({'where':{'id':_0x8dc972['params']['id']}})[_0xb687('0x1f')](handleEntityNotFound(_0x5449c4,null))[_0xb687('0x1f')](function(_0x52285e){if(_0x52285e){_0x8dc972['body'][_0xb687('0x5e')]=_0x52285e['id'];_0x8dc972['body'][_0xb687('0x5f')]=integrations[_0xb687('0x60')](_0x8dc972[_0xb687('0x58')][_0xb687('0x61')],_0x8dc972[_0xb687('0x58')][_0xb687('0x3e')]);_0x8dc972[_0xb687('0x58')][_0xb687('0x62')]=integrations['getDescriptions'](_0x8dc972[_0xb687('0x58')][_0xb687('0x61')],_0x8dc972[_0xb687('0x58')][_0xb687('0x3e')]);return db[_0xb687('0x59')][_0xb687('0x57')](_0x8dc972['body'],{'include':[{'model':db[_0xb687('0x63')],'as':_0xb687('0x5f')},{'model':db['ZendeskField'],'as':_0xb687('0x62')}]});}return null;})[_0xb687('0x1f')](respondWithResult(_0x5449c4,null))[_0xb687('0x28')](handleError(_0x5449c4,null));};exports[_0xb687('0x64')]=function(_0x5333e3,_0x2e82f8,_0x55d69b){var _0x5befd5='';return db[_0xb687('0x3b')]['findOne']({'where':{'id':_0x5333e3['params']['id']},'attributes':['id',_0xb687('0x65'),'password',_0xb687('0x66'),_0xb687('0x67'),'remoteUri']})[_0xb687('0x1f')](handleEntityNotFound(_0x2e82f8,null))[_0xb687('0x1f')](function(_0x47ee16){if(_0x47ee16){_0x5befd5=_0x47ee16[_0xb687('0x68')];var _0x26a397=_0x5befd5[_0xb687('0x69')](-0x1);if(_0x26a397==='/'){_0x5befd5=_0x5befd5[_0xb687('0x6a')](0x0,_0x5befd5[_0xb687('0x6b')](_0x26a397));}var _0x161944={'method':_0xb687('0x6c'),'uri':util[_0xb687('0x6d')](_0xb687('0x6e'),_0x5befd5,_0xb687('0x6f')),'json':!![]};switch(_0x47ee16[_0xb687('0x67')]){case'password':_0x161944[_0xb687('0x70')]={'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xb687('0x6d')](_0xb687('0x71'),_0x47ee16[_0xb687('0x65')],_0x47ee16[_0xb687('0x72')]))[_0xb687('0x73')]('base64'))};break;case'token':_0x161944[_0xb687('0x70')]={'Authorization':util[_0xb687('0x6d')](_0xb687('0x74'),new Buffer(util[_0xb687('0x6d')]('%s/token:%s',_0x47ee16[_0xb687('0x65')],_0x47ee16[_0xb687('0x66')]))[_0xb687('0x73')](_0xb687('0x75')))};break;default:throw new db[(_0xb687('0x76'))][(_0xb687('0x77'))](_0xb687('0x78'));}return rp(_0x161944);}})[_0xb687('0x1f')](function(_0xfc0eee){if(_0xfc0eee){var _0x55dd40=[_0xb687('0x79'),_0xb687('0x7a'),_0xb687('0x7b'),_0xb687('0x7c')];_[_0xb687('0x7d')](_0xfc0eee['ticket_fields'],function(_0x1037b1){return _0x55dd40[_0xb687('0x7e')](_0x1037b1['type']);});return{'count':_0xfc0eee[_0xb687('0x6f')]['length'],'rows':_[_0xb687('0x40')](_0xfc0eee[_0xb687('0x6f')],function(_0x5ec5f6){return{'id':_0x5ec5f6['id'],'name':_0x5ec5f6[_0xb687('0x7f')]>0x7?_0x5ec5f6[_0xb687('0x80')]:_0x5ec5f6['type'],'custom':_0x5ec5f6[_0xb687('0x7f')]>0x7?!![]:![],'options':_0x5ec5f6[_0xb687('0x81')]?_0x5ec5f6[_0xb687('0x81')]:_0x5ec5f6[_0xb687('0x82')]?_0x5ec5f6[_0xb687('0x82')]:[]};})};}})[_0xb687('0x1f')](respondWithResult(_0x2e82f8,null))['catch'](function(_0x105ad2){var _0x18d9c1=_0x5333e3[_0xb687('0x41')][_0xb687('0x83')]?0x1f4:_0x105ad2[_0xb687('0x84')]||0x1f4;logger[_0xb687('0x25')](_0xb687('0x85'),_0xb687('0x64'),_0x18d9c1,JSON[_0xb687('0x24')](_0x105ad2));delete _0x105ad2[_0xb687('0x38')];if(_0x18d9c1===0x191){_0x18d9c1=0x190;}_0x2e82f8[_0xb687('0x2b')](_0x18d9c1)['send'](_0x5333e3[_0xb687('0x41')]['test']?{'message':_0xb687('0x86'),'statusCode':_0x105ad2[_0xb687('0x84')]}:_0x105ad2);});};