aa367698e87c0f8ebdff030dc372ab82a9614a0b
[motion2.git] / server / api / chatOfflineMessage / chatOfflineMessage.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 _0x304a=['create','body','Attachment','forEach','root','files','attachments','offline-chat','existsSync','remove','describe','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','status','end','count','offset','limit','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','map','fieldName','key','model','keys','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','filters','pick','filter','merge','where','type','VIRTUAL','options','includeAll','include','ChatOfflineMessage','findAll','rows','catch','show','params','find'];(function(_0x17406a,_0x1e2320){var _0x1501ff=function(_0x4b075a){while(--_0x4b075a){_0x17406a['push'](_0x17406a['shift']());}};_0x1501ff(++_0x1e2320);}(_0x304a,0x1a5));var _0xa304=function(_0x317f47,_0x4c0873){_0x317f47=_0x317f47-0x0;var _0x20e43b=_0x304a[_0x317f47];return _0x20e43b;};'use strict';var emlformat=require(_0xa304('0x0'));var rimraf=require(_0xa304('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa304('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa304('0x3'));var Mustache=require(_0xa304('0x4'));var util=require(_0xa304('0x5'));var path=require(_0xa304('0x6'));var sox=require('sox');var csv=require(_0xa304('0x7'));var ejs=require(_0xa304('0x8'));var fs=require('fs');var fs_extra=require(_0xa304('0x9'));var _=require('lodash');var squel=require(_0xa304('0xa'));var crypto=require(_0xa304('0xb'));var jsforce=require(_0xa304('0xc'));var deskjs=require(_0xa304('0xd'));var toCsv=require(_0xa304('0x7'));var querystring=require('querystring');var Papa=require(_0xa304('0xe'));var Redis=require(_0xa304('0xf'));var authService=require(_0xa304('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xa304('0x11'));var hardwareService=require(_0xa304('0x12'));var logger=require(_0xa304('0x13'))(_0xa304('0x14'));var utils=require('../../config/utils');var config=require(_0xa304('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xa304('0x16'))['db'];function respondWithStatusCode(_0x575c2a,_0x5e352b){_0x5e352b=_0x5e352b||0xcc;return function(_0x303cb9){if(_0x303cb9){return _0x575c2a['sendStatus'](_0x5e352b);}return _0x575c2a[_0xa304('0x17')](_0x5e352b)[_0xa304('0x18')]();};}function respondWithResult(_0x35e6bf,_0x16a1d9){_0x16a1d9=_0x16a1d9||0xc8;return function(_0x55aec9){if(_0x55aec9){return _0x35e6bf[_0xa304('0x17')](_0x16a1d9)['json'](_0x55aec9);}};}function respondWithFilteredResult(_0xc9ce0e,_0x5b5dd6){return function(_0x194e58){if(_0x194e58){var _0x4ff7b6=_0x194e58[_0xa304('0x19')],_0x173e2d=_0x5b5dd6[_0xa304('0x1a')],_0x4abf69=_0x5b5dd6[_0xa304('0x1a')]+_0x5b5dd6[_0xa304('0x1b')],_0x5e74a2;if(_0x4abf69>=_0x4ff7b6){_0x4abf69=_0x4ff7b6;_0x5e74a2=0xc8;}else{_0x5e74a2=0xce;}_0xc9ce0e[_0xa304('0x17')](_0x5e74a2);return _0xc9ce0e['set'](_0xa304('0x1c'),_0x173e2d+'-'+_0x4abf69+'/'+_0x4ff7b6)[_0xa304('0x1d')](_0x194e58);}return null;};}function patchUpdates(_0x57c627){return function(_0x376e0b){try{jsonpatch[_0xa304('0x1e')](_0x376e0b,_0x57c627,!![]);}catch(_0x70d2a5){return BPromise[_0xa304('0x1f')](_0x70d2a5);}return _0x376e0b[_0xa304('0x20')]();};}function saveUpdates(_0x8bae4d,_0x48e08a){return function(_0x27fe50){if(_0x27fe50){return _0x27fe50[_0xa304('0x21')](_0x8bae4d)[_0xa304('0x22')](function(_0x17f161){return _0x17f161;});}return null;};}function removeEntity(_0xd357d1,_0x1ac41d){return function(_0x319132){if(_0x319132){return _0x319132[_0xa304('0x23')]()[_0xa304('0x22')](function(){_0xd357d1[_0xa304('0x17')](0xcc)[_0xa304('0x18')]();});}};}function handleEntityNotFound(_0x2add52,_0x4f0372){return function(_0x53bd16){if(!_0x53bd16){_0x2add52[_0xa304('0x24')](0x194);}return _0x53bd16;};}function handleError(_0x2e94c8,_0x51658c){_0x51658c=_0x51658c||0x1f4;return function(_0x531159){logger[_0xa304('0x25')](_0x531159[_0xa304('0x26')]);if(_0x531159['name']){delete _0x531159[_0xa304('0x27')];}_0x2e94c8['status'](_0x51658c)[_0xa304('0x28')](_0x531159);};}exports['index']=function(_0x1ba4f3,_0x21644b){var _0x580737={},_0x5b0dc1={},_0x4ca123={'count':0x0,'rows':[]};var _0x41ce65=_[_0xa304('0x29')](db['ChatOfflineMessage']['rawAttributes'],function(_0x197c89){return{'name':_0x197c89[_0xa304('0x2a')],'type':_0x197c89['type'][_0xa304('0x2b')]};});_0x5b0dc1[_0xa304('0x2c')]=_[_0xa304('0x29')](_0x41ce65,_0xa304('0x27'));_0x5b0dc1['query']=_[_0xa304('0x2d')](_0x1ba4f3['query']);_0x5b0dc1['filters']=_[_0xa304('0x2e')](_0x5b0dc1[_0xa304('0x2c')],_0x5b0dc1[_0xa304('0x2f')]);_0x580737[_0xa304('0x30')]=_[_0xa304('0x2e')](_0x5b0dc1[_0xa304('0x2c')],qs[_0xa304('0x31')](_0x1ba4f3[_0xa304('0x2f')][_0xa304('0x31')]));_0x580737['attributes']=_0x580737[_0xa304('0x30')][_0xa304('0x32')]?_0x580737[_0xa304('0x30')]:_0x5b0dc1['model'];if(!_0x1ba4f3[_0xa304('0x2f')][_0xa304('0x33')](_0xa304('0x34'))){_0x580737['limit']=qs[_0xa304('0x1b')](_0x1ba4f3['query'][_0xa304('0x1b')]);_0x580737[_0xa304('0x1a')]=qs['offset'](_0x1ba4f3['query'][_0xa304('0x1a')]);}_0x580737[_0xa304('0x35')]=qs['sort'](_0x1ba4f3[_0xa304('0x2f')]['sort']);_0x580737['where']=qs[_0xa304('0x36')](_[_0xa304('0x37')](_0x1ba4f3[_0xa304('0x2f')],_0x5b0dc1[_0xa304('0x36')]),_0x41ce65);if(_0x1ba4f3[_0xa304('0x2f')][_0xa304('0x38')]){_0x580737['where']=_[_0xa304('0x39')](_0x580737[_0xa304('0x3a')],{'$or':_[_0xa304('0x29')](_0x41ce65,function(_0x4edeb5){if(_0x4edeb5[_0xa304('0x3b')]!==_0xa304('0x3c')){var _0x188799={};_0x188799[_0x4edeb5[_0xa304('0x27')]]={'$like':'%'+_0x1ba4f3[_0xa304('0x2f')][_0xa304('0x38')]+'%'};return _0x188799;}})});}_0x580737=_['merge']({},_0x580737,_0x1ba4f3[_0xa304('0x3d')]);var _0x23749c={'where':_0x580737[_0xa304('0x3a')]};return db['ChatOfflineMessage']['count'](_0x23749c)[_0xa304('0x22')](function(_0x1bd119){_0x4ca123[_0xa304('0x19')]=_0x1bd119;if(_0x1ba4f3[_0xa304('0x2f')][_0xa304('0x3e')]){_0x580737[_0xa304('0x3f')]=[{'all':!![]}];}return db[_0xa304('0x40')][_0xa304('0x41')](_0x580737);})[_0xa304('0x22')](function(_0x3d09ff){_0x4ca123[_0xa304('0x42')]=_0x3d09ff;return _0x4ca123;})[_0xa304('0x22')](respondWithFilteredResult(_0x21644b,_0x580737))[_0xa304('0x43')](handleError(_0x21644b,null));};exports[_0xa304('0x44')]=function(_0x4635e0,_0x208531){var _0x80ddf3={'raw':!![],'where':{'id':_0x4635e0[_0xa304('0x45')]['id']}},_0x12ebce={};_0x12ebce['model']=_['keys'](db[_0xa304('0x40')]['rawAttributes']);_0x12ebce[_0xa304('0x2f')]=_[_0xa304('0x2d')](_0x4635e0[_0xa304('0x2f')]);_0x12ebce['filters']=_[_0xa304('0x2e')](_0x12ebce[_0xa304('0x2c')],_0x12ebce[_0xa304('0x2f')]);_0x80ddf3[_0xa304('0x30')]=_[_0xa304('0x2e')](_0x12ebce[_0xa304('0x2c')],qs[_0xa304('0x31')](_0x4635e0['query'][_0xa304('0x31')]));_0x80ddf3[_0xa304('0x30')]=_0x80ddf3[_0xa304('0x30')][_0xa304('0x32')]?_0x80ddf3['attributes']:_0x12ebce[_0xa304('0x2c')];if(_0x4635e0[_0xa304('0x2f')]['includeAll']){_0x80ddf3[_0xa304('0x3f')]=[{'all':!![]}];}_0x80ddf3=_[_0xa304('0x39')]({},_0x80ddf3,_0x4635e0[_0xa304('0x3d')]);return db[_0xa304('0x40')][_0xa304('0x46')](_0x80ddf3)[_0xa304('0x22')](handleEntityNotFound(_0x208531,null))['then'](respondWithResult(_0x208531,null))[_0xa304('0x43')](handleError(_0x208531,null));};exports[_0xa304('0x47')]=function(_0x391313,_0x351fac){return db[_0xa304('0x40')]['create'](_0x391313['body'],{})[_0xa304('0x22')](respondWithResult(_0x351fac,0xc9))[_0xa304('0x43')](handleError(_0x351fac,null));};exports['update']=function(_0x1ba730,_0x1f1b18){if(_0x1ba730[_0xa304('0x48')]['id']){delete _0x1ba730['body']['id'];}return db[_0xa304('0x40')][_0xa304('0x46')]({'where':{'id':_0x1ba730[_0xa304('0x45')]['id']}})[_0xa304('0x22')](handleEntityNotFound(_0x1f1b18,null))['then'](saveUpdates(_0x1ba730['body'],null))[_0xa304('0x22')](respondWithResult(_0x1f1b18,null))['catch'](handleError(_0x1f1b18,null));};exports['destroy']=function(_0x49e4df,_0x5e9cf0){return db[_0xa304('0x49')][_0xa304('0x41')]({'where':{'ChatOfflineMessageId':_0x49e4df[_0xa304('0x45')]['id']},'raw':!![]})[_0xa304('0x22')](function(_0x2f648b){_0x2f648b[_0xa304('0x4a')](function(_0x57dc3f){var _0x3ea019=path['join'](config[_0xa304('0x4b')],'server',_0xa304('0x4c'),_0xa304('0x4d'),_0xa304('0x4e'),_0x57dc3f['basename']);var _0x15401c=fs[_0xa304('0x4f')](_0x3ea019);if(_0x15401c)fs_extra[_0xa304('0x50')](_0x3ea019);});})['then'](function(){return db[_0xa304('0x40')][_0xa304('0x46')]({'where':{'id':_0x49e4df[_0xa304('0x45')]['id']},'individualHooks':!![]});})['then'](handleEntityNotFound(_0x5e9cf0,null))['then'](removeEntity(_0x5e9cf0,null))[_0xa304('0x43')](handleError(_0x5e9cf0,null));};exports[_0xa304('0x51')]=function(_0x5a646f,_0x1d6554){return db[_0xa304('0x40')][_0xa304('0x51')]()[_0xa304('0x22')](respondWithResult(_0x1d6554,null))[_0xa304('0x43')](handleError(_0x1d6554,null));};