Built motion from commit (unavailable).|2.5.17
[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 _0x7894=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','jayson/promise','http','then','ZendeskAccount,\x20%s,\x20%s','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','request\x20sent','catch','status','json','count','offset','limit','set','reject','save','update','destroy','end','sendStatus','stack','name','send','index','map','fieldName','type','key','model','filters','intersection','query','attributes','fields','length','hasOwnProperty','order','sort','filter','merge','where','VIRTUAL','ZendeskAccount','includeAll','include','findAll','rows','show','params','keys','rawAttributes','options','find','create','body','findOne','pick','nolimit','getConfigurations','addConfiguration','AccountId','Descriptions','getDescriptions','channel','ZendeskConfiguration','ZendeskField','getFields','username','password','token','authType','remoteUri','slice','substring','GET','format','%s/%s','ticket_fields','headers','Basic\x20%s','toString','base64','Sequelize','ValidationError','subject','description','group','remove','includes','position','title','system_field_options','custom_field_options','test','Wrong\x20credentials','statusCode','html-pdf'];(function(_0x40d2f7,_0x5579df){var _0x313b62=function(_0x2028a3){while(--_0x2028a3){_0x40d2f7['push'](_0x40d2f7['shift']());}};_0x313b62(++_0x5579df);}(_0x7894,0x170));var _0x4789=function(_0x49e11c,_0x261439){_0x49e11c=_0x49e11c-0x0;var _0x304fad=_0x7894[_0x49e11c];return _0x304fad;};'use strict';var pdf=require(_0x4789('0x0'));var emlformat=require(_0x4789('0x1'));var rimraf=require(_0x4789('0x2'));var zipdir=require(_0x4789('0x3'));var jsonpatch=require(_0x4789('0x4'));var rp=require(_0x4789('0x5'));var moment=require('moment');var BPromise=require(_0x4789('0x6'));var Mustache=require(_0x4789('0x7'));var util=require('util');var path=require(_0x4789('0x8'));var sox=require(_0x4789('0x9'));var csv=require(_0x4789('0xa'));var ejs=require(_0x4789('0xb'));var fs=require('fs');var _=require(_0x4789('0xc'));var squel=require(_0x4789('0xd'));var crypto=require(_0x4789('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4789('0xa'));var querystring=require('querystring');var Papa=require(_0x4789('0xf'));var Redis=require(_0x4789('0x10'));var authService=require(_0x4789('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x4789('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4789('0x13'))(_0x4789('0x14'));var utils=require(_0x4789('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4789('0x16'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x4789('0x17'));var client=jayson['client'][_0x4789('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x27ed2f,_0x515a8d,_0x37a816,_0x4e0fde){return new BPromise(function(_0x79b219,_0x49d44b){var _0x5162bd=_0x4e0fde||client;return _0x5162bd['request'](_0x27ed2f,_0x37a816)[_0x4789('0x19')](function(_0x364280){logger['info'](_0x4789('0x1a'),_0x515a8d,'request\x20sent');logger[_0x4789('0x1b')](_0x4789('0x1c'),_0x515a8d,'request\x20sent',JSON[_0x4789('0x1d')](_0x364280));if(_0x364280['error']){if(_0x364280[_0x4789('0x1e')]['code']===0x1f4){logger[_0x4789('0x1e')](_0x4789('0x1a'),_0x515a8d,_0x364280['error'][_0x4789('0x1f')]);return _0x49d44b(_0x364280[_0x4789('0x1e')][_0x4789('0x1f')]);}logger[_0x4789('0x1e')](_0x4789('0x1a'),_0x515a8d,_0x364280[_0x4789('0x1e')][_0x4789('0x1f')]);return _0x79b219(_0x364280[_0x4789('0x1e')][_0x4789('0x1f')]);}else{logger[_0x4789('0x20')](_0x4789('0x1a'),_0x515a8d,_0x4789('0x21'));_0x79b219(_0x364280['result'][_0x4789('0x1f')]);}})[_0x4789('0x22')](function(_0x5c1166){logger[_0x4789('0x1e')](_0x4789('0x1a'),_0x515a8d,_0x5c1166);_0x49d44b(_0x5c1166);});});}function respondWithStatusCode(_0x520eed,_0xff56dd){_0xff56dd=_0xff56dd||0xcc;return function(_0x1ca6ca){if(_0x1ca6ca){return _0x520eed['sendStatus'](_0xff56dd);}return _0x520eed[_0x4789('0x23')](_0xff56dd)['end']();};}function respondWithResult(_0x23c239,_0x7a4c83){_0x7a4c83=_0x7a4c83||0xc8;return function(_0x307b90){if(_0x307b90){return _0x23c239[_0x4789('0x23')](_0x7a4c83)[_0x4789('0x24')](_0x307b90);}};}function respondWithFilteredResult(_0x3b60f4,_0x182958){return function(_0x3ccbb9){if(_0x3ccbb9){var _0x4647fc=_0x3ccbb9[_0x4789('0x25')],_0xaa1cbb=_0x182958[_0x4789('0x26')],_0x29a4bb=_0x182958[_0x4789('0x26')]+_0x182958[_0x4789('0x27')],_0x33a7bb;if(_0x29a4bb>=_0x4647fc){_0x29a4bb=_0x4647fc;_0x33a7bb=0xc8;}else{_0x33a7bb=0xce;}_0x3b60f4[_0x4789('0x23')](_0x33a7bb);return _0x3b60f4[_0x4789('0x28')]('Content-Range',_0xaa1cbb+'-'+_0x29a4bb+'/'+_0x4647fc)['json'](_0x3ccbb9);}return null;};}function patchUpdates(_0x3d414e){return function(_0x5c6385){try{jsonpatch['apply'](_0x5c6385,_0x3d414e,!![]);}catch(_0x5894f8){return BPromise[_0x4789('0x29')](_0x5894f8);}return _0x5c6385[_0x4789('0x2a')]();};}function saveUpdates(_0x392b60,_0x4547f7){return function(_0x17e699){if(_0x17e699){return _0x17e699[_0x4789('0x2b')](_0x392b60)[_0x4789('0x19')](function(_0x3948d6){return _0x3948d6;});}return null;};}function removeEntity(_0x208469,_0x4cf167){return function(_0x45e379){if(_0x45e379){return _0x45e379[_0x4789('0x2c')]()[_0x4789('0x19')](function(){_0x208469[_0x4789('0x23')](0xcc)[_0x4789('0x2d')]();});}};}function handleEntityNotFound(_0x15660e,_0x1debe1){return function(_0x1b1ac5){if(!_0x1b1ac5){_0x15660e[_0x4789('0x2e')](0x194);}return _0x1b1ac5;};}function handleError(_0x409af2,_0xfa4603){_0xfa4603=_0xfa4603||0x1f4;return function(_0x35ce13){logger[_0x4789('0x1e')](_0x35ce13[_0x4789('0x2f')]);if(_0x35ce13[_0x4789('0x30')]){delete _0x35ce13['name'];}_0x409af2[_0x4789('0x23')](_0xfa4603)[_0x4789('0x31')](_0x35ce13);};}exports[_0x4789('0x32')]=function(_0x602b1f,_0x45785a){var _0xbb8ab2={},_0x4662e2={},_0x5486c6={'count':0x0,'rows':[]};var _0x39e379=_[_0x4789('0x33')](db['ZendeskAccount']['rawAttributes'],function(_0x43ecc4){return{'name':_0x43ecc4[_0x4789('0x34')],'type':_0x43ecc4[_0x4789('0x35')][_0x4789('0x36')]};});_0x4662e2[_0x4789('0x37')]=_[_0x4789('0x33')](_0x39e379,_0x4789('0x30'));_0x4662e2['query']=_['keys'](_0x602b1f['query']);_0x4662e2[_0x4789('0x38')]=_[_0x4789('0x39')](_0x4662e2[_0x4789('0x37')],_0x4662e2[_0x4789('0x3a')]);_0xbb8ab2[_0x4789('0x3b')]=_[_0x4789('0x39')](_0x4662e2[_0x4789('0x37')],qs['fields'](_0x602b1f[_0x4789('0x3a')][_0x4789('0x3c')]));_0xbb8ab2[_0x4789('0x3b')]=_0xbb8ab2['attributes'][_0x4789('0x3d')]?_0xbb8ab2[_0x4789('0x3b')]:_0x4662e2[_0x4789('0x37')];if(!_0x602b1f[_0x4789('0x3a')][_0x4789('0x3e')]('nolimit')){_0xbb8ab2[_0x4789('0x27')]=qs['limit'](_0x602b1f[_0x4789('0x3a')][_0x4789('0x27')]);_0xbb8ab2[_0x4789('0x26')]=qs[_0x4789('0x26')](_0x602b1f[_0x4789('0x3a')]['offset']);}_0xbb8ab2[_0x4789('0x3f')]=qs['sort'](_0x602b1f[_0x4789('0x3a')][_0x4789('0x40')]);_0xbb8ab2['where']=qs[_0x4789('0x38')](_['pick'](_0x602b1f[_0x4789('0x3a')],_0x4662e2[_0x4789('0x38')]),_0x39e379);if(_0x602b1f[_0x4789('0x3a')][_0x4789('0x41')]){_0xbb8ab2['where']=_[_0x4789('0x42')](_0xbb8ab2[_0x4789('0x43')],{'$or':_['map'](_0x39e379,function(_0x3d9377){if(_0x3d9377[_0x4789('0x35')]!==_0x4789('0x44')){var _0x50effb={};_0x50effb[_0x3d9377['name']]={'$like':'%'+_0x602b1f[_0x4789('0x3a')]['filter']+'%'};return _0x50effb;}})});}_0xbb8ab2=_[_0x4789('0x42')]({},_0xbb8ab2,_0x602b1f['options']);var _0x861bcb={'where':_0xbb8ab2[_0x4789('0x43')]};return db[_0x4789('0x45')][_0x4789('0x25')](_0x861bcb)[_0x4789('0x19')](function(_0x4081bb){_0x5486c6[_0x4789('0x25')]=_0x4081bb;if(_0x602b1f['query'][_0x4789('0x46')]){_0xbb8ab2[_0x4789('0x47')]=[{'all':!![]}];}return db[_0x4789('0x45')][_0x4789('0x48')](_0xbb8ab2);})[_0x4789('0x19')](function(_0x11ce78){_0x5486c6[_0x4789('0x49')]=_0x11ce78;return _0x5486c6;})[_0x4789('0x19')](respondWithFilteredResult(_0x45785a,_0xbb8ab2))[_0x4789('0x22')](handleError(_0x45785a,null));};exports[_0x4789('0x4a')]=function(_0x49dbd7,_0x45090a){var _0x118bc7={'raw':![],'where':{'id':_0x49dbd7[_0x4789('0x4b')]['id']}},_0x5a7812={};_0x5a7812[_0x4789('0x37')]=_[_0x4789('0x4c')](db[_0x4789('0x45')][_0x4789('0x4d')]);_0x5a7812['query']=_[_0x4789('0x4c')](_0x49dbd7[_0x4789('0x3a')]);_0x5a7812[_0x4789('0x38')]=_[_0x4789('0x39')](_0x5a7812[_0x4789('0x37')],_0x5a7812[_0x4789('0x3a')]);_0x118bc7[_0x4789('0x3b')]=_[_0x4789('0x39')](_0x5a7812[_0x4789('0x37')],qs[_0x4789('0x3c')](_0x49dbd7[_0x4789('0x3a')]['fields']));_0x118bc7[_0x4789('0x3b')]=_0x118bc7[_0x4789('0x3b')][_0x4789('0x3d')]?_0x118bc7[_0x4789('0x3b')]:_0x5a7812[_0x4789('0x37')];if(_0x49dbd7['query'][_0x4789('0x46')]){_0x118bc7['include']=[{'all':!![]}];}_0x118bc7=_['merge']({},_0x118bc7,_0x49dbd7[_0x4789('0x4e')]);return db[_0x4789('0x45')][_0x4789('0x4f')](_0x118bc7)[_0x4789('0x19')](handleEntityNotFound(_0x45090a,null))[_0x4789('0x19')](respondWithResult(_0x45090a,null))[_0x4789('0x22')](handleError(_0x45090a,null));};exports[_0x4789('0x50')]=function(_0x288488,_0x51a5f0){return db[_0x4789('0x45')]['create'](_0x288488['body'],{})[_0x4789('0x19')](respondWithResult(_0x51a5f0,0xc9))['catch'](handleError(_0x51a5f0,null));};exports[_0x4789('0x2b')]=function(_0x3dac68,_0x3039b0){if(_0x3dac68['body']['id']){delete _0x3dac68[_0x4789('0x51')]['id'];}return db['ZendeskAccount'][_0x4789('0x4f')]({'where':{'id':_0x3dac68['params']['id']}})[_0x4789('0x19')](handleEntityNotFound(_0x3039b0,null))[_0x4789('0x19')](saveUpdates(_0x3dac68[_0x4789('0x51')],null))[_0x4789('0x19')](respondWithResult(_0x3039b0,null))[_0x4789('0x22')](handleError(_0x3039b0,null));};exports[_0x4789('0x2c')]=function(_0xb62b21,_0x3f4e55){return db[_0x4789('0x45')]['find']({'where':{'id':_0xb62b21[_0x4789('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3f4e55,null))[_0x4789('0x19')](removeEntity(_0x3f4e55,null))[_0x4789('0x22')](handleError(_0x3f4e55,null));};exports['getConfigurations']=function(_0x3dc751,_0x1f247c,_0x455bda){var _0x3b0e6c={};var _0x33fdd3={};var _0x21ab9e;var _0x2abbae;return db[_0x4789('0x45')][_0x4789('0x52')]({'where':{'id':_0x3dc751[_0x4789('0x4b')]['id']}})[_0x4789('0x19')](handleEntityNotFound(_0x1f247c,null))[_0x4789('0x19')](function(_0x50eeae){if(_0x50eeae){_0x21ab9e=_0x50eeae;_0x33fdd3['model']=_[_0x4789('0x4c')](db['ZendeskConfiguration'][_0x4789('0x4d')]);_0x33fdd3[_0x4789('0x3a')]=_[_0x4789('0x4c')](_0x3dc751[_0x4789('0x3a')]);_0x33fdd3[_0x4789('0x38')]=_[_0x4789('0x39')](_0x33fdd3[_0x4789('0x37')],_0x33fdd3[_0x4789('0x3a')]);_0x3b0e6c['attributes']=_[_0x4789('0x39')](_0x33fdd3[_0x4789('0x37')],qs['fields'](_0x3dc751[_0x4789('0x3a')][_0x4789('0x3c')]));_0x3b0e6c[_0x4789('0x3b')]=_0x3b0e6c[_0x4789('0x3b')][_0x4789('0x3d')]?_0x3b0e6c[_0x4789('0x3b')]:_0x33fdd3['model'];_0x3b0e6c['order']=qs[_0x4789('0x40')](_0x3dc751[_0x4789('0x3a')][_0x4789('0x40')]);_0x3b0e6c[_0x4789('0x43')]=qs[_0x4789('0x38')](_[_0x4789('0x53')](_0x3dc751[_0x4789('0x3a')],_0x33fdd3[_0x4789('0x38')]));if(_0x3dc751[_0x4789('0x3a')][_0x4789('0x41')]){_0x3b0e6c['where']=_[_0x4789('0x42')](_0x3b0e6c[_0x4789('0x43')],{'$or':_[_0x4789('0x33')](_0x3b0e6c['attributes'],function(_0x40d6a6){var _0x170b2e={};_0x170b2e[_0x40d6a6]={'$like':'%'+_0x3dc751['query']['filter']+'%'};return _0x170b2e;})});}_0x3b0e6c=_['merge']({},_0x3b0e6c,_0x3dc751[_0x4789('0x4e')]);return _0x21ab9e['getConfigurations'](_0x3b0e6c);}})[_0x4789('0x19')](function(_0x34b2fb){if(_0x34b2fb){_0x2abbae=_0x34b2fb[_0x4789('0x3d')];if(!_0x3dc751['query'][_0x4789('0x3e')](_0x4789('0x54'))){_0x3b0e6c['limit']=qs['limit'](_0x3dc751[_0x4789('0x3a')][_0x4789('0x27')]);_0x3b0e6c['offset']=qs[_0x4789('0x26')](_0x3dc751['query'][_0x4789('0x26')]);}return _0x21ab9e[_0x4789('0x55')](_0x3b0e6c);}})[_0x4789('0x19')](function(_0x316c40){if(_0x316c40){return _0x316c40?{'count':_0x2abbae,'rows':_0x316c40}:null;}})['then'](respondWithResult(_0x1f247c,null))[_0x4789('0x22')](handleError(_0x1f247c,null));};exports[_0x4789('0x56')]=function(_0x327003,_0x9d5a36,_0x538855){if(_0x327003[_0x4789('0x51')]['id']){delete _0x327003[_0x4789('0x51')]['id'];}return db[_0x4789('0x45')][_0x4789('0x52')]({'where':{'id':_0x327003[_0x4789('0x4b')]['id']}})[_0x4789('0x19')](handleEntityNotFound(_0x9d5a36,null))[_0x4789('0x19')](function(_0x392387){if(_0x392387){_0x327003[_0x4789('0x51')][_0x4789('0x57')]=_0x392387['id'];_0x327003[_0x4789('0x51')]['Subjects']=integrations['getSubjects'](_0x327003['body']['channel'],_0x327003[_0x4789('0x51')]['type']);_0x327003[_0x4789('0x51')][_0x4789('0x58')]=integrations[_0x4789('0x59')](_0x327003[_0x4789('0x51')][_0x4789('0x5a')],_0x327003[_0x4789('0x51')]['type']);return db[_0x4789('0x5b')][_0x4789('0x50')](_0x327003[_0x4789('0x51')],{'include':[{'model':db[_0x4789('0x5c')],'as':'Subjects'},{'model':db['ZendeskField'],'as':'Descriptions'}]});}return null;})[_0x4789('0x19')](respondWithResult(_0x9d5a36,null))[_0x4789('0x22')](handleError(_0x9d5a36,null));};exports[_0x4789('0x5d')]=function(_0x1a2569,_0x11f065,_0x44ce1d){var _0x29104d='';return db[_0x4789('0x45')]['findOne']({'where':{'id':_0x1a2569[_0x4789('0x4b')]['id']},'attributes':['id',_0x4789('0x5e'),_0x4789('0x5f'),_0x4789('0x60'),_0x4789('0x61'),_0x4789('0x62')]})[_0x4789('0x19')](handleEntityNotFound(_0x11f065,null))[_0x4789('0x19')](function(_0x1871eb){if(_0x1871eb){_0x29104d=_0x1871eb[_0x4789('0x62')];var _0x2785d3=_0x29104d[_0x4789('0x63')](-0x1);if(_0x2785d3==='/'){_0x29104d=_0x29104d[_0x4789('0x64')](0x0,_0x29104d['lastIndexOf'](_0x2785d3));}var _0x3e3f60={'method':_0x4789('0x65'),'uri':util[_0x4789('0x66')](_0x4789('0x67'),_0x29104d,_0x4789('0x68')),'json':!![]};switch(_0x1871eb[_0x4789('0x61')]){case _0x4789('0x5f'):_0x3e3f60[_0x4789('0x69')]={'Authorization':util[_0x4789('0x66')](_0x4789('0x6a'),new Buffer(util[_0x4789('0x66')]('%s:%s',_0x1871eb[_0x4789('0x5e')],_0x1871eb[_0x4789('0x5f')]))['toString']('base64'))};break;case _0x4789('0x60'):_0x3e3f60[_0x4789('0x69')]={'Authorization':util[_0x4789('0x66')](_0x4789('0x6a'),new Buffer(util[_0x4789('0x66')]('%s/token:%s',_0x1871eb[_0x4789('0x5e')],_0x1871eb[_0x4789('0x60')]))[_0x4789('0x6b')](_0x4789('0x6c')))};break;default:throw new db[(_0x4789('0x6d'))][(_0x4789('0x6e'))]('Unknown\x20authentication\x20type');}return rp(_0x3e3f60);}})['then'](function(_0xa062c8){if(_0xa062c8){var _0x433a65=[_0x4789('0x6f'),_0x4789('0x70'),_0x4789('0x71'),'assignee'];_[_0x4789('0x72')](_0xa062c8[_0x4789('0x68')],function(_0x1869c2){return _0x433a65[_0x4789('0x73')](_0x1869c2[_0x4789('0x35')]);});return{'count':_0xa062c8['ticket_fields'][_0x4789('0x3d')],'rows':_[_0x4789('0x33')](_0xa062c8[_0x4789('0x68')],function(_0x37fdd4){return{'id':_0x37fdd4['id'],'name':_0x37fdd4[_0x4789('0x74')]>0x7?_0x37fdd4[_0x4789('0x75')]:_0x37fdd4[_0x4789('0x35')],'custom':_0x37fdd4[_0x4789('0x74')]>0x7?!![]:![],'options':_0x37fdd4[_0x4789('0x76')]?_0x37fdd4['system_field_options']:_0x37fdd4[_0x4789('0x77')]?_0x37fdd4[_0x4789('0x77')]:[]};})};}})['then'](respondWithResult(_0x11f065,null))[_0x4789('0x22')](function(_0x406902){var _0x276a60=_0x1a2569[_0x4789('0x3a')][_0x4789('0x78')]?0x1f4:_0x406902['statusCode']||0x1f4;logger[_0x4789('0x1e')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x276a60,JSON['stringify'](_0x406902));delete _0x406902[_0x4789('0x30')];if(_0x276a60===0x191){_0x276a60=0x190;}_0x11f065[_0x4789('0x23')](_0x276a60)[_0x4789('0x31')](_0x1a2569[_0x4789('0x3a')][_0x4789('0x78')]?{'message':_0x4789('0x79'),'statusCode':_0x406902[_0x4789('0x7a')]}:_0x406902);});};