Built motion from commit (unavailable).|2.4.3
[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 _0x3797=['subject','description','group','assignee','remove','title','system_field_options','custom_field_options','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','http','test','then','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','status','json','count','offset','limit','set','apply','reject','save','update','destroy','stack','name','send','index','ZendeskAccount','rawAttributes','model','keys','query','filters','attributes','intersection','fields','length','order','sort','pick','merge','where','map','type','key','field','options','include','findAll','show','params','create','body','find','getConfigurations','findOne','ZendeskConfiguration','filter','nolimit','addConfiguration','AccountId','Subjects','Descriptions','getDescriptions','channel','ZendeskField','getFields','username','token','remoteUri','substring','lastIndexOf','GET','%s/%s','ticket_fields','authType','headers','Basic\x20%s','format','%s:%s','password','base64','%s/token:%s','toString','Sequelize'];(function(_0x2f53e4,_0x509957){var _0x42046d=function(_0x298601){while(--_0x298601){_0x2f53e4['push'](_0x2f53e4['shift']());}};_0x42046d(++_0x509957);}(_0x3797,0x175));var _0x7379=function(_0x5c1b6e,_0xad0927){_0x5c1b6e=_0x5c1b6e-0x0;var _0x992f1d=_0x3797[_0x5c1b6e];return _0x992f1d;};'use strict';var pdf=require(_0x7379('0x0'));var emlformat=require(_0x7379('0x1'));var rimraf=require(_0x7379('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7379('0x3'));var rp=require('request-promise');var moment=require(_0x7379('0x4'));var BPromise=require(_0x7379('0x5'));var Mustache=require('mustache');var util=require(_0x7379('0x6'));var path=require(_0x7379('0x7'));var sox=require(_0x7379('0x8'));var csv=require(_0x7379('0x9'));var ejs=require(_0x7379('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x7379('0xb'));var crypto=require(_0x7379('0xc'));var jsforce=require(_0x7379('0xd'));var deskjs=require(_0x7379('0xe'));var toCsv=require(_0x7379('0x9'));var querystring=require('querystring');var Papa=require(_0x7379('0xf'));var Redis=require(_0x7379('0x10'));var authService=require(_0x7379('0x11'));var qs=require(_0x7379('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7379('0x13'))(_0x7379('0x14'));var utils=require(_0x7379('0x15'));var config=require(_0x7379('0x16'));var db=require(_0x7379('0x17'))['db'];var integrations=require(_0x7379('0x18'));var jayson=require(_0x7379('0x19'));var client=jayson['client'][_0x7379('0x1a')]({'port':0x232a});function checkPasswordPattern(_0x382671,_0x5eeed6,_0x467635){if(_0x467635){var _0x23f612=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x23f612[_0x7379('0x1b')](_0x5eeed6)){return _0x382671;}else{throw new Error('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x382671;}}function respondWithRpcPromise(_0x2f5182,_0x2a63e5,_0x5bd4ac,_0x3ca7e0){return new BPromise(function(_0x2dff55,_0x3651){var _0x53724b=_0x3ca7e0||client;return _0x53724b['request'](_0x2f5182,_0x5bd4ac)[_0x7379('0x1c')](function(_0x251834){logger[_0x7379('0x1d')](_0x7379('0x1e'),_0x2a63e5,_0x7379('0x1f'));logger['debug'](_0x7379('0x20'),_0x2a63e5,_0x7379('0x1f'),JSON[_0x7379('0x21')](_0x251834));if(_0x251834['error']){if(_0x251834[_0x7379('0x22')][_0x7379('0x23')]===0x1f4){logger[_0x7379('0x22')]('ZendeskAccount,\x20%s,\x20%s',_0x2a63e5,_0x251834['error']['message']);return _0x3651(_0x251834[_0x7379('0x22')][_0x7379('0x24')]);}logger[_0x7379('0x22')](_0x7379('0x1e'),_0x2a63e5,_0x251834[_0x7379('0x22')][_0x7379('0x24')]);return _0x2dff55(_0x251834[_0x7379('0x22')][_0x7379('0x24')]);}else{logger['info'](_0x7379('0x1e'),_0x2a63e5,_0x7379('0x1f'));_0x2dff55(_0x251834['result'][_0x7379('0x24')]);}})[_0x7379('0x25')](function(_0x223f3d){logger[_0x7379('0x22')]('ZendeskAccount,\x20%s,\x20%s',_0x2a63e5,_0x223f3d);_0x3651(_0x223f3d);});});}function respondWithStatusCode(_0x3fc699,_0x122847){_0x122847=_0x122847||0xcc;return function(_0x24a722){if(_0x24a722){return _0x3fc699['sendStatus'](_0x122847);}return _0x3fc699[_0x7379('0x26')](_0x122847)['end']();};}function respondWithResult(_0x28109f,_0x39dde6){_0x39dde6=_0x39dde6||0xc8;return function(_0x4a5642){if(_0x4a5642){return _0x28109f[_0x7379('0x26')](_0x39dde6)[_0x7379('0x27')](_0x4a5642);}};}function respondWithFilteredResult(_0x3951c3,_0xf01ff7){return function(_0xe04066){if(_0xe04066){var _0x30de0c=_0xe04066[_0x7379('0x28')],_0x3b27f7=_0xf01ff7[_0x7379('0x29')],_0x297946=_0xf01ff7[_0x7379('0x29')]+_0xf01ff7[_0x7379('0x2a')],_0x3468b8;if(_0x297946>=_0x30de0c){_0x297946=_0x30de0c;_0x3468b8=0xc8;}else{_0x3468b8=0xce;}_0x3951c3['status'](_0x3468b8);return _0x3951c3[_0x7379('0x2b')]('Content-Range',_0x3b27f7+'-'+_0x297946+'/'+_0x30de0c)['json'](_0xe04066);}return null;};}function patchUpdates(_0x411e0e){return function(_0x1f3233){try{jsonpatch[_0x7379('0x2c')](_0x1f3233,_0x411e0e,!![]);}catch(_0x2ce771){return BPromise[_0x7379('0x2d')](_0x2ce771);}return _0x1f3233[_0x7379('0x2e')]();};}function saveUpdates(_0x4f8c74,_0x2f106b){return function(_0x3ed22b){if(_0x3ed22b){return _0x3ed22b[_0x7379('0x2f')](_0x4f8c74)[_0x7379('0x1c')](function(_0x123220){return _0x123220;});}return null;};}function removeEntity(_0xefe9e6,_0x268992){return function(_0x3aea11){if(_0x3aea11){return _0x3aea11[_0x7379('0x30')]()[_0x7379('0x1c')](function(){_0xefe9e6[_0x7379('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x285268,_0x114ae6){return function(_0x4f1ffc){if(!_0x4f1ffc){_0x285268['sendStatus'](0x194);}return _0x4f1ffc;};}function handleError(_0x35c798,_0x40c1f8){_0x40c1f8=_0x40c1f8||0x1f4;return function(_0x7eed0a){logger['error'](_0x7eed0a[_0x7379('0x31')]);if(_0x7eed0a[_0x7379('0x32')]){delete _0x7eed0a[_0x7379('0x32')];}_0x35c798[_0x7379('0x26')](_0x40c1f8)[_0x7379('0x33')](_0x7eed0a);};}exports[_0x7379('0x34')]=function(_0x560f71,_0x2e00d5){var _0x57cd7e={},_0x26fd36={},_0x24de79={'count':0x0,'rows':[]};var _0x34ff72=db[_0x7379('0x35')][_0x7379('0x36')];_0x26fd36[_0x7379('0x37')]=_[_0x7379('0x38')](_0x34ff72);_0x26fd36[_0x7379('0x39')]=_[_0x7379('0x38')](_0x560f71[_0x7379('0x39')]);_0x26fd36[_0x7379('0x3a')]=_['intersection'](_0x26fd36[_0x7379('0x37')],_0x26fd36[_0x7379('0x39')]);_0x57cd7e[_0x7379('0x3b')]=_[_0x7379('0x3c')](_0x26fd36[_0x7379('0x37')],qs[_0x7379('0x3d')](_0x560f71[_0x7379('0x39')][_0x7379('0x3d')]));_0x57cd7e['attributes']=_0x57cd7e['attributes'][_0x7379('0x3e')]?_0x57cd7e[_0x7379('0x3b')]:_0x26fd36[_0x7379('0x37')];if(!_0x560f71[_0x7379('0x39')]['hasOwnProperty']('nolimit')){_0x57cd7e['limit']=qs[_0x7379('0x2a')](_0x560f71['query']['limit']);_0x57cd7e['offset']=qs['offset'](_0x560f71[_0x7379('0x39')]['offset']);}_0x57cd7e[_0x7379('0x3f')]=qs[_0x7379('0x40')](_0x560f71['query']['sort']);_0x57cd7e['where']=qs['filters'](_[_0x7379('0x41')](_0x560f71[_0x7379('0x39')],_0x26fd36[_0x7379('0x3a')]));if(_0x560f71[_0x7379('0x39')]['filter']){_0x57cd7e['where']=_[_0x7379('0x42')](_0x57cd7e[_0x7379('0x43')],{'$or':_[_0x7379('0x44')](_0x34ff72,function(_0x53aa4e){if(_0x53aa4e[_0x7379('0x45')][_0x7379('0x46')]!=='VIRTUAL'){var _0x41d5e3={};_0x41d5e3[_0x53aa4e[_0x7379('0x47')]]={'$like':'%'+_0x560f71[_0x7379('0x39')]['filter']+'%'};return _0x41d5e3;}})});}_0x57cd7e=_[_0x7379('0x42')]({},_0x57cd7e,_0x560f71[_0x7379('0x48')]);var _0x172fdb={'where':_0x57cd7e[_0x7379('0x43')]};return db[_0x7379('0x35')]['count'](_0x172fdb)[_0x7379('0x1c')](function(_0x2229ce){_0x24de79[_0x7379('0x28')]=_0x2229ce;if(_0x560f71[_0x7379('0x39')]['includeAll']){_0x57cd7e[_0x7379('0x49')]=[{'all':!![]}];}return db[_0x7379('0x35')][_0x7379('0x4a')](_0x57cd7e);})[_0x7379('0x1c')](function(_0x538a7e){_0x24de79['rows']=_0x538a7e;return _0x24de79;})[_0x7379('0x1c')](respondWithFilteredResult(_0x2e00d5,_0x57cd7e))['catch'](handleError(_0x2e00d5,null));};exports[_0x7379('0x4b')]=function(_0x6493fe,_0x22b4de){var _0x3889ef={'raw':![],'where':{'id':_0x6493fe[_0x7379('0x4c')]['id']}},_0x204af8={};_0x204af8[_0x7379('0x37')]=_['keys'](db[_0x7379('0x35')][_0x7379('0x36')]);_0x204af8[_0x7379('0x39')]=_[_0x7379('0x38')](_0x6493fe[_0x7379('0x39')]);_0x204af8[_0x7379('0x3a')]=_['intersection'](_0x204af8['model'],_0x204af8[_0x7379('0x39')]);_0x3889ef[_0x7379('0x3b')]=_['intersection'](_0x204af8[_0x7379('0x37')],qs[_0x7379('0x3d')](_0x6493fe['query'][_0x7379('0x3d')]));_0x3889ef[_0x7379('0x3b')]=_0x3889ef[_0x7379('0x3b')]['length']?_0x3889ef[_0x7379('0x3b')]:_0x204af8[_0x7379('0x37')];if(_0x6493fe[_0x7379('0x39')]['includeAll']){_0x3889ef[_0x7379('0x49')]=[{'all':!![]}];}_0x3889ef=_[_0x7379('0x42')]({},_0x3889ef,_0x6493fe['options']);return db['ZendeskAccount']['find'](_0x3889ef)[_0x7379('0x1c')](handleEntityNotFound(_0x22b4de,null))[_0x7379('0x1c')](respondWithResult(_0x22b4de,null))['catch'](handleError(_0x22b4de,null));};exports[_0x7379('0x4d')]=function(_0x210064,_0x3eb185){return db[_0x7379('0x35')][_0x7379('0x4d')](_0x210064[_0x7379('0x4e')],{})[_0x7379('0x1c')](respondWithResult(_0x3eb185,0xc9))[_0x7379('0x25')](handleError(_0x3eb185,null));};exports[_0x7379('0x2f')]=function(_0x4acb92,_0x4b353d){if(_0x4acb92[_0x7379('0x4e')]['id']){delete _0x4acb92[_0x7379('0x4e')]['id'];}return db[_0x7379('0x35')][_0x7379('0x4f')]({'where':{'id':_0x4acb92[_0x7379('0x4c')]['id']}})[_0x7379('0x1c')](handleEntityNotFound(_0x4b353d,null))['then'](saveUpdates(_0x4acb92[_0x7379('0x4e')],null))['then'](respondWithResult(_0x4b353d,null))['catch'](handleError(_0x4b353d,null));};exports[_0x7379('0x30')]=function(_0x422dda,_0x5b62e6){return db[_0x7379('0x35')][_0x7379('0x4f')]({'where':{'id':_0x422dda[_0x7379('0x4c')]['id']}})[_0x7379('0x1c')](handleEntityNotFound(_0x5b62e6,null))[_0x7379('0x1c')](removeEntity(_0x5b62e6,null))[_0x7379('0x25')](handleError(_0x5b62e6,null));};exports[_0x7379('0x50')]=function(_0x2c558b,_0x11278,_0x40d6b4){var _0x2d0b23={};var _0x5cef88={};var _0x2c67c3;var _0x99eb9f;return db[_0x7379('0x35')][_0x7379('0x51')]({'where':{'id':_0x2c558b[_0x7379('0x4c')]['id']}})[_0x7379('0x1c')](handleEntityNotFound(_0x11278,null))[_0x7379('0x1c')](function(_0x348be5){if(_0x348be5){_0x2c67c3=_0x348be5;_0x5cef88[_0x7379('0x37')]=_[_0x7379('0x38')](db[_0x7379('0x52')][_0x7379('0x36')]);_0x5cef88[_0x7379('0x39')]=_[_0x7379('0x38')](_0x2c558b['query']);_0x5cef88[_0x7379('0x3a')]=_[_0x7379('0x3c')](_0x5cef88['model'],_0x5cef88['query']);_0x2d0b23['attributes']=_[_0x7379('0x3c')](_0x5cef88[_0x7379('0x37')],qs[_0x7379('0x3d')](_0x2c558b[_0x7379('0x39')]['fields']));_0x2d0b23[_0x7379('0x3b')]=_0x2d0b23[_0x7379('0x3b')][_0x7379('0x3e')]?_0x2d0b23[_0x7379('0x3b')]:_0x5cef88[_0x7379('0x37')];_0x2d0b23[_0x7379('0x3f')]=qs['sort'](_0x2c558b[_0x7379('0x39')][_0x7379('0x40')]);_0x2d0b23[_0x7379('0x43')]=qs['filters'](_[_0x7379('0x41')](_0x2c558b[_0x7379('0x39')],_0x5cef88[_0x7379('0x3a')]));if(_0x2c558b[_0x7379('0x39')]['filter']){_0x2d0b23['where']=_[_0x7379('0x42')](_0x2d0b23[_0x7379('0x43')],{'$or':_[_0x7379('0x44')](_0x2d0b23[_0x7379('0x3b')],function(_0x4ea442){var _0x578d91={};_0x578d91[_0x4ea442]={'$like':'%'+_0x2c558b['query'][_0x7379('0x53')]+'%'};return _0x578d91;})});}_0x2d0b23=_[_0x7379('0x42')]({},_0x2d0b23,_0x2c558b[_0x7379('0x48')]);return _0x2c67c3['getConfigurations'](_0x2d0b23);}})[_0x7379('0x1c')](function(_0x5486f1){if(_0x5486f1){_0x99eb9f=_0x5486f1[_0x7379('0x3e')];if(!_0x2c558b[_0x7379('0x39')]['hasOwnProperty'](_0x7379('0x54'))){_0x2d0b23[_0x7379('0x2a')]=qs[_0x7379('0x2a')](_0x2c558b[_0x7379('0x39')]['limit']);_0x2d0b23[_0x7379('0x29')]=qs['offset'](_0x2c558b[_0x7379('0x39')]['offset']);}return _0x2c67c3[_0x7379('0x50')](_0x2d0b23);}})[_0x7379('0x1c')](function(_0x2f4f3a){if(_0x2f4f3a){return _0x2f4f3a?{'count':_0x99eb9f,'rows':_0x2f4f3a}:null;}})[_0x7379('0x1c')](respondWithResult(_0x11278,null))[_0x7379('0x25')](handleError(_0x11278,null));};exports[_0x7379('0x55')]=function(_0xb6b90,_0x583357,_0x53c067){if(_0xb6b90[_0x7379('0x4e')]['id']){delete _0xb6b90[_0x7379('0x4e')]['id'];}return db['ZendeskAccount'][_0x7379('0x51')]({'where':{'id':_0xb6b90[_0x7379('0x4c')]['id']}})[_0x7379('0x1c')](handleEntityNotFound(_0x583357,null))[_0x7379('0x1c')](function(_0x535b22){if(_0x535b22){_0xb6b90[_0x7379('0x4e')][_0x7379('0x56')]=_0x535b22['id'];_0xb6b90[_0x7379('0x4e')][_0x7379('0x57')]=integrations['getSubjects'](_0xb6b90[_0x7379('0x4e')]['channel'],_0xb6b90[_0x7379('0x4e')][_0x7379('0x45')]);_0xb6b90[_0x7379('0x4e')][_0x7379('0x58')]=integrations[_0x7379('0x59')](_0xb6b90[_0x7379('0x4e')][_0x7379('0x5a')],_0xb6b90[_0x7379('0x4e')][_0x7379('0x45')]);return db[_0x7379('0x52')]['create'](_0xb6b90['body'],{'include':[{'model':db[_0x7379('0x5b')],'as':_0x7379('0x57')},{'model':db[_0x7379('0x5b')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x583357,null))[_0x7379('0x25')](handleError(_0x583357,null));};exports[_0x7379('0x5c')]=function(_0x67f447,_0x4fe766,_0x8ecbfc){var _0x2282a8='';return db['ZendeskAccount'][_0x7379('0x51')]({'where':{'id':_0x67f447['params']['id']},'attributes':['id',_0x7379('0x5d'),'password',_0x7379('0x5e'),'authType','remoteUri']})['then'](handleEntityNotFound(_0x4fe766,null))['then'](function(_0x3c28bf){if(_0x3c28bf){_0x2282a8=_0x3c28bf[_0x7379('0x5f')];var _0x1c7415=_0x2282a8['slice'](-0x1);if(_0x1c7415==='/'){_0x2282a8=_0x2282a8[_0x7379('0x60')](0x0,_0x2282a8[_0x7379('0x61')](_0x1c7415));}var _0x4c306e={'method':_0x7379('0x62'),'uri':util['format'](_0x7379('0x63'),_0x2282a8,_0x7379('0x64')),'json':!![]};switch(_0x3c28bf[_0x7379('0x65')]){case'password':_0x4c306e[_0x7379('0x66')]={'Authorization':util['format'](_0x7379('0x67'),new Buffer(util[_0x7379('0x68')](_0x7379('0x69'),_0x3c28bf[_0x7379('0x5d')],_0x3c28bf[_0x7379('0x6a')]))['toString'](_0x7379('0x6b')))};break;case _0x7379('0x5e'):_0x4c306e[_0x7379('0x66')]={'Authorization':util[_0x7379('0x68')]('Basic\x20%s',new Buffer(util[_0x7379('0x68')](_0x7379('0x6c'),_0x3c28bf[_0x7379('0x5d')],_0x3c28bf['token']))[_0x7379('0x6d')](_0x7379('0x6b')))};break;default:throw new db[(_0x7379('0x6e'))]['ValidationError']('Unknown\x20authentication\x20type');}return rp(_0x4c306e);}})[_0x7379('0x1c')](function(_0x59117b){if(_0x59117b){var _0x2bb09d=[_0x7379('0x6f'),_0x7379('0x70'),_0x7379('0x71'),_0x7379('0x72')];_[_0x7379('0x73')](_0x59117b[_0x7379('0x64')],function(_0x4966c9){return _0x2bb09d['includes'](_0x4966c9[_0x7379('0x45')]);});return{'count':_0x59117b['ticket_fields'][_0x7379('0x3e')],'rows':_[_0x7379('0x44')](_0x59117b[_0x7379('0x64')],function(_0x372e20){return{'id':_0x372e20['id'],'name':_0x372e20['position']>0x7?_0x372e20[_0x7379('0x74')]:_0x372e20['type'],'custom':_0x372e20['position']>0x7?!![]:![],'options':_0x372e20['system_field_options']?_0x372e20[_0x7379('0x75')]:_0x372e20['custom_field_options']?_0x372e20[_0x7379('0x76')]:[]};})};}})['then'](respondWithResult(_0x4fe766,null))[_0x7379('0x25')](function(_0x58d823){var _0x12a1b5=_0x67f447['query'][_0x7379('0x1b')]?0x1f4:_0x58d823[_0x7379('0x77')]||0x1f4;logger[_0x7379('0x22')]('getFields,\x20%s,\x20%s,\x20%s',_0x7379('0x5c'),_0x12a1b5,JSON[_0x7379('0x21')](_0x58d823));delete _0x58d823[_0x7379('0x32')];if(_0x12a1b5===0x191){_0x12a1b5=0x190;}_0x4fe766[_0x7379('0x26')](_0x12a1b5)['send'](_0x67f447['query'][_0x7379('0x1b')]?{'message':_0x7379('0x78'),'statusCode':_0x58d823[_0x7379('0x77')]}:_0x58d823);});};