85597a6a9343655cf3c7690d3072bad657c01b41
[motion2.git] / server / api / intFreshdeskField / intFreshdeskField.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 _0xc9a5=['../../config/logger','api','../../mysqldb','status','end','json','count','offset','limit','set','apply','save','update','then','destroy','sendStatus','error','stack','name','send','map','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','FreshdeskField','include','findAll','show','keys','rawAttributes','includeAll','find','create','body','params','catch','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x3bfa8d,_0x3f281a){var _0x166c08=function(_0xedfb6d){while(--_0xedfb6d){_0x3bfa8d['push'](_0x3bfa8d['shift']());}};_0x166c08(++_0x3f281a);}(_0xc9a5,0xc3));var _0x5c9a=function(_0x1d010b,_0x19fca5){_0x1d010b=_0x1d010b-0x0;var _0x43cb2d=_0xc9a5[_0x1d010b];return _0x43cb2d;};'use strict';var pdf=require(_0x5c9a('0x0'));var emlformat=require(_0x5c9a('0x1'));var rimraf=require(_0x5c9a('0x2'));var zipdir=require(_0x5c9a('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5c9a('0x4'));var moment=require('moment');var BPromise=require(_0x5c9a('0x5'));var Mustache=require('mustache');var util=require(_0x5c9a('0x6'));var path=require(_0x5c9a('0x7'));var sox=require(_0x5c9a('0x8'));var csv=require(_0x5c9a('0x9'));var ejs=require(_0x5c9a('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x5c9a('0xb'));var crypto=require('crypto');var jsforce=require(_0x5c9a('0xc'));var deskjs=require(_0x5c9a('0xd'));var toCsv=require(_0x5c9a('0x9'));var querystring=require(_0x5c9a('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x5c9a('0xf'));var as=require(_0x5c9a('0x10'));var hardwareService=require(_0x5c9a('0x11'));var logger=require(_0x5c9a('0x12'))(_0x5c9a('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x5c9a('0x14'))['db'];function respondWithStatusCode(_0x11aae7,_0x3e9a94){_0x3e9a94=_0x3e9a94||0xcc;return function(_0x117e1b){if(_0x117e1b){return _0x11aae7['sendStatus'](_0x3e9a94);}return _0x11aae7[_0x5c9a('0x15')](_0x3e9a94)[_0x5c9a('0x16')]();};}function respondWithResult(_0x3083d9,_0x40b33d){_0x40b33d=_0x40b33d||0xc8;return function(_0x445612){if(_0x445612){return _0x3083d9[_0x5c9a('0x15')](_0x40b33d)[_0x5c9a('0x17')](_0x445612);}};}function respondWithFilteredResult(_0x5e2992,_0x51e0ce){return function(_0x287ee3){if(_0x287ee3){var _0x1b2ea5=_0x287ee3[_0x5c9a('0x18')],_0x6bc88f=_0x51e0ce[_0x5c9a('0x19')],_0x121288=_0x51e0ce[_0x5c9a('0x19')]+_0x51e0ce[_0x5c9a('0x1a')],_0x1bc512;if(_0x121288>=_0x1b2ea5){_0x121288=_0x1b2ea5;_0x1bc512=0xc8;}else{_0x1bc512=0xce;}_0x5e2992['status'](_0x1bc512);return _0x5e2992[_0x5c9a('0x1b')]('Content-Range',_0x6bc88f+'-'+_0x121288+'/'+_0x1b2ea5)['json'](_0x287ee3);}return null;};}function patchUpdates(_0x296963){return function(_0x21ef3e){try{jsonpatch[_0x5c9a('0x1c')](_0x21ef3e,_0x296963,!![]);}catch(_0x2e1ac8){return BPromise['reject'](_0x2e1ac8);}return _0x21ef3e[_0x5c9a('0x1d')]();};}function saveUpdates(_0x49ab3d,_0x577d56){return function(_0x48b62e){if(_0x48b62e){return _0x48b62e[_0x5c9a('0x1e')](_0x49ab3d)[_0x5c9a('0x1f')](function(_0x1fa18d){return _0x1fa18d;});}return null;};}function removeEntity(_0x1e38eb,_0x498627){return function(_0xe7ee65){if(_0xe7ee65){return _0xe7ee65[_0x5c9a('0x20')]()[_0x5c9a('0x1f')](function(){_0x1e38eb['status'](0xcc)[_0x5c9a('0x16')]();});}};}function handleEntityNotFound(_0x4e7f4f,_0x5c34e8){return function(_0x3916b4){if(!_0x3916b4){_0x4e7f4f[_0x5c9a('0x21')](0x194);}return _0x3916b4;};}function handleError(_0x3fdbc0,_0x178cf5){_0x178cf5=_0x178cf5||0x1f4;return function(_0x224184){logger[_0x5c9a('0x22')](_0x224184[_0x5c9a('0x23')]);if(_0x224184['name']){delete _0x224184[_0x5c9a('0x24')];}_0x3fdbc0['status'](_0x178cf5)[_0x5c9a('0x25')](_0x224184);};}exports['index']=function(_0x577b84,_0xd4943a){var _0x355c03={},_0x37dea2={},_0x251a6b={'count':0x0,'rows':[]};var _0x3ee9bc=_[_0x5c9a('0x26')](db['FreshdeskField']['rawAttributes'],function(_0x505f8b){return{'name':_0x505f8b[_0x5c9a('0x27')],'type':_0x505f8b[_0x5c9a('0x28')][_0x5c9a('0x29')]};});_0x37dea2[_0x5c9a('0x2a')]=_[_0x5c9a('0x26')](_0x3ee9bc,_0x5c9a('0x24'));_0x37dea2[_0x5c9a('0x2b')]=_['keys'](_0x577b84['query']);_0x37dea2[_0x5c9a('0x2c')]=_['intersection'](_0x37dea2[_0x5c9a('0x2a')],_0x37dea2[_0x5c9a('0x2b')]);_0x355c03[_0x5c9a('0x2d')]=_[_0x5c9a('0x2e')](_0x37dea2['model'],qs[_0x5c9a('0x2f')](_0x577b84[_0x5c9a('0x2b')]['fields']));_0x355c03[_0x5c9a('0x2d')]=_0x355c03[_0x5c9a('0x2d')][_0x5c9a('0x30')]?_0x355c03[_0x5c9a('0x2d')]:_0x37dea2[_0x5c9a('0x2a')];if(!_0x577b84[_0x5c9a('0x2b')][_0x5c9a('0x31')](_0x5c9a('0x32'))){_0x355c03[_0x5c9a('0x1a')]=qs[_0x5c9a('0x1a')](_0x577b84[_0x5c9a('0x2b')]['limit']);_0x355c03[_0x5c9a('0x19')]=qs[_0x5c9a('0x19')](_0x577b84['query'][_0x5c9a('0x19')]);}_0x355c03[_0x5c9a('0x33')]=qs[_0x5c9a('0x34')](_0x577b84[_0x5c9a('0x2b')][_0x5c9a('0x34')]);_0x355c03[_0x5c9a('0x35')]=qs[_0x5c9a('0x2c')](_[_0x5c9a('0x36')](_0x577b84[_0x5c9a('0x2b')],_0x37dea2['filters']));if(_0x577b84['query'][_0x5c9a('0x37')]){_0x355c03[_0x5c9a('0x35')]=_['merge'](_0x355c03['where'],{'$or':_['map'](_0x3ee9bc,function(_0x361384){if(_0x361384[_0x5c9a('0x28')]!==_0x5c9a('0x38')){var _0xeed2af={};_0xeed2af[_0x361384[_0x5c9a('0x24')]]={'$like':'%'+_0x577b84[_0x5c9a('0x2b')][_0x5c9a('0x37')]+'%'};return _0xeed2af;}})});}_0x355c03=_[_0x5c9a('0x39')]({},_0x355c03,_0x577b84[_0x5c9a('0x3a')]);var _0x4a1380={'where':_0x355c03['where']};return db[_0x5c9a('0x3b')][_0x5c9a('0x18')](_0x4a1380)[_0x5c9a('0x1f')](function(_0x53f768){_0x251a6b[_0x5c9a('0x18')]=_0x53f768;if(_0x577b84['query']['includeAll']){_0x355c03[_0x5c9a('0x3c')]=[{'all':!![]}];}return db['FreshdeskField'][_0x5c9a('0x3d')](_0x355c03);})[_0x5c9a('0x1f')](function(_0x57b8f8){_0x251a6b['rows']=_0x57b8f8;return _0x251a6b;})[_0x5c9a('0x1f')](respondWithFilteredResult(_0xd4943a,_0x355c03))['catch'](handleError(_0xd4943a,null));};exports[_0x5c9a('0x3e')]=function(_0x1bce06,_0x20e87a){var _0x4acbd8={'raw':!![],'where':{'id':_0x1bce06['params']['id']}},_0x490d18={};_0x490d18['model']=_[_0x5c9a('0x3f')](db[_0x5c9a('0x3b')][_0x5c9a('0x40')]);_0x490d18[_0x5c9a('0x2b')]=_['keys'](_0x1bce06[_0x5c9a('0x2b')]);_0x490d18['filters']=_['intersection'](_0x490d18['model'],_0x490d18[_0x5c9a('0x2b')]);_0x4acbd8[_0x5c9a('0x2d')]=_[_0x5c9a('0x2e')](_0x490d18[_0x5c9a('0x2a')],qs[_0x5c9a('0x2f')](_0x1bce06[_0x5c9a('0x2b')][_0x5c9a('0x2f')]));_0x4acbd8[_0x5c9a('0x2d')]=_0x4acbd8[_0x5c9a('0x2d')][_0x5c9a('0x30')]?_0x4acbd8['attributes']:_0x490d18['model'];if(_0x1bce06[_0x5c9a('0x2b')][_0x5c9a('0x41')]){_0x4acbd8[_0x5c9a('0x3c')]=[{'all':!![]}];}_0x4acbd8=_[_0x5c9a('0x39')]({},_0x4acbd8,_0x1bce06['options']);return db[_0x5c9a('0x3b')][_0x5c9a('0x42')](_0x4acbd8)[_0x5c9a('0x1f')](handleEntityNotFound(_0x20e87a,null))[_0x5c9a('0x1f')](respondWithResult(_0x20e87a,null))['catch'](handleError(_0x20e87a,null));};exports[_0x5c9a('0x43')]=function(_0x34d5df,_0x41138b){return db[_0x5c9a('0x3b')][_0x5c9a('0x43')](_0x34d5df[_0x5c9a('0x44')],{})[_0x5c9a('0x1f')](respondWithResult(_0x41138b,0xc9))['catch'](handleError(_0x41138b,null));};exports[_0x5c9a('0x1e')]=function(_0x4400cc,_0x1e1b25){if(_0x4400cc[_0x5c9a('0x44')]['id']){delete _0x4400cc[_0x5c9a('0x44')]['id'];}return db[_0x5c9a('0x3b')]['find']({'where':{'id':_0x4400cc[_0x5c9a('0x45')]['id']}})[_0x5c9a('0x1f')](handleEntityNotFound(_0x1e1b25,null))[_0x5c9a('0x1f')](saveUpdates(_0x4400cc[_0x5c9a('0x44')],null))['then'](respondWithResult(_0x1e1b25,null))[_0x5c9a('0x46')](handleError(_0x1e1b25,null));};exports[_0x5c9a('0x20')]=function(_0x40f909,_0x66440a){return db[_0x5c9a('0x3b')][_0x5c9a('0x42')]({'where':{'id':_0x40f909['params']['id']}})[_0x5c9a('0x1f')](handleEntityNotFound(_0x66440a,null))['then'](removeEntity(_0x66440a,null))['catch'](handleError(_0x66440a,null));};