Built motion from commit 67e5df37.|2.0.66
[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 _0x624c=['remoteUri','ticket_fields','password','%s:%s','toString','base64','Basic\x20%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','description','group','assignee','remove','includes','position','title','system_field_options','test','statusCode','Wrong\x20credentials','request-promise','moment','bluebird','mustache','util','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','client','http','request','ZendeskAccount,\x20%s,\x20%s','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','status','count','offset','set','Content-Range','json','reject','then','end','sendStatus','stack','name','send','index','model','keys','ZendeskAccount','rawAttributes','query','dateStart','dateEnd','filters','attributes','intersection','hasOwnProperty','nolimit','limit','order','sort','where','add','day','merge','filter','includeAll','include','findAll','rows','params','fields','length','options','find','create','body','update','destroy','getConfigurations','ZendeskConfiguration','map','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','type','ZendeskField','getFields','username','token','authType','GET','format','%s%s'];(function(_0x5987cd,_0x361ef6){var _0x2d5dc2=function(_0x160f98){while(--_0x160f98){_0x5987cd['push'](_0x5987cd['shift']());}};_0x2d5dc2(++_0x361ef6);}(_0x624c,0x1ee));var _0xc624=function(_0x5bdbfd,_0x3aaf24){_0x5bdbfd=_0x5bdbfd-0x0;var _0x5711c0=_0x624c[_0x5bdbfd];return _0x5711c0;};'use strict';var jsonpatch=require('fast-json-patch');var rp=require(_0xc624('0x0'));var moment=require(_0xc624('0x1'));var BPromise=require(_0xc624('0x2'));var Mustache=require(_0xc624('0x3'));var util=require(_0xc624('0x4'));var path=require('path');var sox=require(_0xc624('0x5'));var csv=require('to-csv');var ejs=require(_0xc624('0x6'));var fs=require('fs');var _=require('lodash');var squel=require(_0xc624('0x7'));var crypto=require(_0xc624('0x8'));var jsforce=require(_0xc624('0x9'));var deskjs=require(_0xc624('0xa'));var toCsv=require(_0xc624('0xb'));var querystring=require(_0xc624('0xc'));var Papa=require(_0xc624('0xd'));var qs=require('../../components/parsers/qs');var logger=require(_0xc624('0xe'))(_0xc624('0xf'));var utils=require(_0xc624('0x10'));var config=require('../../config/environment');var db=require(_0xc624('0x11'))['db'];var integrations=require(_0xc624('0x12'));var jayson=require('jayson/promise');var client=jayson[_0xc624('0x13')][_0xc624('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x2ec4f4,_0x113b89,_0x308ff5,_0x558b51){return new BPromise(function(_0x42760a,_0x25e874){var _0xef673c=_0x558b51||client;return _0xef673c[_0xc624('0x15')](_0x2ec4f4,_0x308ff5)['then'](function(_0x4f50f3){logger['info'](_0xc624('0x16'),_0x113b89,'request\x20sent');logger[_0xc624('0x17')](_0xc624('0x18'),_0x113b89,_0xc624('0x19'),JSON[_0xc624('0x1a')](_0x4f50f3));if(_0x4f50f3[_0xc624('0x1b')]){if(_0x4f50f3[_0xc624('0x1b')]['code']===0x1f4){logger[_0xc624('0x1b')](_0xc624('0x16'),_0x113b89,_0x4f50f3[_0xc624('0x1b')]['message']);return _0x25e874(_0x4f50f3[_0xc624('0x1b')][_0xc624('0x1c')]);}logger['error'](_0xc624('0x16'),_0x113b89,_0x4f50f3[_0xc624('0x1b')]['message']);return _0x42760a(_0x4f50f3[_0xc624('0x1b')]['message']);}else{logger['info'](_0xc624('0x16'),_0x113b89,_0xc624('0x19'));_0x42760a(_0x4f50f3[_0xc624('0x1d')][_0xc624('0x1c')]);}})[_0xc624('0x1e')](function(_0x55be9e){logger[_0xc624('0x1b')](_0xc624('0x16'),_0x113b89,_0x55be9e);_0x25e874(_0x55be9e);});});}function respondWithStatusCode(_0x3c056b,_0x5a95ec){_0x5a95ec=_0x5a95ec||0xcc;return function(_0x400d46){if(_0x400d46){return _0x3c056b['sendStatus'](_0x5a95ec);}return _0x3c056b[_0xc624('0x1f')](_0x5a95ec)['end']();};}function respondWithResult(_0xa646e1,_0x3e5aa3){_0x3e5aa3=_0x3e5aa3||0xc8;return function(_0x3fe07e){if(_0x3fe07e){return _0xa646e1['status'](_0x3e5aa3)['json'](_0x3fe07e);}};}function respondWithFilteredResult(_0x2ab7a1,_0x24ed8e){return function(_0x1e8689){if(_0x1e8689){var _0x1f3ca1=_0x1e8689[_0xc624('0x20')],_0x3b0dca=_0x24ed8e[_0xc624('0x21')],_0x3ed4dd=_0x24ed8e[_0xc624('0x21')]+_0x24ed8e['limit'],_0xef8a37;if(_0x3ed4dd>=_0x1f3ca1){_0x3ed4dd=_0x1f3ca1;_0xef8a37=0xc8;}else{_0xef8a37=0xce;}_0x2ab7a1[_0xc624('0x1f')](_0xef8a37);return _0x2ab7a1[_0xc624('0x22')](_0xc624('0x23'),_0x3b0dca+'-'+_0x3ed4dd+'/'+_0x1f3ca1)[_0xc624('0x24')](_0x1e8689);}return null;};}function patchUpdates(_0x5f558b){return function(_0x5a660c){try{jsonpatch['apply'](_0x5a660c,_0x5f558b,!![]);}catch(_0x52b55c){return BPromise[_0xc624('0x25')](_0x52b55c);}return _0x5a660c['save']();};}function saveUpdates(_0x429e1d,_0x3b8451){return function(_0x2244b7){if(_0x2244b7){return _0x2244b7['update'](_0x429e1d)[_0xc624('0x26')](function(_0x1a0a0c){return _0x1a0a0c;});}return null;};}function removeEntity(_0x1c7b36,_0x3b8eb7){return function(_0x4482af){if(_0x4482af){return _0x4482af['destroy']()['then'](function(){_0x1c7b36['status'](0xcc)[_0xc624('0x27')]();});}};}function handleEntityNotFound(_0x27117f,_0x22381c){return function(_0x4052a8){if(!_0x4052a8){_0x27117f[_0xc624('0x28')](0x194);}return _0x4052a8;};}function handleError(_0x4286be,_0x1a86e5){_0x1a86e5=_0x1a86e5||0x1f4;return function(_0x5cade8){logger[_0xc624('0x1b')](_0x5cade8[_0xc624('0x29')]);if(_0x5cade8[_0xc624('0x2a')]){delete _0x5cade8[_0xc624('0x2a')];}_0x4286be[_0xc624('0x1f')](_0x1a86e5)[_0xc624('0x2b')](_0x5cade8);};}exports[_0xc624('0x2c')]=function(_0x454510,_0x1d442e){var _0x596b22={},_0x49ce47={},_0x43380f={'count':0x0,'rows':[]};_0x49ce47[_0xc624('0x2d')]=_[_0xc624('0x2e')](db[_0xc624('0x2f')][_0xc624('0x30')]);var _0x898784={'dateStart':_0x454510[_0xc624('0x31')][_0xc624('0x32')],'dateEnd':_0x454510[_0xc624('0x31')][_0xc624('0x33')]};delete _0x454510[_0xc624('0x31')]['dateStart'];delete _0x454510[_0xc624('0x31')]['dateEnd'];_0x49ce47['query']=_[_0xc624('0x2e')](_0x454510[_0xc624('0x31')]);_0x49ce47[_0xc624('0x34')]=_['intersection'](_0x49ce47['model'],_0x49ce47[_0xc624('0x31')]);_0x596b22[_0xc624('0x35')]=_[_0xc624('0x36')](_0x49ce47['model'],qs['fields'](_0x454510[_0xc624('0x31')]['fields']));_0x596b22[_0xc624('0x35')]=_0x596b22[_0xc624('0x35')]['length']?_0x596b22[_0xc624('0x35')]:_0x49ce47['model'];if(!_0x454510['query'][_0xc624('0x37')](_0xc624('0x38'))){_0x596b22[_0xc624('0x39')]=qs[_0xc624('0x39')](_0x454510[_0xc624('0x31')]['limit']);_0x596b22[_0xc624('0x21')]=qs[_0xc624('0x21')](_0x454510[_0xc624('0x31')][_0xc624('0x21')]);}_0x596b22[_0xc624('0x3a')]=qs[_0xc624('0x3b')](_0x454510[_0xc624('0x31')][_0xc624('0x3b')]);_0x596b22[_0xc624('0x3c')]=qs[_0xc624('0x34')](_['pick'](_0x454510[_0xc624('0x31')],_0x49ce47[_0xc624('0x34')]));if(_0x898784[_0xc624('0x32')]){if(_0x898784[_0xc624('0x33')]){_0x898784[_0xc624('0x33')]=moment(_0x898784[_0xc624('0x33')])[_0xc624('0x3d')](0x1,_0xc624('0x3e'));}else{_0x898784[_0xc624('0x33')]=moment(_0x898784[_0xc624('0x32')])[_0xc624('0x3d')](0x1,'day');}_[_0xc624('0x3f')](_0x596b22['where'],{'createdAt':{'$gte':_0x898784['dateStart'],'$lte':_0x898784[_0xc624('0x33')]}});}if(_0x454510[_0xc624('0x31')]['filter']){_0x596b22[_0xc624('0x3c')]=_[_0xc624('0x3f')](_0x596b22[_0xc624('0x3c')],{'$or':_['map'](_0x596b22[_0xc624('0x35')],function(_0x36f62b){var _0x4fa829={};_0x4fa829[_0x36f62b]={'$like':'%'+_0x454510['query'][_0xc624('0x40')]+'%'};return _0x4fa829;})});}_0x596b22=_['merge']({},_0x596b22,_0x454510['options']);var _0x3ba089={'where':_0x596b22[_0xc624('0x3c')]};return db[_0xc624('0x2f')][_0xc624('0x20')](_0x3ba089)[_0xc624('0x26')](function(_0x3e645c){_0x43380f[_0xc624('0x20')]=_0x3e645c;if(_0x454510[_0xc624('0x31')][_0xc624('0x41')]){_0x596b22[_0xc624('0x42')]=[{'all':!![]}];}return db[_0xc624('0x2f')][_0xc624('0x43')](_0x596b22);})[_0xc624('0x26')](function(_0x299bba){_0x43380f[_0xc624('0x44')]=_0x299bba;return _0x43380f;})['then'](respondWithFilteredResult(_0x1d442e,_0x596b22))['catch'](handleError(_0x1d442e,null));};exports['show']=function(_0x5b34ef,_0x2ba1ff){var _0x3c70bc={'raw':![],'where':{'id':_0x5b34ef[_0xc624('0x45')]['id']}},_0x8e062b={};_0x8e062b[_0xc624('0x2d')]=_[_0xc624('0x2e')](db['ZendeskAccount'][_0xc624('0x30')]);_0x8e062b[_0xc624('0x31')]=_['keys'](_0x5b34ef['query']);_0x8e062b['filters']=_['intersection'](_0x8e062b[_0xc624('0x2d')],_0x8e062b[_0xc624('0x31')]);_0x3c70bc[_0xc624('0x35')]=_['intersection'](_0x8e062b['model'],qs['fields'](_0x5b34ef['query'][_0xc624('0x46')]));_0x3c70bc['attributes']=_0x3c70bc[_0xc624('0x35')][_0xc624('0x47')]?_0x3c70bc[_0xc624('0x35')]:_0x8e062b[_0xc624('0x2d')];if(_0x5b34ef[_0xc624('0x31')][_0xc624('0x41')]){_0x3c70bc['include']=[{'all':!![]}];}_0x3c70bc=_['merge']({},_0x3c70bc,_0x5b34ef[_0xc624('0x48')]);return db[_0xc624('0x2f')][_0xc624('0x49')](_0x3c70bc)[_0xc624('0x26')](handleEntityNotFound(_0x2ba1ff,null))['then'](respondWithResult(_0x2ba1ff,null))[_0xc624('0x1e')](handleError(_0x2ba1ff,null));};exports[_0xc624('0x4a')]=function(_0x3fa310,_0x25964f){return db[_0xc624('0x2f')]['create'](_0x3fa310[_0xc624('0x4b')],{})[_0xc624('0x26')](respondWithResult(_0x25964f,0xc9))[_0xc624('0x1e')](handleError(_0x25964f,null));};exports[_0xc624('0x4c')]=function(_0x507059,_0x4dbf7a){if(_0x507059[_0xc624('0x4b')]['id']){delete _0x507059['body']['id'];}return db['ZendeskAccount'][_0xc624('0x49')]({'where':{'id':_0x507059[_0xc624('0x45')]['id']}})[_0xc624('0x26')](handleEntityNotFound(_0x4dbf7a,null))[_0xc624('0x26')](saveUpdates(_0x507059[_0xc624('0x4b')],null))['then'](respondWithResult(_0x4dbf7a,null))[_0xc624('0x1e')](handleError(_0x4dbf7a,null));};exports[_0xc624('0x4d')]=function(_0xfb5e47,_0x3e9bbc){return db[_0xc624('0x2f')][_0xc624('0x49')]({'where':{'id':_0xfb5e47[_0xc624('0x45')]['id']}})[_0xc624('0x26')](handleEntityNotFound(_0x3e9bbc,null))['then'](removeEntity(_0x3e9bbc,null))[_0xc624('0x1e')](handleError(_0x3e9bbc,null));};exports[_0xc624('0x4e')]=function(_0xc043c1,_0x2780d3,_0x1a7e4f){var _0x16c542={};var _0x13b51b={};var _0x38bbae;var _0x16f2c2;return db[_0xc624('0x2f')]['findOne']({'where':{'id':_0xc043c1[_0xc624('0x45')]['id']}})['then'](handleEntityNotFound(_0x2780d3,null))['then'](function(_0x3e4f95){if(_0x3e4f95){_0x38bbae=_0x3e4f95;_0x13b51b[_0xc624('0x2d')]=_[_0xc624('0x2e')](db[_0xc624('0x4f')]['rawAttributes']);_0x13b51b[_0xc624('0x31')]=_['keys'](_0xc043c1['query']);_0x13b51b[_0xc624('0x34')]=_[_0xc624('0x36')](_0x13b51b['model'],_0x13b51b[_0xc624('0x31')]);_0x16c542[_0xc624('0x35')]=_[_0xc624('0x36')](_0x13b51b[_0xc624('0x2d')],qs[_0xc624('0x46')](_0xc043c1[_0xc624('0x31')][_0xc624('0x46')]));_0x16c542[_0xc624('0x35')]=_0x16c542[_0xc624('0x35')][_0xc624('0x47')]?_0x16c542[_0xc624('0x35')]:_0x13b51b[_0xc624('0x2d')];_0x16c542[_0xc624('0x3a')]=qs[_0xc624('0x3b')](_0xc043c1[_0xc624('0x31')]['sort']);_0x16c542['where']=qs[_0xc624('0x34')](_['pick'](_0xc043c1[_0xc624('0x31')],_0x13b51b[_0xc624('0x34')]));if(_0xc043c1[_0xc624('0x31')][_0xc624('0x40')]){_0x16c542[_0xc624('0x3c')]=_[_0xc624('0x3f')](_0x16c542[_0xc624('0x3c')],{'$or':_[_0xc624('0x50')](_0x16c542[_0xc624('0x35')],function(_0x4ea0d6){var _0x2e6267={};_0x2e6267[_0x4ea0d6]={'$like':'%'+_0xc043c1['query'][_0xc624('0x40')]+'%'};return _0x2e6267;})});}_0x16c542=_[_0xc624('0x3f')]({},_0x16c542,_0xc043c1['options']);return _0x38bbae['getConfigurations'](_0x16c542);}})[_0xc624('0x26')](function(_0x3cfc22){if(_0x3cfc22){_0x16f2c2=_0x3cfc22[_0xc624('0x47')];if(!_0xc043c1[_0xc624('0x31')][_0xc624('0x37')](_0xc624('0x38'))){_0x16c542[_0xc624('0x39')]=qs[_0xc624('0x39')](_0xc043c1[_0xc624('0x31')][_0xc624('0x39')]);_0x16c542[_0xc624('0x21')]=qs['offset'](_0xc043c1[_0xc624('0x31')]['offset']);}return _0x38bbae[_0xc624('0x4e')](_0x16c542);}})[_0xc624('0x26')](function(_0x556089){if(_0x556089){return _0x556089?{'count':_0x16f2c2,'rows':_0x556089}:null;}})[_0xc624('0x26')](respondWithResult(_0x2780d3,null))[_0xc624('0x1e')](handleError(_0x2780d3,null));};exports['addConfiguration']=function(_0x269329,_0x26d22d,_0x246aff){if(_0x269329[_0xc624('0x4b')]['id']){delete _0x269329['body']['id'];}return db[_0xc624('0x2f')][_0xc624('0x51')]({'where':{'id':_0x269329[_0xc624('0x45')]['id']}})['then'](handleEntityNotFound(_0x26d22d,null))['then'](function(_0x7d5dce){if(_0x7d5dce){_0x269329[_0xc624('0x4b')][_0xc624('0x52')]=_0x7d5dce['id'];_0x269329['body'][_0xc624('0x53')]=integrations[_0xc624('0x54')](_0x269329[_0xc624('0x4b')][_0xc624('0x55')],_0x269329['body']['type']);_0x269329[_0xc624('0x4b')][_0xc624('0x56')]=integrations['getDescriptions'](_0x269329[_0xc624('0x4b')][_0xc624('0x55')],_0x269329['body'][_0xc624('0x57')]);return db[_0xc624('0x4f')][_0xc624('0x4a')](_0x269329['body'],{'include':[{'model':db[_0xc624('0x58')],'as':_0xc624('0x53')},{'model':db[_0xc624('0x58')],'as':_0xc624('0x56')}]});}return null;})[_0xc624('0x26')](respondWithResult(_0x26d22d,null))[_0xc624('0x1e')](handleError(_0x26d22d,null));};exports[_0xc624('0x59')]=function(_0x7c103a,_0x57604a,_0x49f6f6){return db[_0xc624('0x2f')][_0xc624('0x51')]({'where':{'id':_0x7c103a[_0xc624('0x45')]['id']},'attributes':['id',_0xc624('0x5a'),'password',_0xc624('0x5b'),_0xc624('0x5c'),'remoteUri']})['then'](handleEntityNotFound(_0x57604a,null))['then'](function(_0x4e8bd3){if(_0x4e8bd3){var _0x376e40={'method':_0xc624('0x5d'),'uri':util[_0xc624('0x5e')](_0xc624('0x5f'),_0x4e8bd3[_0xc624('0x60')],_0xc624('0x61')),'json':!![]};switch(_0x4e8bd3['authType']){case _0xc624('0x62'):_0x376e40['headers']={'Authorization':util[_0xc624('0x5e')]('Basic\x20%s',new Buffer(util['format'](_0xc624('0x63'),_0x4e8bd3[_0xc624('0x5a')],_0x4e8bd3['password']))[_0xc624('0x64')](_0xc624('0x65')))};break;case _0xc624('0x5b'):_0x376e40['headers']={'Authorization':util['format'](_0xc624('0x66'),new Buffer(util['format']('%s/token:%s',_0x4e8bd3[_0xc624('0x5a')],_0x4e8bd3['token']))['toString'](_0xc624('0x65')))};break;default:throw new db[(_0xc624('0x67'))][(_0xc624('0x68'))](_0xc624('0x69'));}return rp(_0x376e40);}})[_0xc624('0x26')](function(_0x1ebf45){if(_0x1ebf45){var _0x3612bd=[_0xc624('0x6a'),_0xc624('0x6b'),_0xc624('0x6c'),_0xc624('0x6d')];_[_0xc624('0x6e')](_0x1ebf45[_0xc624('0x61')],function(_0x4794ef){return _0x3612bd[_0xc624('0x6f')](_0x4794ef[_0xc624('0x57')]);});return{'count':_0x1ebf45[_0xc624('0x61')][_0xc624('0x47')],'rows':_[_0xc624('0x50')](_0x1ebf45[_0xc624('0x61')],function(_0x2f3caf){return{'id':_0x2f3caf['id'],'name':_0x2f3caf[_0xc624('0x70')]>0x7?_0x2f3caf[_0xc624('0x71')]:_0x2f3caf[_0xc624('0x57')],'custom':_0x2f3caf['position']>0x7?!![]:![],'options':_0x2f3caf[_0xc624('0x72')]?_0x2f3caf[_0xc624('0x72')]:[]};})};}})[_0xc624('0x26')](respondWithResult(_0x57604a,null))['catch'](function(_0x579f23){var _0x1187d4=_0x7c103a[_0xc624('0x31')][_0xc624('0x73')]?0x1f4:_0x579f23[_0xc624('0x74')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xc624('0x59'),_0x1187d4,JSON['stringify'](_0x579f23));delete _0x579f23[_0xc624('0x2a')];if(_0x1187d4===0x191){_0x1187d4=0x190;}_0x57604a['status'](_0x1187d4)['send'](_0x7c103a[_0xc624('0x31')][_0xc624('0x73')]?{'message':_0xc624('0x75'),'statusCode':_0x579f23[_0xc624('0x74')]}:_0x579f23);});};