c6a6463c755af41e88d8e5e4eabe6e3334d54e3f
[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 _0x0db9=['where','filter','merge','FreshdeskField','includeAll','include','findAll','rows','catch','show','keys','options','find','create','body','params','destroy','eml-format','request-promise','moment','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort'];(function(_0x36a236,_0x3cc5fc){var _0xa4ab27=function(_0xac60ea){while(--_0xac60ea){_0x36a236['push'](_0x36a236['shift']());}};_0xa4ab27(++_0x3cc5fc);}(_0x0db9,0xa3));var _0x90db=function(_0x263f4c,_0x438626){_0x263f4c=_0x263f4c-0x0;var _0x3a78d3=_0x0db9[_0x263f4c];return _0x3a78d3;};'use strict';var emlformat=require(_0x90db('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x90db('0x1'));var moment=require(_0x90db('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x90db('0x3'));var util=require('util');var path=require(_0x90db('0x4'));var sox=require(_0x90db('0x5'));var csv=require('to-csv');var ejs=require(_0x90db('0x6'));var fs=require('fs');var fs_extra=require(_0x90db('0x7'));var _=require(_0x90db('0x8'));var squel=require(_0x90db('0x9'));var crypto=require(_0x90db('0xa'));var jsforce=require(_0x90db('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x90db('0xc'));var querystring=require(_0x90db('0xd'));var Papa=require(_0x90db('0xe'));var Redis=require(_0x90db('0xf'));var authService=require(_0x90db('0x10'));var qs=require(_0x90db('0x11'));var as=require(_0x90db('0x12'));var hardwareService=require(_0x90db('0x13'));var logger=require(_0x90db('0x14'))(_0x90db('0x15'));var utils=require(_0x90db('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x90db('0x17'));var db=require(_0x90db('0x18'))['db'];function respondWithStatusCode(_0x45ad3c,_0x436327){_0x436327=_0x436327||0xcc;return function(_0x1b410d){if(_0x1b410d){return _0x45ad3c[_0x90db('0x19')](_0x436327);}return _0x45ad3c[_0x90db('0x1a')](_0x436327)[_0x90db('0x1b')]();};}function respondWithResult(_0x7826f7,_0x309aea){_0x309aea=_0x309aea||0xc8;return function(_0x334e22){if(_0x334e22){return _0x7826f7[_0x90db('0x1a')](_0x309aea)[_0x90db('0x1c')](_0x334e22);}};}function respondWithFilteredResult(_0xda2abe,_0x544226){return function(_0x3124d4){if(_0x3124d4){var _0x5ef456=typeof _0x544226[_0x90db('0x1d')]===_0x90db('0x1e')&&typeof _0x544226[_0x90db('0x1f')]===_0x90db('0x1e');var _0x32ff04=_0x3124d4[_0x90db('0x20')];var _0x15e33e=_0x5ef456?0x0:_0x544226[_0x90db('0x1d')];var _0x24a16a=_0x5ef456?_0x3124d4[_0x90db('0x20')]:_0x544226['offset']+_0x544226[_0x90db('0x1f')];var _0x445a22;if(_0x24a16a>=_0x32ff04){_0x24a16a=_0x32ff04;_0x445a22=0xc8;}else{_0x445a22=0xce;}_0xda2abe['status'](_0x445a22);return _0xda2abe['set'](_0x90db('0x21'),_0x15e33e+'-'+_0x24a16a+'/'+_0x32ff04)[_0x90db('0x1c')](_0x3124d4);}return null;};}function patchUpdates(_0x300dc2){return function(_0x3a58c4){try{jsonpatch[_0x90db('0x22')](_0x3a58c4,_0x300dc2,!![]);}catch(_0x168eaf){return BPromise[_0x90db('0x23')](_0x168eaf);}return _0x3a58c4['save']();};}function saveUpdates(_0xb45340,_0x1aeab9){return function(_0x23934a){if(_0x23934a){return _0x23934a[_0x90db('0x24')](_0xb45340)['then'](function(_0x43028e){return _0x43028e;});}return null;};}function removeEntity(_0x5a98f6,_0x459068){return function(_0x19f9c6){if(_0x19f9c6){return _0x19f9c6['destroy']()[_0x90db('0x25')](function(){_0x5a98f6[_0x90db('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2f8469,_0x3e3fbd){return function(_0x5b3c09){if(!_0x5b3c09){_0x2f8469[_0x90db('0x19')](0x194);}return _0x5b3c09;};}function handleError(_0xe026cf,_0x1cc660){_0x1cc660=_0x1cc660||0x1f4;return function(_0x94cd84){logger['error'](_0x94cd84[_0x90db('0x26')]);if(_0x94cd84[_0x90db('0x27')]){delete _0x94cd84[_0x90db('0x27')];}_0xe026cf[_0x90db('0x1a')](_0x1cc660)[_0x90db('0x28')](_0x94cd84);};}exports[_0x90db('0x29')]=function(_0x44b5b6,_0x3c7f67){var _0x4c6311={},_0x3489d1={},_0x552c2e={'count':0x0,'rows':[]};var _0xa2bb=_[_0x90db('0x2a')](db['FreshdeskField'][_0x90db('0x2b')],function(_0xfc4ceb){return{'name':_0xfc4ceb[_0x90db('0x2c')],'type':_0xfc4ceb[_0x90db('0x2d')]['key']};});_0x3489d1[_0x90db('0x2e')]=_[_0x90db('0x2a')](_0xa2bb,_0x90db('0x27'));_0x3489d1['query']=_['keys'](_0x44b5b6[_0x90db('0x2f')]);_0x3489d1[_0x90db('0x30')]=_[_0x90db('0x31')](_0x3489d1['model'],_0x3489d1[_0x90db('0x2f')]);_0x4c6311[_0x90db('0x32')]=_['intersection'](_0x3489d1[_0x90db('0x2e')],qs[_0x90db('0x33')](_0x44b5b6['query'][_0x90db('0x33')]));_0x4c6311[_0x90db('0x32')]=_0x4c6311[_0x90db('0x32')][_0x90db('0x34')]?_0x4c6311['attributes']:_0x3489d1['model'];if(!_0x44b5b6[_0x90db('0x2f')]['hasOwnProperty'](_0x90db('0x35'))){_0x4c6311[_0x90db('0x1f')]=qs[_0x90db('0x1f')](_0x44b5b6['query'][_0x90db('0x1f')]);_0x4c6311['offset']=qs[_0x90db('0x1d')](_0x44b5b6[_0x90db('0x2f')]['offset']);}_0x4c6311[_0x90db('0x36')]=qs[_0x90db('0x37')](_0x44b5b6[_0x90db('0x2f')][_0x90db('0x37')]);_0x4c6311[_0x90db('0x38')]=qs[_0x90db('0x30')](_['pick'](_0x44b5b6[_0x90db('0x2f')],_0x3489d1[_0x90db('0x30')]),_0xa2bb);if(_0x44b5b6['query'][_0x90db('0x39')]){_0x4c6311[_0x90db('0x38')]=_[_0x90db('0x3a')](_0x4c6311['where'],{'$or':_[_0x90db('0x2a')](_0xa2bb,function(_0x2c9f57){if(_0x2c9f57['type']!=='VIRTUAL'){var _0x57c06b={};_0x57c06b[_0x2c9f57['name']]={'$like':'%'+_0x44b5b6[_0x90db('0x2f')][_0x90db('0x39')]+'%'};return _0x57c06b;}})});}_0x4c6311=_[_0x90db('0x3a')]({},_0x4c6311,_0x44b5b6['options']);var _0x55b0b2={'where':_0x4c6311[_0x90db('0x38')]};return db[_0x90db('0x3b')]['count'](_0x55b0b2)[_0x90db('0x25')](function(_0x592c01){_0x552c2e[_0x90db('0x20')]=_0x592c01;if(_0x44b5b6[_0x90db('0x2f')][_0x90db('0x3c')]){_0x4c6311[_0x90db('0x3d')]=[{'all':!![]}];}return db[_0x90db('0x3b')][_0x90db('0x3e')](_0x4c6311);})[_0x90db('0x25')](function(_0x1d6f9a){_0x552c2e[_0x90db('0x3f')]=_0x1d6f9a;return _0x552c2e;})['then'](respondWithFilteredResult(_0x3c7f67,_0x4c6311))[_0x90db('0x40')](handleError(_0x3c7f67,null));};exports[_0x90db('0x41')]=function(_0x2e1fc8,_0xd45db3){var _0x4611f1={'raw':!![],'where':{'id':_0x2e1fc8['params']['id']}},_0x4f0b46={};_0x4f0b46[_0x90db('0x2e')]=_['keys'](db[_0x90db('0x3b')][_0x90db('0x2b')]);_0x4f0b46[_0x90db('0x2f')]=_[_0x90db('0x42')](_0x2e1fc8[_0x90db('0x2f')]);_0x4f0b46['filters']=_['intersection'](_0x4f0b46['model'],_0x4f0b46[_0x90db('0x2f')]);_0x4611f1[_0x90db('0x32')]=_[_0x90db('0x31')](_0x4f0b46['model'],qs[_0x90db('0x33')](_0x2e1fc8[_0x90db('0x2f')][_0x90db('0x33')]));_0x4611f1[_0x90db('0x32')]=_0x4611f1['attributes'][_0x90db('0x34')]?_0x4611f1[_0x90db('0x32')]:_0x4f0b46[_0x90db('0x2e')];if(_0x2e1fc8[_0x90db('0x2f')]['includeAll']){_0x4611f1['include']=[{'all':!![]}];}_0x4611f1=_[_0x90db('0x3a')]({},_0x4611f1,_0x2e1fc8[_0x90db('0x43')]);return db[_0x90db('0x3b')][_0x90db('0x44')](_0x4611f1)['then'](handleEntityNotFound(_0xd45db3,null))[_0x90db('0x25')](respondWithResult(_0xd45db3,null))['catch'](handleError(_0xd45db3,null));};exports[_0x90db('0x45')]=function(_0x2e4a8a,_0x576449){return db[_0x90db('0x3b')][_0x90db('0x45')](_0x2e4a8a[_0x90db('0x46')],{})[_0x90db('0x25')](respondWithResult(_0x576449,0xc9))[_0x90db('0x40')](handleError(_0x576449,null));};exports[_0x90db('0x24')]=function(_0x407f50,_0x62b965){if(_0x407f50[_0x90db('0x46')]['id']){delete _0x407f50[_0x90db('0x46')]['id'];}return db[_0x90db('0x3b')]['find']({'where':{'id':_0x407f50[_0x90db('0x47')]['id']}})[_0x90db('0x25')](handleEntityNotFound(_0x62b965,null))[_0x90db('0x25')](saveUpdates(_0x407f50[_0x90db('0x46')],null))[_0x90db('0x25')](respondWithResult(_0x62b965,null))[_0x90db('0x40')](handleError(_0x62b965,null));};exports[_0x90db('0x48')]=function(_0x3a768b,_0x43c760){return db[_0x90db('0x3b')][_0x90db('0x44')]({'where':{'id':_0x3a768b[_0x90db('0x47')]['id']}})['then'](handleEntityNotFound(_0x43c760,null))[_0x90db('0x25')](removeEntity(_0x43c760,null))['catch'](handleError(_0x43c760,null));};