b1e7e76c9707786f46a545d3d7c96521200efae2
[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 _0x5b02=['client','http','request','info','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','code','ZendeskAccount,\x20%s,\x20%s','message','result','catch','end','status','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','sendStatus','stack','name','send','index','map','ZendeskAccount','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','count','includeAll','include','rows','params','keys','length','create','body','find','getConfigurations','findOne','ZendeskConfiguration','options','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','ZendeskField','getFields','username','authType','remoteUri','slice','substring','lastIndexOf','GET','format','ticket_fields','password','headers','Basic\x20%s','%s:%s','toString','base64','token','Sequelize','Unknown\x20authentication\x20type','subject','group','assignee','remove','position','title','system_field_options','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise'];(function(_0x2059ce,_0x27197c){var _0x20ef20=function(_0x221ccf){while(--_0x221ccf){_0x2059ce['push'](_0x2059ce['shift']());}};_0x20ef20(++_0x27197c);}(_0x5b02,0xe9));var _0x25b0=function(_0x2cb092,_0x171c6d){_0x2cb092=_0x2cb092-0x0;var _0x6634d5=_0x5b02[_0x2cb092];return _0x6634d5;};'use strict';var pdf=require(_0x25b0('0x0'));var emlformat=require(_0x25b0('0x1'));var rimraf=require(_0x25b0('0x2'));var zipdir=require(_0x25b0('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x25b0('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x25b0('0x5'));var util=require(_0x25b0('0x6'));var path=require(_0x25b0('0x7'));var sox=require(_0x25b0('0x8'));var csv=require(_0x25b0('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x25b0('0xa'));var squel=require(_0x25b0('0xb'));var crypto=require('crypto');var jsforce=require(_0x25b0('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x25b0('0xd'));var Papa=require(_0x25b0('0xe'));var Redis=require(_0x25b0('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x25b0('0x10'));var as=require(_0x25b0('0x11'));var hardwareService=require(_0x25b0('0x12'));var logger=require(_0x25b0('0x13'))(_0x25b0('0x14'));var utils=require(_0x25b0('0x15'));var config=require(_0x25b0('0x16'));var licenseUtil=require(_0x25b0('0x17'));var db=require(_0x25b0('0x18'))['db'];var integrations=require(_0x25b0('0x19'));var jayson=require(_0x25b0('0x1a'));var client=jayson[_0x25b0('0x1b')][_0x25b0('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x3655c2,_0x1ceeb1,_0x42cc07,_0x293203){return new BPromise(function(_0x211658,_0x418954){var _0x3b89e7=_0x293203||client;return _0x3b89e7[_0x25b0('0x1d')](_0x3655c2,_0x42cc07)['then'](function(_0x51542b){logger[_0x25b0('0x1e')]('ZendeskAccount,\x20%s,\x20%s',_0x1ceeb1,_0x25b0('0x1f'));logger[_0x25b0('0x20')](_0x25b0('0x21'),_0x1ceeb1,_0x25b0('0x1f'),JSON['stringify'](_0x51542b));if(_0x51542b[_0x25b0('0x22')]){if(_0x51542b[_0x25b0('0x22')][_0x25b0('0x23')]===0x1f4){logger[_0x25b0('0x22')](_0x25b0('0x24'),_0x1ceeb1,_0x51542b[_0x25b0('0x22')]['message']);return _0x418954(_0x51542b[_0x25b0('0x22')][_0x25b0('0x25')]);}logger[_0x25b0('0x22')](_0x25b0('0x24'),_0x1ceeb1,_0x51542b[_0x25b0('0x22')][_0x25b0('0x25')]);return _0x211658(_0x51542b[_0x25b0('0x22')][_0x25b0('0x25')]);}else{logger[_0x25b0('0x1e')](_0x25b0('0x24'),_0x1ceeb1,_0x25b0('0x1f'));_0x211658(_0x51542b[_0x25b0('0x26')]['message']);}})[_0x25b0('0x27')](function(_0x16623c){logger['error'](_0x25b0('0x24'),_0x1ceeb1,_0x16623c);_0x418954(_0x16623c);});});}function respondWithStatusCode(_0x2023d8,_0x3546f0){_0x3546f0=_0x3546f0||0xcc;return function(_0x498fef){if(_0x498fef){return _0x2023d8['sendStatus'](_0x3546f0);}return _0x2023d8['status'](_0x3546f0)[_0x25b0('0x28')]();};}function respondWithResult(_0x433085,_0x99bd3a){_0x99bd3a=_0x99bd3a||0xc8;return function(_0x24f847){if(_0x24f847){return _0x433085[_0x25b0('0x29')](_0x99bd3a)[_0x25b0('0x2a')](_0x24f847);}};}function respondWithFilteredResult(_0x40268a,_0x75ce7a){return function(_0x22e024){if(_0x22e024){var _0x596d14=_0x22e024['count'],_0x2ea408=_0x75ce7a['offset'],_0xbfba84=_0x75ce7a[_0x25b0('0x2b')]+_0x75ce7a[_0x25b0('0x2c')],_0x5ed7d2;if(_0xbfba84>=_0x596d14){_0xbfba84=_0x596d14;_0x5ed7d2=0xc8;}else{_0x5ed7d2=0xce;}_0x40268a[_0x25b0('0x29')](_0x5ed7d2);return _0x40268a[_0x25b0('0x2d')](_0x25b0('0x2e'),_0x2ea408+'-'+_0xbfba84+'/'+_0x596d14)[_0x25b0('0x2a')](_0x22e024);}return null;};}function patchUpdates(_0x12676b){return function(_0x227287){try{jsonpatch[_0x25b0('0x2f')](_0x227287,_0x12676b,!![]);}catch(_0x285a2b){return BPromise[_0x25b0('0x30')](_0x285a2b);}return _0x227287[_0x25b0('0x31')]();};}function saveUpdates(_0x1ea374,_0x4f640f){return function(_0x559fc8){if(_0x559fc8){return _0x559fc8[_0x25b0('0x32')](_0x1ea374)['then'](function(_0x4dfeea){return _0x4dfeea;});}return null;};}function removeEntity(_0x3317fc,_0x419975){return function(_0x46c5e8){if(_0x46c5e8){return _0x46c5e8[_0x25b0('0x33')]()[_0x25b0('0x34')](function(){_0x3317fc['status'](0xcc)[_0x25b0('0x28')]();});}};}function handleEntityNotFound(_0x3636be,_0x4dad3a){return function(_0x13ce9){if(!_0x13ce9){_0x3636be[_0x25b0('0x35')](0x194);}return _0x13ce9;};}function handleError(_0x5004cd,_0x215fb8){_0x215fb8=_0x215fb8||0x1f4;return function(_0x49b3a5){logger[_0x25b0('0x22')](_0x49b3a5[_0x25b0('0x36')]);if(_0x49b3a5[_0x25b0('0x37')]){delete _0x49b3a5[_0x25b0('0x37')];}_0x5004cd[_0x25b0('0x29')](_0x215fb8)[_0x25b0('0x38')](_0x49b3a5);};}exports[_0x25b0('0x39')]=function(_0x206186,_0x2f123c){var _0x4790fe={},_0x461a06={},_0x434bda={'count':0x0,'rows':[]};var _0x3887e8=_[_0x25b0('0x3a')](db[_0x25b0('0x3b')][_0x25b0('0x3c')],function(_0x1eee05){return{'name':_0x1eee05[_0x25b0('0x3d')],'type':_0x1eee05[_0x25b0('0x3e')][_0x25b0('0x3f')]};});_0x461a06['model']=_[_0x25b0('0x3a')](_0x3887e8,_0x25b0('0x37'));_0x461a06[_0x25b0('0x40')]=_['keys'](_0x206186[_0x25b0('0x40')]);_0x461a06[_0x25b0('0x41')]=_[_0x25b0('0x42')](_0x461a06[_0x25b0('0x43')],_0x461a06[_0x25b0('0x40')]);_0x4790fe[_0x25b0('0x44')]=_[_0x25b0('0x42')](_0x461a06[_0x25b0('0x43')],qs['fields'](_0x206186['query'][_0x25b0('0x45')]));_0x4790fe[_0x25b0('0x44')]=_0x4790fe[_0x25b0('0x44')]['length']?_0x4790fe[_0x25b0('0x44')]:_0x461a06['model'];if(!_0x206186[_0x25b0('0x40')][_0x25b0('0x46')](_0x25b0('0x47'))){_0x4790fe[_0x25b0('0x2c')]=qs[_0x25b0('0x2c')](_0x206186['query'][_0x25b0('0x2c')]);_0x4790fe[_0x25b0('0x2b')]=qs[_0x25b0('0x2b')](_0x206186[_0x25b0('0x40')][_0x25b0('0x2b')]);}_0x4790fe['order']=qs[_0x25b0('0x48')](_0x206186[_0x25b0('0x40')][_0x25b0('0x48')]);_0x4790fe[_0x25b0('0x49')]=qs[_0x25b0('0x41')](_[_0x25b0('0x4a')](_0x206186[_0x25b0('0x40')],_0x461a06[_0x25b0('0x41')]),_0x3887e8);if(_0x206186[_0x25b0('0x40')][_0x25b0('0x4b')]){_0x4790fe[_0x25b0('0x49')]=_['merge'](_0x4790fe[_0x25b0('0x49')],{'$or':_['map'](_0x3887e8,function(_0x11a766){if(_0x11a766[_0x25b0('0x3e')]!==_0x25b0('0x4c')){var _0x365805={};_0x365805[_0x11a766['name']]={'$like':'%'+_0x206186[_0x25b0('0x40')][_0x25b0('0x4b')]+'%'};return _0x365805;}})});}_0x4790fe=_[_0x25b0('0x4d')]({},_0x4790fe,_0x206186['options']);var _0x4734b1={'where':_0x4790fe[_0x25b0('0x49')]};return db[_0x25b0('0x3b')][_0x25b0('0x4e')](_0x4734b1)[_0x25b0('0x34')](function(_0x3c6ec1){_0x434bda[_0x25b0('0x4e')]=_0x3c6ec1;if(_0x206186['query'][_0x25b0('0x4f')]){_0x4790fe[_0x25b0('0x50')]=[{'all':!![]}];}return db[_0x25b0('0x3b')]['findAll'](_0x4790fe);})[_0x25b0('0x34')](function(_0xda629){_0x434bda[_0x25b0('0x51')]=_0xda629;return _0x434bda;})[_0x25b0('0x34')](respondWithFilteredResult(_0x2f123c,_0x4790fe))[_0x25b0('0x27')](handleError(_0x2f123c,null));};exports['show']=function(_0x1e8a8d,_0x1cf933){var _0x23de77={'raw':![],'where':{'id':_0x1e8a8d[_0x25b0('0x52')]['id']}},_0x524e9a={};_0x524e9a[_0x25b0('0x43')]=_[_0x25b0('0x53')](db[_0x25b0('0x3b')][_0x25b0('0x3c')]);_0x524e9a[_0x25b0('0x40')]=_['keys'](_0x1e8a8d['query']);_0x524e9a['filters']=_[_0x25b0('0x42')](_0x524e9a['model'],_0x524e9a['query']);_0x23de77[_0x25b0('0x44')]=_['intersection'](_0x524e9a[_0x25b0('0x43')],qs['fields'](_0x1e8a8d['query'][_0x25b0('0x45')]));_0x23de77[_0x25b0('0x44')]=_0x23de77[_0x25b0('0x44')][_0x25b0('0x54')]?_0x23de77[_0x25b0('0x44')]:_0x524e9a[_0x25b0('0x43')];if(_0x1e8a8d[_0x25b0('0x40')][_0x25b0('0x4f')]){_0x23de77[_0x25b0('0x50')]=[{'all':!![]}];}_0x23de77=_[_0x25b0('0x4d')]({},_0x23de77,_0x1e8a8d['options']);return db['ZendeskAccount']['find'](_0x23de77)[_0x25b0('0x34')](handleEntityNotFound(_0x1cf933,null))[_0x25b0('0x34')](respondWithResult(_0x1cf933,null))[_0x25b0('0x27')](handleError(_0x1cf933,null));};exports[_0x25b0('0x55')]=function(_0x14db4c,_0x3f460f){return db[_0x25b0('0x3b')]['create'](_0x14db4c[_0x25b0('0x56')],{})['then'](respondWithResult(_0x3f460f,0xc9))[_0x25b0('0x27')](handleError(_0x3f460f,null));};exports['update']=function(_0x488df6,_0x403508){if(_0x488df6['body']['id']){delete _0x488df6['body']['id'];}return db[_0x25b0('0x3b')][_0x25b0('0x57')]({'where':{'id':_0x488df6[_0x25b0('0x52')]['id']}})[_0x25b0('0x34')](handleEntityNotFound(_0x403508,null))[_0x25b0('0x34')](saveUpdates(_0x488df6[_0x25b0('0x56')],null))[_0x25b0('0x34')](respondWithResult(_0x403508,null))[_0x25b0('0x27')](handleError(_0x403508,null));};exports[_0x25b0('0x33')]=function(_0xfd3b6c,_0x56bc21){return db['ZendeskAccount'][_0x25b0('0x57')]({'where':{'id':_0xfd3b6c[_0x25b0('0x52')]['id']}})['then'](handleEntityNotFound(_0x56bc21,null))[_0x25b0('0x34')](removeEntity(_0x56bc21,null))[_0x25b0('0x27')](handleError(_0x56bc21,null));};exports[_0x25b0('0x58')]=function(_0x43ad53,_0x345349,_0x4cce6a){var _0x163a01={};var _0x2d1577={};var _0x135371;var _0x5b39d3;return db[_0x25b0('0x3b')][_0x25b0('0x59')]({'where':{'id':_0x43ad53[_0x25b0('0x52')]['id']}})[_0x25b0('0x34')](handleEntityNotFound(_0x345349,null))[_0x25b0('0x34')](function(_0x256338){if(_0x256338){_0x135371=_0x256338;_0x2d1577[_0x25b0('0x43')]=_[_0x25b0('0x53')](db[_0x25b0('0x5a')][_0x25b0('0x3c')]);_0x2d1577[_0x25b0('0x40')]=_[_0x25b0('0x53')](_0x43ad53[_0x25b0('0x40')]);_0x2d1577[_0x25b0('0x41')]=_['intersection'](_0x2d1577[_0x25b0('0x43')],_0x2d1577[_0x25b0('0x40')]);_0x163a01['attributes']=_[_0x25b0('0x42')](_0x2d1577['model'],qs[_0x25b0('0x45')](_0x43ad53[_0x25b0('0x40')]['fields']));_0x163a01[_0x25b0('0x44')]=_0x163a01[_0x25b0('0x44')][_0x25b0('0x54')]?_0x163a01['attributes']:_0x2d1577[_0x25b0('0x43')];_0x163a01['order']=qs[_0x25b0('0x48')](_0x43ad53[_0x25b0('0x40')]['sort']);_0x163a01[_0x25b0('0x49')]=qs[_0x25b0('0x41')](_['pick'](_0x43ad53[_0x25b0('0x40')],_0x2d1577['filters']));if(_0x43ad53['query']['filter']){_0x163a01[_0x25b0('0x49')]=_[_0x25b0('0x4d')](_0x163a01[_0x25b0('0x49')],{'$or':_['map'](_0x163a01[_0x25b0('0x44')],function(_0x431482){var _0x290ccb={};_0x290ccb[_0x431482]={'$like':'%'+_0x43ad53[_0x25b0('0x40')][_0x25b0('0x4b')]+'%'};return _0x290ccb;})});}_0x163a01=_[_0x25b0('0x4d')]({},_0x163a01,_0x43ad53[_0x25b0('0x5b')]);return _0x135371[_0x25b0('0x58')](_0x163a01);}})[_0x25b0('0x34')](function(_0x330e6d){if(_0x330e6d){_0x5b39d3=_0x330e6d[_0x25b0('0x54')];if(!_0x43ad53[_0x25b0('0x40')][_0x25b0('0x46')](_0x25b0('0x47'))){_0x163a01[_0x25b0('0x2c')]=qs[_0x25b0('0x2c')](_0x43ad53[_0x25b0('0x40')]['limit']);_0x163a01[_0x25b0('0x2b')]=qs['offset'](_0x43ad53[_0x25b0('0x40')][_0x25b0('0x2b')]);}return _0x135371[_0x25b0('0x58')](_0x163a01);}})[_0x25b0('0x34')](function(_0x568f95){if(_0x568f95){return _0x568f95?{'count':_0x5b39d3,'rows':_0x568f95}:null;}})[_0x25b0('0x34')](respondWithResult(_0x345349,null))[_0x25b0('0x27')](handleError(_0x345349,null));};exports[_0x25b0('0x5c')]=function(_0x2217e7,_0x46a1d1,_0x19e49c){if(_0x2217e7['body']['id']){delete _0x2217e7['body']['id'];}return db[_0x25b0('0x3b')]['findOne']({'where':{'id':_0x2217e7[_0x25b0('0x52')]['id']}})[_0x25b0('0x34')](handleEntityNotFound(_0x46a1d1,null))[_0x25b0('0x34')](function(_0x5279ab){if(_0x5279ab){_0x2217e7[_0x25b0('0x56')][_0x25b0('0x5d')]=_0x5279ab['id'];_0x2217e7[_0x25b0('0x56')][_0x25b0('0x5e')]=integrations['getSubjects'](_0x2217e7[_0x25b0('0x56')][_0x25b0('0x5f')],_0x2217e7[_0x25b0('0x56')]['type']);_0x2217e7[_0x25b0('0x56')][_0x25b0('0x60')]=integrations[_0x25b0('0x61')](_0x2217e7[_0x25b0('0x56')][_0x25b0('0x5f')],_0x2217e7[_0x25b0('0x56')][_0x25b0('0x3e')]);return db[_0x25b0('0x5a')]['create'](_0x2217e7[_0x25b0('0x56')],{'include':[{'model':db[_0x25b0('0x62')],'as':_0x25b0('0x5e')},{'model':db[_0x25b0('0x62')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x46a1d1,null))[_0x25b0('0x27')](handleError(_0x46a1d1,null));};exports[_0x25b0('0x63')]=function(_0x10f062,_0x350fc1,_0x4d9412){var _0x3315bf='';return db[_0x25b0('0x3b')]['findOne']({'where':{'id':_0x10f062[_0x25b0('0x52')]['id']},'attributes':['id',_0x25b0('0x64'),'password','token',_0x25b0('0x65'),_0x25b0('0x66')]})[_0x25b0('0x34')](handleEntityNotFound(_0x350fc1,null))[_0x25b0('0x34')](function(_0x112ac6){if(_0x112ac6){_0x3315bf=_0x112ac6[_0x25b0('0x66')];var _0x2b43d4=_0x3315bf[_0x25b0('0x67')](-0x1);if(_0x2b43d4==='/'){_0x3315bf=_0x3315bf[_0x25b0('0x68')](0x0,_0x3315bf[_0x25b0('0x69')](_0x2b43d4));}var _0x2a69ca={'method':_0x25b0('0x6a'),'uri':util[_0x25b0('0x6b')]('%s/%s',_0x3315bf,_0x25b0('0x6c')),'json':!![]};switch(_0x112ac6['authType']){case _0x25b0('0x6d'):_0x2a69ca[_0x25b0('0x6e')]={'Authorization':util['format'](_0x25b0('0x6f'),new Buffer(util[_0x25b0('0x6b')](_0x25b0('0x70'),_0x112ac6[_0x25b0('0x64')],_0x112ac6[_0x25b0('0x6d')]))[_0x25b0('0x71')](_0x25b0('0x72')))};break;case _0x25b0('0x73'):_0x2a69ca[_0x25b0('0x6e')]={'Authorization':util[_0x25b0('0x6b')](_0x25b0('0x6f'),new Buffer(util['format']('%s/token:%s',_0x112ac6[_0x25b0('0x64')],_0x112ac6[_0x25b0('0x73')]))['toString']('base64'))};break;default:throw new db[(_0x25b0('0x74'))]['ValidationError'](_0x25b0('0x75'));}return rp(_0x2a69ca);}})[_0x25b0('0x34')](function(_0x5d798d){if(_0x5d798d){var _0x2eb419=[_0x25b0('0x76'),'description',_0x25b0('0x77'),_0x25b0('0x78')];_[_0x25b0('0x79')](_0x5d798d[_0x25b0('0x6c')],function(_0x359aa6){return _0x2eb419['includes'](_0x359aa6['type']);});return{'count':_0x5d798d[_0x25b0('0x6c')]['length'],'rows':_['map'](_0x5d798d['ticket_fields'],function(_0xb4de7a){return{'id':_0xb4de7a['id'],'name':_0xb4de7a[_0x25b0('0x7a')]>0x7?_0xb4de7a[_0x25b0('0x7b')]:_0xb4de7a['type'],'custom':_0xb4de7a['position']>0x7?!![]:![],'options':_0xb4de7a[_0x25b0('0x7c')]?_0xb4de7a[_0x25b0('0x7c')]:_0xb4de7a['custom_field_options']?_0xb4de7a['custom_field_options']:[]};})};}})['then'](respondWithResult(_0x350fc1,null))[_0x25b0('0x27')](function(_0x22fd35){var _0x1e64de=_0x10f062[_0x25b0('0x40')]['test']?0x1f4:_0x22fd35[_0x25b0('0x7d')]||0x1f4;logger[_0x25b0('0x22')](_0x25b0('0x7e'),_0x25b0('0x63'),_0x1e64de,JSON[_0x25b0('0x7f')](_0x22fd35));delete _0x22fd35[_0x25b0('0x37')];if(_0x1e64de===0x191){_0x1e64de=0x190;}_0x350fc1[_0x25b0('0x29')](_0x1e64de)[_0x25b0('0x38')](_0x10f062[_0x25b0('0x40')][_0x25b0('0x80')]?{'message':_0x25b0('0x81'),'statusCode':_0x22fd35[_0x25b0('0x7d')]}:_0x22fd35);});};