Built motion from commit 85328c08.|2.5.50
[motion2.git] / server / api / attachment / attachment.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 _0xd18d=['params','options','find','clone','get','omit','createdAt','updatedAt','body','create','catch','file','originalname','basename','filename','type','mimetype','download','findOne','ChatOfflineMessageId','root','server/files/attachments/','join','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','set','apply','reject','update','then','destroy','end','sendStatus','error','stack','name','send','index','map','Attachment','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','filter','merge','includeAll','include','findAll','rows','show'];(function(_0x5cf40a,_0x21e31f){var _0x26216d=function(_0x82a779){while(--_0x82a779){_0x5cf40a['push'](_0x5cf40a['shift']());}};_0x26216d(++_0x21e31f);}(_0xd18d,0xc7));var _0xdd18=function(_0x487f22,_0x2cc035){_0x487f22=_0x487f22-0x0;var _0x5b8880=_0xd18d[_0x487f22];return _0x5b8880;};'use strict';var emlformat=require(_0xdd18('0x0'));var rimraf=require(_0xdd18('0x1'));var zipdir=require(_0xdd18('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xdd18('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xdd18('0x4'));var util=require(_0xdd18('0x5'));var path=require(_0xdd18('0x6'));var sox=require(_0xdd18('0x7'));var csv=require(_0xdd18('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xdd18('0x9'));var squel=require('squel');var crypto=require(_0xdd18('0xa'));var jsforce=require(_0xdd18('0xb'));var deskjs=require(_0xdd18('0xc'));var toCsv=require('to-csv');var querystring=require(_0xdd18('0xd'));var Papa=require(_0xdd18('0xe'));var Redis=require('ioredis');var authService=require(_0xdd18('0xf'));var qs=require(_0xdd18('0x10'));var as=require(_0xdd18('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdd18('0x12'))('api');var utils=require(_0xdd18('0x13'));var config=require(_0xdd18('0x14'));var licenseUtil=require(_0xdd18('0x15'));var db=require(_0xdd18('0x16'))['db'];function respondWithStatusCode(_0x124ada,_0x408010){_0x408010=_0x408010||0xcc;return function(_0x12ab1a){if(_0x12ab1a){return _0x124ada['sendStatus'](_0x408010);}return _0x124ada[_0xdd18('0x17')](_0x408010)['end']();};}function respondWithResult(_0x218761,_0x2a8bfa){_0x2a8bfa=_0x2a8bfa||0xc8;return function(_0x5bd222){if(_0x5bd222){return _0x218761[_0xdd18('0x17')](_0x2a8bfa)[_0xdd18('0x18')](_0x5bd222);}};}function respondWithFilteredResult(_0xe42468,_0x277826){return function(_0x1f6478){if(_0x1f6478){var _0x2e8a0c=typeof _0x277826[_0xdd18('0x19')]===_0xdd18('0x1a')&&typeof _0x277826[_0xdd18('0x1b')]==='undefined';var _0x23e11f=_0x1f6478[_0xdd18('0x1c')];var _0x10a362=_0x2e8a0c?0x0:_0x277826[_0xdd18('0x19')];var _0x37aa8f=_0x2e8a0c?_0x1f6478['count']:_0x277826['offset']+_0x277826[_0xdd18('0x1b')];var _0x215ba7;if(_0x37aa8f>=_0x23e11f){_0x37aa8f=_0x23e11f;_0x215ba7=0xc8;}else{_0x215ba7=0xce;}_0xe42468[_0xdd18('0x17')](_0x215ba7);return _0xe42468[_0xdd18('0x1d')]('Content-Range',_0x10a362+'-'+_0x37aa8f+'/'+_0x23e11f)['json'](_0x1f6478);}return null;};}function patchUpdates(_0x292e8b){return function(_0x427392){try{jsonpatch[_0xdd18('0x1e')](_0x427392,_0x292e8b,!![]);}catch(_0x29785f){return BPromise[_0xdd18('0x1f')](_0x29785f);}return _0x427392['save']();};}function saveUpdates(_0x12da67,_0x3c2928){return function(_0x343fbb){if(_0x343fbb){return _0x343fbb[_0xdd18('0x20')](_0x12da67)[_0xdd18('0x21')](function(_0x4cb722){return _0x4cb722;});}return null;};}function removeEntity(_0x325e4c,_0x577433){return function(_0x3ebcf7){if(_0x3ebcf7){return _0x3ebcf7[_0xdd18('0x22')]()[_0xdd18('0x21')](function(){_0x325e4c[_0xdd18('0x17')](0xcc)[_0xdd18('0x23')]();});}};}function handleEntityNotFound(_0x562275,_0x1d21d0){return function(_0x547bd1){if(!_0x547bd1){_0x562275[_0xdd18('0x24')](0x194);}return _0x547bd1;};}function handleError(_0x15ce6d,_0x1f5830){_0x1f5830=_0x1f5830||0x1f4;return function(_0x92599c){logger[_0xdd18('0x25')](_0x92599c[_0xdd18('0x26')]);if(_0x92599c[_0xdd18('0x27')]){delete _0x92599c['name'];}_0x15ce6d[_0xdd18('0x17')](_0x1f5830)[_0xdd18('0x28')](_0x92599c);};}exports[_0xdd18('0x29')]=function(_0x397b98,_0x3327fa){var _0x4b7e74={},_0x4dcf4b={},_0xba02e9={'count':0x0,'rows':[]};var _0x36408d=_[_0xdd18('0x2a')](db[_0xdd18('0x2b')][_0xdd18('0x2c')],function(_0x309a3a){return{'name':_0x309a3a[_0xdd18('0x2d')],'type':_0x309a3a['type'][_0xdd18('0x2e')]};});_0x4dcf4b[_0xdd18('0x2f')]=_[_0xdd18('0x2a')](_0x36408d,'name');_0x4dcf4b[_0xdd18('0x30')]=_[_0xdd18('0x31')](_0x397b98[_0xdd18('0x30')]);_0x4dcf4b[_0xdd18('0x32')]=_[_0xdd18('0x33')](_0x4dcf4b[_0xdd18('0x2f')],_0x4dcf4b[_0xdd18('0x30')]);_0x4b7e74[_0xdd18('0x34')]=_[_0xdd18('0x33')](_0x4dcf4b[_0xdd18('0x2f')],qs[_0xdd18('0x35')](_0x397b98['query'][_0xdd18('0x35')]));_0x4b7e74[_0xdd18('0x34')]=_0x4b7e74[_0xdd18('0x34')][_0xdd18('0x36')]?_0x4b7e74[_0xdd18('0x34')]:_0x4dcf4b[_0xdd18('0x2f')];if(!_0x397b98[_0xdd18('0x30')][_0xdd18('0x37')]('nolimit')){_0x4b7e74[_0xdd18('0x1b')]=qs[_0xdd18('0x1b')](_0x397b98[_0xdd18('0x30')][_0xdd18('0x1b')]);_0x4b7e74['offset']=qs[_0xdd18('0x19')](_0x397b98['query']['offset']);}_0x4b7e74['order']=qs['sort'](_0x397b98[_0xdd18('0x30')][_0xdd18('0x38')]);_0x4b7e74[_0xdd18('0x39')]=qs[_0xdd18('0x32')](_['pick'](_0x397b98[_0xdd18('0x30')],_0x4dcf4b[_0xdd18('0x32')]),_0x36408d);if(_0x397b98[_0xdd18('0x30')][_0xdd18('0x3a')]){_0x4b7e74[_0xdd18('0x39')]=_[_0xdd18('0x3b')](_0x4b7e74['where'],{'$or':_[_0xdd18('0x2a')](_0x36408d,function(_0x24d076){if(_0x24d076['type']!=='VIRTUAL'){var _0x229916={};_0x229916[_0x24d076[_0xdd18('0x27')]]={'$like':'%'+_0x397b98[_0xdd18('0x30')][_0xdd18('0x3a')]+'%'};return _0x229916;}})});}_0x4b7e74=_['merge']({},_0x4b7e74,_0x397b98['options']);var _0x49a25a={'where':_0x4b7e74['where']};return db[_0xdd18('0x2b')]['count'](_0x49a25a)[_0xdd18('0x21')](function(_0x3c0ce4){_0xba02e9[_0xdd18('0x1c')]=_0x3c0ce4;if(_0x397b98[_0xdd18('0x30')][_0xdd18('0x3c')]){_0x4b7e74[_0xdd18('0x3d')]=[{'all':!![]}];}return db[_0xdd18('0x2b')][_0xdd18('0x3e')](_0x4b7e74);})[_0xdd18('0x21')](function(_0x12d506){_0xba02e9[_0xdd18('0x3f')]=_0x12d506;return _0xba02e9;})[_0xdd18('0x21')](respondWithFilteredResult(_0x3327fa,_0x4b7e74))['catch'](handleError(_0x3327fa,null));};exports[_0xdd18('0x40')]=function(_0x5842f1,_0x5b9413){var _0xeb10b5={'raw':!![],'where':{'id':_0x5842f1[_0xdd18('0x41')]['id']}},_0x4277ba={};_0x4277ba[_0xdd18('0x2f')]=_[_0xdd18('0x31')](db[_0xdd18('0x2b')]['rawAttributes']);_0x4277ba[_0xdd18('0x30')]=_[_0xdd18('0x31')](_0x5842f1[_0xdd18('0x30')]);_0x4277ba['filters']=_[_0xdd18('0x33')](_0x4277ba[_0xdd18('0x2f')],_0x4277ba[_0xdd18('0x30')]);_0xeb10b5[_0xdd18('0x34')]=_[_0xdd18('0x33')](_0x4277ba[_0xdd18('0x2f')],qs['fields'](_0x5842f1[_0xdd18('0x30')]['fields']));_0xeb10b5['attributes']=_0xeb10b5[_0xdd18('0x34')][_0xdd18('0x36')]?_0xeb10b5[_0xdd18('0x34')]:_0x4277ba['model'];if(_0x5842f1[_0xdd18('0x30')][_0xdd18('0x3c')]){_0xeb10b5[_0xdd18('0x3d')]=[{'all':!![]}];}_0xeb10b5=_[_0xdd18('0x3b')]({},_0xeb10b5,_0x5842f1[_0xdd18('0x42')]);return db['Attachment'][_0xdd18('0x43')](_0xeb10b5)[_0xdd18('0x21')](handleEntityNotFound(_0x5b9413,null))[_0xdd18('0x21')](respondWithResult(_0x5b9413,null))['catch'](handleError(_0x5b9413,null));};exports[_0xdd18('0x44')]=function(_0x53f7c6,_0x5dda58){var _0x40768c={'where':{'id':_0x53f7c6['params']['id']}},_0x3cd678={};_0x3cd678[_0xdd18('0x2f')]=_[_0xdd18('0x31')](db[_0xdd18('0x2b')]['rawAttributes']);_0x40768c[_0xdd18('0x34')]=_[_0xdd18('0x33')](_0x3cd678[_0xdd18('0x2f')],qs[_0xdd18('0x35')](_0x53f7c6[_0xdd18('0x30')][_0xdd18('0x35')]));_0x40768c[_0xdd18('0x34')]=_0x40768c[_0xdd18('0x34')]['length']?_0x40768c[_0xdd18('0x34')]:_0x3cd678[_0xdd18('0x2f')];if(_0x53f7c6[_0xdd18('0x30')][_0xdd18('0x3c')]){_0x40768c[_0xdd18('0x3d')]=[{'all':!![]}];}_0x40768c=_['merge']({},_0x40768c,_0x53f7c6['options']);return db['Attachment'][_0xdd18('0x43')](_0x40768c)['then'](handleEntityNotFound(_0x5dda58,null))[_0xdd18('0x21')](function(_0x1fedc4){if(_0x1fedc4){var _0x18d1a7=_0x1fedc4[_0xdd18('0x45')]({'plain':!![]});_0x18d1a7=qs[_0xdd18('0x46')](_0x18d1a7,['id',_0xdd18('0x47'),_0xdd18('0x48')]);_0x53f7c6[_0xdd18('0x49')]=_[_0xdd18('0x46')](_0x53f7c6['body'],['id',_0xdd18('0x47'),_0xdd18('0x48')]);return db[_0xdd18('0x2b')][_0xdd18('0x4a')](_[_0xdd18('0x3b')](_0x18d1a7,_0x53f7c6[_0xdd18('0x49')]),{'include':_0x53f7c6[_0xdd18('0x30')]['includeAll']?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x5dda58,0xc9))[_0xdd18('0x4b')](handleError(_0x5dda58,null));};exports['update']=function(_0x159a66,_0x44cc06){if(_0x159a66[_0xdd18('0x49')]['id']){delete _0x159a66[_0xdd18('0x49')]['id'];}return db[_0xdd18('0x2b')][_0xdd18('0x43')]({'where':{'id':_0x159a66[_0xdd18('0x41')]['id']}})[_0xdd18('0x21')](handleEntityNotFound(_0x44cc06,null))[_0xdd18('0x21')](saveUpdates(_0x159a66[_0xdd18('0x49')],null))[_0xdd18('0x21')](respondWithResult(_0x44cc06,null))[_0xdd18('0x4b')](handleError(_0x44cc06,null));};exports[_0xdd18('0x22')]=function(_0x39dc6b,_0xe8f98d){return db['Attachment']['find']({'where':{'id':_0x39dc6b[_0xdd18('0x41')]['id']}})['then'](handleEntityNotFound(_0xe8f98d,null))['then'](removeEntity(_0xe8f98d,null))[_0xdd18('0x4b')](handleError(_0xe8f98d,null));};exports[_0xdd18('0x4a')]=function(_0x13f3e6,_0x1bbdee,_0x4f19c9){_0x13f3e6[_0xdd18('0x49')][_0xdd18('0x27')]=_0x13f3e6[_0xdd18('0x4c')][_0xdd18('0x4d')];_0x13f3e6[_0xdd18('0x49')][_0xdd18('0x4e')]=_0x13f3e6[_0xdd18('0x4c')][_0xdd18('0x4f')];_0x13f3e6[_0xdd18('0x49')][_0xdd18('0x50')]=_0x13f3e6[_0xdd18('0x4c')][_0xdd18('0x51')];return db[_0xdd18('0x2b')][_0xdd18('0x4a')](_0x13f3e6[_0xdd18('0x49')])[_0xdd18('0x21')](respondWithResult(_0x1bbdee,0xc9))[_0xdd18('0x4b')](handleError(_0x1bbdee,null));};exports[_0xdd18('0x52')]=function(_0x47d64f,_0x114221,_0x24f61d){return db[_0xdd18('0x2b')][_0xdd18('0x53')]({'where':{'id':_0x47d64f[_0xdd18('0x41')]['id']},'raw':!![]})[_0xdd18('0x21')](handleEntityNotFound(_0x114221,null))[_0xdd18('0x21')](function(_0x9b232){if(_0x9b232){var _0x43424c=_0x9b232[_0xdd18('0x54')]!==null;var _0x17bcf2=path['join'](config[_0xdd18('0x55')],_0xdd18('0x56'));if(_0x43424c){_0x17bcf2=path[_0xdd18('0x57')](_0x17bcf2,'offline-chat/');}var _0x2cfd0e=path['join'](_0x17bcf2,_0x9b232[_0xdd18('0x4e')]);return _0x114221[_0xdd18('0x52')](_0x2cfd0e);}})['catch'](handleError(_0x114221,null));};