Built motion from commit (unavailable).|2.5.10
[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 _0xb688=['intersection','attributes','fields','length','nolimit','order','sort','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','show','options','find','create','body','params','destroy','getConfigurations','findOne','ZendeskConfiguration','pick','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','ZendeskField','Descriptions','getFields','username','password','token','authType','remoteUri','slice','lastIndexOf','GET','%s/%s','ticket_fields','headers','format','Basic\x20%s','%s:%s','toString','base64','%s/token:%s','Sequelize','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','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','squel','crypto','jsforce','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','../../components/integrations/configuration','jayson/promise','client','http','request','info','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','ZendeskAccount,\x20%s,\x20%s','message','catch','sendStatus','end','count','offset','limit','Content-Range','json','apply','reject','update','then','status','stack','name','send','index','ZendeskAccount','rawAttributes','fieldName','type','key','model','map','query','keys','filters'];(function(_0x5317b5,_0x4dfd6e){var _0x3b7ce2=function(_0xc146d6){while(--_0xc146d6){_0x5317b5['push'](_0x5317b5['shift']());}};_0x3b7ce2(++_0x4dfd6e);}(_0xb688,0xcf));var _0x8b68=function(_0x102284,_0x22fba2){_0x102284=_0x102284-0x0;var _0x40512c=_0xb688[_0x102284];return _0x40512c;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x8b68('0x0'));var rimraf=require(_0x8b68('0x1'));var zipdir=require(_0x8b68('0x2'));var jsonpatch=require(_0x8b68('0x3'));var rp=require(_0x8b68('0x4'));var moment=require(_0x8b68('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8b68('0x6'));var util=require(_0x8b68('0x7'));var path=require(_0x8b68('0x8'));var sox=require(_0x8b68('0x9'));var csv=require('to-csv');var ejs=require(_0x8b68('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8b68('0xb'));var crypto=require(_0x8b68('0xc'));var jsforce=require(_0x8b68('0xd'));var deskjs=require(_0x8b68('0xe'));var toCsv=require(_0x8b68('0xf'));var querystring=require(_0x8b68('0x10'));var Papa=require(_0x8b68('0x11'));var Redis=require(_0x8b68('0x12'));var authService=require(_0x8b68('0x13'));var qs=require(_0x8b68('0x14'));var as=require(_0x8b68('0x15'));var hardwareService=require(_0x8b68('0x16'));var logger=require(_0x8b68('0x17'))('api');var utils=require(_0x8b68('0x18'));var config=require(_0x8b68('0x19'));var licenseUtil=require(_0x8b68('0x1a'));var db=require(_0x8b68('0x1b'))['db'];var integrations=require(_0x8b68('0x1c'));var jayson=require(_0x8b68('0x1d'));var client=jayson[_0x8b68('0x1e')][_0x8b68('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x2686c7,_0x5b4364,_0xb2df35,_0x509033){return new BPromise(function(_0x5e3c66,_0x22f75b){var _0x1554d6=_0x509033||client;return _0x1554d6[_0x8b68('0x20')](_0x2686c7,_0xb2df35)['then'](function(_0x5c8d0e){logger[_0x8b68('0x21')]('ZendeskAccount,\x20%s,\x20%s',_0x5b4364,_0x8b68('0x22'));logger[_0x8b68('0x23')](_0x8b68('0x24'),_0x5b4364,_0x8b68('0x22'),JSON['stringify'](_0x5c8d0e));if(_0x5c8d0e[_0x8b68('0x25')]){if(_0x5c8d0e[_0x8b68('0x25')]['code']===0x1f4){logger[_0x8b68('0x25')](_0x8b68('0x26'),_0x5b4364,_0x5c8d0e[_0x8b68('0x25')][_0x8b68('0x27')]);return _0x22f75b(_0x5c8d0e[_0x8b68('0x25')]['message']);}logger[_0x8b68('0x25')](_0x8b68('0x26'),_0x5b4364,_0x5c8d0e[_0x8b68('0x25')][_0x8b68('0x27')]);return _0x5e3c66(_0x5c8d0e[_0x8b68('0x25')][_0x8b68('0x27')]);}else{logger['info']('ZendeskAccount,\x20%s,\x20%s',_0x5b4364,_0x8b68('0x22'));_0x5e3c66(_0x5c8d0e['result'][_0x8b68('0x27')]);}})[_0x8b68('0x28')](function(_0x13aee5){logger[_0x8b68('0x25')](_0x8b68('0x26'),_0x5b4364,_0x13aee5);_0x22f75b(_0x13aee5);});});}function respondWithStatusCode(_0x173524,_0x59bb8a){_0x59bb8a=_0x59bb8a||0xcc;return function(_0x1a6fe8){if(_0x1a6fe8){return _0x173524[_0x8b68('0x29')](_0x59bb8a);}return _0x173524['status'](_0x59bb8a)[_0x8b68('0x2a')]();};}function respondWithResult(_0x3cf8d2,_0x240b0b){_0x240b0b=_0x240b0b||0xc8;return function(_0x5590ec){if(_0x5590ec){return _0x3cf8d2['status'](_0x240b0b)['json'](_0x5590ec);}};}function respondWithFilteredResult(_0x92d186,_0x448e43){return function(_0x2ba2a3){if(_0x2ba2a3){var _0x583476=_0x2ba2a3[_0x8b68('0x2b')],_0x3311c7=_0x448e43['offset'],_0x53aaa2=_0x448e43[_0x8b68('0x2c')]+_0x448e43[_0x8b68('0x2d')],_0x4cf89d;if(_0x53aaa2>=_0x583476){_0x53aaa2=_0x583476;_0x4cf89d=0xc8;}else{_0x4cf89d=0xce;}_0x92d186['status'](_0x4cf89d);return _0x92d186['set'](_0x8b68('0x2e'),_0x3311c7+'-'+_0x53aaa2+'/'+_0x583476)[_0x8b68('0x2f')](_0x2ba2a3);}return null;};}function patchUpdates(_0x1e7c06){return function(_0xfb4f06){try{jsonpatch[_0x8b68('0x30')](_0xfb4f06,_0x1e7c06,!![]);}catch(_0x2ad2df){return BPromise[_0x8b68('0x31')](_0x2ad2df);}return _0xfb4f06['save']();};}function saveUpdates(_0x3b6d1b,_0x50a1e9){return function(_0x1d8693){if(_0x1d8693){return _0x1d8693[_0x8b68('0x32')](_0x3b6d1b)['then'](function(_0x216aa6){return _0x216aa6;});}return null;};}function removeEntity(_0x93daf7,_0x26fe0e){return function(_0x49ce2d){if(_0x49ce2d){return _0x49ce2d['destroy']()[_0x8b68('0x33')](function(){_0x93daf7[_0x8b68('0x34')](0xcc)[_0x8b68('0x2a')]();});}};}function handleEntityNotFound(_0x394cca,_0x2c0ace){return function(_0x334b13){if(!_0x334b13){_0x394cca[_0x8b68('0x29')](0x194);}return _0x334b13;};}function handleError(_0x3e646e,_0x12abb8){_0x12abb8=_0x12abb8||0x1f4;return function(_0x7fe301){logger[_0x8b68('0x25')](_0x7fe301[_0x8b68('0x35')]);if(_0x7fe301[_0x8b68('0x36')]){delete _0x7fe301[_0x8b68('0x36')];}_0x3e646e[_0x8b68('0x34')](_0x12abb8)[_0x8b68('0x37')](_0x7fe301);};}exports[_0x8b68('0x38')]=function(_0x2a7dd5,_0x120b34){var _0x18dfae={},_0x1d83ea={},_0x43b971={'count':0x0,'rows':[]};var _0x48abb7=_['map'](db[_0x8b68('0x39')][_0x8b68('0x3a')],function(_0x23554d){return{'name':_0x23554d[_0x8b68('0x3b')],'type':_0x23554d[_0x8b68('0x3c')][_0x8b68('0x3d')]};});_0x1d83ea[_0x8b68('0x3e')]=_[_0x8b68('0x3f')](_0x48abb7,'name');_0x1d83ea[_0x8b68('0x40')]=_[_0x8b68('0x41')](_0x2a7dd5[_0x8b68('0x40')]);_0x1d83ea[_0x8b68('0x42')]=_[_0x8b68('0x43')](_0x1d83ea[_0x8b68('0x3e')],_0x1d83ea[_0x8b68('0x40')]);_0x18dfae[_0x8b68('0x44')]=_['intersection'](_0x1d83ea[_0x8b68('0x3e')],qs[_0x8b68('0x45')](_0x2a7dd5[_0x8b68('0x40')][_0x8b68('0x45')]));_0x18dfae[_0x8b68('0x44')]=_0x18dfae[_0x8b68('0x44')][_0x8b68('0x46')]?_0x18dfae['attributes']:_0x1d83ea[_0x8b68('0x3e')];if(!_0x2a7dd5[_0x8b68('0x40')]['hasOwnProperty'](_0x8b68('0x47'))){_0x18dfae[_0x8b68('0x2d')]=qs['limit'](_0x2a7dd5['query']['limit']);_0x18dfae['offset']=qs[_0x8b68('0x2c')](_0x2a7dd5[_0x8b68('0x40')]['offset']);}_0x18dfae[_0x8b68('0x48')]=qs['sort'](_0x2a7dd5[_0x8b68('0x40')][_0x8b68('0x49')]);_0x18dfae['where']=qs[_0x8b68('0x42')](_['pick'](_0x2a7dd5['query'],_0x1d83ea['filters']),_0x48abb7);if(_0x2a7dd5[_0x8b68('0x40')][_0x8b68('0x4a')]){_0x18dfae[_0x8b68('0x4b')]=_[_0x8b68('0x4c')](_0x18dfae['where'],{'$or':_[_0x8b68('0x3f')](_0x48abb7,function(_0x58a5e3){if(_0x58a5e3[_0x8b68('0x3c')]!==_0x8b68('0x4d')){var _0x594b16={};_0x594b16[_0x58a5e3[_0x8b68('0x36')]]={'$like':'%'+_0x2a7dd5[_0x8b68('0x40')][_0x8b68('0x4a')]+'%'};return _0x594b16;}})});}_0x18dfae=_[_0x8b68('0x4c')]({},_0x18dfae,_0x2a7dd5['options']);var _0x14fa5a={'where':_0x18dfae[_0x8b68('0x4b')]};return db[_0x8b68('0x39')][_0x8b68('0x2b')](_0x14fa5a)[_0x8b68('0x33')](function(_0x1362d3){_0x43b971[_0x8b68('0x2b')]=_0x1362d3;if(_0x2a7dd5[_0x8b68('0x40')][_0x8b68('0x4e')]){_0x18dfae[_0x8b68('0x4f')]=[{'all':!![]}];}return db[_0x8b68('0x39')][_0x8b68('0x50')](_0x18dfae);})[_0x8b68('0x33')](function(_0x108c8d){_0x43b971[_0x8b68('0x51')]=_0x108c8d;return _0x43b971;})[_0x8b68('0x33')](respondWithFilteredResult(_0x120b34,_0x18dfae))['catch'](handleError(_0x120b34,null));};exports[_0x8b68('0x52')]=function(_0x20681a,_0x5dd099){var _0xeab810={'raw':![],'where':{'id':_0x20681a['params']['id']}},_0x4cd28a={};_0x4cd28a['model']=_[_0x8b68('0x41')](db[_0x8b68('0x39')][_0x8b68('0x3a')]);_0x4cd28a[_0x8b68('0x40')]=_['keys'](_0x20681a['query']);_0x4cd28a[_0x8b68('0x42')]=_[_0x8b68('0x43')](_0x4cd28a[_0x8b68('0x3e')],_0x4cd28a['query']);_0xeab810[_0x8b68('0x44')]=_[_0x8b68('0x43')](_0x4cd28a['model'],qs[_0x8b68('0x45')](_0x20681a[_0x8b68('0x40')]['fields']));_0xeab810[_0x8b68('0x44')]=_0xeab810[_0x8b68('0x44')]['length']?_0xeab810[_0x8b68('0x44')]:_0x4cd28a[_0x8b68('0x3e')];if(_0x20681a['query']['includeAll']){_0xeab810['include']=[{'all':!![]}];}_0xeab810=_[_0x8b68('0x4c')]({},_0xeab810,_0x20681a[_0x8b68('0x53')]);return db[_0x8b68('0x39')][_0x8b68('0x54')](_0xeab810)['then'](handleEntityNotFound(_0x5dd099,null))['then'](respondWithResult(_0x5dd099,null))[_0x8b68('0x28')](handleError(_0x5dd099,null));};exports[_0x8b68('0x55')]=function(_0x13661e,_0x5c0ece){return db[_0x8b68('0x39')][_0x8b68('0x55')](_0x13661e[_0x8b68('0x56')],{})['then'](respondWithResult(_0x5c0ece,0xc9))[_0x8b68('0x28')](handleError(_0x5c0ece,null));};exports['update']=function(_0x2b1fd8,_0x3efb0e){if(_0x2b1fd8['body']['id']){delete _0x2b1fd8[_0x8b68('0x56')]['id'];}return db[_0x8b68('0x39')][_0x8b68('0x54')]({'where':{'id':_0x2b1fd8[_0x8b68('0x57')]['id']}})[_0x8b68('0x33')](handleEntityNotFound(_0x3efb0e,null))['then'](saveUpdates(_0x2b1fd8[_0x8b68('0x56')],null))[_0x8b68('0x33')](respondWithResult(_0x3efb0e,null))[_0x8b68('0x28')](handleError(_0x3efb0e,null));};exports[_0x8b68('0x58')]=function(_0xb55358,_0x1952db){return db[_0x8b68('0x39')][_0x8b68('0x54')]({'where':{'id':_0xb55358['params']['id']}})[_0x8b68('0x33')](handleEntityNotFound(_0x1952db,null))[_0x8b68('0x33')](removeEntity(_0x1952db,null))[_0x8b68('0x28')](handleError(_0x1952db,null));};exports[_0x8b68('0x59')]=function(_0x9c4e2a,_0x4677b6,_0x3a90ba){var _0x37c4cb={};var _0x6d63cb={};var _0x271dbe;var _0x368c86;return db[_0x8b68('0x39')][_0x8b68('0x5a')]({'where':{'id':_0x9c4e2a[_0x8b68('0x57')]['id']}})[_0x8b68('0x33')](handleEntityNotFound(_0x4677b6,null))[_0x8b68('0x33')](function(_0xf07a90){if(_0xf07a90){_0x271dbe=_0xf07a90;_0x6d63cb[_0x8b68('0x3e')]=_[_0x8b68('0x41')](db[_0x8b68('0x5b')]['rawAttributes']);_0x6d63cb[_0x8b68('0x40')]=_['keys'](_0x9c4e2a['query']);_0x6d63cb[_0x8b68('0x42')]=_['intersection'](_0x6d63cb[_0x8b68('0x3e')],_0x6d63cb[_0x8b68('0x40')]);_0x37c4cb[_0x8b68('0x44')]=_['intersection'](_0x6d63cb[_0x8b68('0x3e')],qs[_0x8b68('0x45')](_0x9c4e2a[_0x8b68('0x40')][_0x8b68('0x45')]));_0x37c4cb[_0x8b68('0x44')]=_0x37c4cb[_0x8b68('0x44')][_0x8b68('0x46')]?_0x37c4cb['attributes']:_0x6d63cb['model'];_0x37c4cb[_0x8b68('0x48')]=qs[_0x8b68('0x49')](_0x9c4e2a[_0x8b68('0x40')][_0x8b68('0x49')]);_0x37c4cb[_0x8b68('0x4b')]=qs[_0x8b68('0x42')](_[_0x8b68('0x5c')](_0x9c4e2a[_0x8b68('0x40')],_0x6d63cb[_0x8b68('0x42')]));if(_0x9c4e2a[_0x8b68('0x40')][_0x8b68('0x4a')]){_0x37c4cb[_0x8b68('0x4b')]=_[_0x8b68('0x4c')](_0x37c4cb[_0x8b68('0x4b')],{'$or':_[_0x8b68('0x3f')](_0x37c4cb[_0x8b68('0x44')],function(_0x3f1b87){var _0x10e8b7={};_0x10e8b7[_0x3f1b87]={'$like':'%'+_0x9c4e2a['query']['filter']+'%'};return _0x10e8b7;})});}_0x37c4cb=_[_0x8b68('0x4c')]({},_0x37c4cb,_0x9c4e2a[_0x8b68('0x53')]);return _0x271dbe['getConfigurations'](_0x37c4cb);}})['then'](function(_0x574aca){if(_0x574aca){_0x368c86=_0x574aca[_0x8b68('0x46')];if(!_0x9c4e2a[_0x8b68('0x40')][_0x8b68('0x5d')](_0x8b68('0x47'))){_0x37c4cb[_0x8b68('0x2d')]=qs['limit'](_0x9c4e2a[_0x8b68('0x40')][_0x8b68('0x2d')]);_0x37c4cb['offset']=qs[_0x8b68('0x2c')](_0x9c4e2a['query']['offset']);}return _0x271dbe['getConfigurations'](_0x37c4cb);}})[_0x8b68('0x33')](function(_0x2cb665){if(_0x2cb665){return _0x2cb665?{'count':_0x368c86,'rows':_0x2cb665}:null;}})[_0x8b68('0x33')](respondWithResult(_0x4677b6,null))[_0x8b68('0x28')](handleError(_0x4677b6,null));};exports[_0x8b68('0x5e')]=function(_0x1fc24c,_0x35b22b,_0x34456d){if(_0x1fc24c[_0x8b68('0x56')]['id']){delete _0x1fc24c[_0x8b68('0x56')]['id'];}return db['ZendeskAccount'][_0x8b68('0x5a')]({'where':{'id':_0x1fc24c[_0x8b68('0x57')]['id']}})[_0x8b68('0x33')](handleEntityNotFound(_0x35b22b,null))['then'](function(_0x5deaba){if(_0x5deaba){_0x1fc24c[_0x8b68('0x56')][_0x8b68('0x5f')]=_0x5deaba['id'];_0x1fc24c['body'][_0x8b68('0x60')]=integrations[_0x8b68('0x61')](_0x1fc24c[_0x8b68('0x56')][_0x8b68('0x62')],_0x1fc24c['body'][_0x8b68('0x3c')]);_0x1fc24c['body']['Descriptions']=integrations[_0x8b68('0x63')](_0x1fc24c['body'][_0x8b68('0x62')],_0x1fc24c[_0x8b68('0x56')]['type']);return db[_0x8b68('0x5b')][_0x8b68('0x55')](_0x1fc24c[_0x8b68('0x56')],{'include':[{'model':db[_0x8b68('0x64')],'as':_0x8b68('0x60')},{'model':db['ZendeskField'],'as':_0x8b68('0x65')}]});}return null;})[_0x8b68('0x33')](respondWithResult(_0x35b22b,null))[_0x8b68('0x28')](handleError(_0x35b22b,null));};exports[_0x8b68('0x66')]=function(_0x34c7d8,_0x49efb7,_0x4a743f){var _0x44af14='';return db['ZendeskAccount'][_0x8b68('0x5a')]({'where':{'id':_0x34c7d8[_0x8b68('0x57')]['id']},'attributes':['id',_0x8b68('0x67'),_0x8b68('0x68'),_0x8b68('0x69'),_0x8b68('0x6a'),_0x8b68('0x6b')]})['then'](handleEntityNotFound(_0x49efb7,null))[_0x8b68('0x33')](function(_0x4c0cc4){if(_0x4c0cc4){_0x44af14=_0x4c0cc4[_0x8b68('0x6b')];var _0x2caa28=_0x44af14[_0x8b68('0x6c')](-0x1);if(_0x2caa28==='/'){_0x44af14=_0x44af14['substring'](0x0,_0x44af14[_0x8b68('0x6d')](_0x2caa28));}var _0x50d0b9={'method':_0x8b68('0x6e'),'uri':util['format'](_0x8b68('0x6f'),_0x44af14,_0x8b68('0x70')),'json':!![]};switch(_0x4c0cc4[_0x8b68('0x6a')]){case'password':_0x50d0b9[_0x8b68('0x71')]={'Authorization':util[_0x8b68('0x72')](_0x8b68('0x73'),new Buffer(util[_0x8b68('0x72')](_0x8b68('0x74'),_0x4c0cc4[_0x8b68('0x67')],_0x4c0cc4[_0x8b68('0x68')]))[_0x8b68('0x75')](_0x8b68('0x76')))};break;case'token':_0x50d0b9[_0x8b68('0x71')]={'Authorization':util[_0x8b68('0x72')](_0x8b68('0x73'),new Buffer(util[_0x8b68('0x72')](_0x8b68('0x77'),_0x4c0cc4['username'],_0x4c0cc4[_0x8b68('0x69')]))['toString'](_0x8b68('0x76')))};break;default:throw new db[(_0x8b68('0x78'))]['ValidationError'](_0x8b68('0x79'));}return rp(_0x50d0b9);}})[_0x8b68('0x33')](function(_0xa7890f){if(_0xa7890f){var _0x4c9e0f=[_0x8b68('0x7a'),_0x8b68('0x7b'),_0x8b68('0x7c'),_0x8b68('0x7d')];_[_0x8b68('0x7e')](_0xa7890f[_0x8b68('0x70')],function(_0x541cf2){return _0x4c9e0f[_0x8b68('0x7f')](_0x541cf2[_0x8b68('0x3c')]);});return{'count':_0xa7890f[_0x8b68('0x70')]['length'],'rows':_[_0x8b68('0x3f')](_0xa7890f[_0x8b68('0x70')],function(_0x9a2cdf){return{'id':_0x9a2cdf['id'],'name':_0x9a2cdf[_0x8b68('0x80')]>0x7?_0x9a2cdf[_0x8b68('0x81')]:_0x9a2cdf[_0x8b68('0x3c')],'custom':_0x9a2cdf[_0x8b68('0x80')]>0x7?!![]:![],'options':_0x9a2cdf[_0x8b68('0x82')]?_0x9a2cdf[_0x8b68('0x82')]:_0x9a2cdf[_0x8b68('0x83')]?_0x9a2cdf[_0x8b68('0x83')]:[]};})};}})['then'](respondWithResult(_0x49efb7,null))['catch'](function(_0x1e77f0){var _0x3c6398=_0x34c7d8[_0x8b68('0x40')][_0x8b68('0x84')]?0x1f4:_0x1e77f0[_0x8b68('0x85')]||0x1f4;logger['error'](_0x8b68('0x86'),_0x8b68('0x66'),_0x3c6398,JSON[_0x8b68('0x87')](_0x1e77f0));delete _0x1e77f0[_0x8b68('0x36')];if(_0x3c6398===0x191){_0x3c6398=0x190;}_0x49efb7['status'](_0x3c6398)['send'](_0x34c7d8[_0x8b68('0x40')][_0x8b68('0x84')]?{'message':_0x8b68('0x88'),'statusCode':_0x1e77f0[_0x8b68('0x85')]}:_0x1e77f0);});};