7666900d4dded9a79dd04b247e12400f353eb7a6
[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 _0xd0d9=['sort','where','filters','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','params','find','get','omit','createdAt','updatedAt','create','file','originalname','filename','download','findOne','ChatOfflineMessageId','join','root','basename','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','render','merge','body','message','interaction','map','Attachment','rawAttributes','fieldName','type','keys','query','intersection','model','fields','attributes','length','nolimit','order'];(function(_0x421d7e,_0x2b03b5){var _0x3356eb=function(_0x3ed27f){while(--_0x3ed27f){_0x421d7e['push'](_0x421d7e['shift']());}};_0x3356eb(++_0x2b03b5);}(_0xd0d9,0x75));var _0x9d0d=function(_0x53faed,_0x40790a){_0x53faed=_0x53faed-0x0;var _0x2ba664=_0xd0d9[_0x53faed];return _0x2ba664;};'use strict';var emlformat=require(_0x9d0d('0x0'));var rimraf=require(_0x9d0d('0x1'));var zipdir=require(_0x9d0d('0x2'));var jsonpatch=require(_0x9d0d('0x3'));var rp=require(_0x9d0d('0x4'));var moment=require(_0x9d0d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x9d0d('0x6'));var util=require(_0x9d0d('0x7'));var path=require('path');var sox=require(_0x9d0d('0x8'));var csv=require(_0x9d0d('0x9'));var ejs=require(_0x9d0d('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9d0d('0xb'));var squel=require('squel');var crypto=require(_0x9d0d('0xc'));var jsforce=require(_0x9d0d('0xd'));var deskjs=require(_0x9d0d('0xe'));var toCsv=require(_0x9d0d('0x9'));var querystring=require(_0x9d0d('0xf'));var Papa=require(_0x9d0d('0x10'));var Redis=require(_0x9d0d('0x11'));var authService=require(_0x9d0d('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x9d0d('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x9d0d('0x14'));var utils=require(_0x9d0d('0x15'));var config=require(_0x9d0d('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9d0d('0x17'))['db'];function respondWithStatusCode(_0x40dd9e,_0x1168fe){_0x1168fe=_0x1168fe||0xcc;return function(_0x3301c7){if(_0x3301c7){return _0x40dd9e[_0x9d0d('0x18')](_0x1168fe);}return _0x40dd9e[_0x9d0d('0x19')](_0x1168fe)[_0x9d0d('0x1a')]();};}function respondWithResult(_0x3c40fd,_0x457d6e){_0x457d6e=_0x457d6e||0xc8;return function(_0xc82a69){if(_0xc82a69){return _0x3c40fd[_0x9d0d('0x19')](_0x457d6e)['json'](_0xc82a69);}};}function respondWithFilteredResult(_0x2e7763,_0x26a95c){return function(_0x5dd905){if(_0x5dd905){var _0x2add1f=typeof _0x26a95c[_0x9d0d('0x1b')]===_0x9d0d('0x1c')&&typeof _0x26a95c[_0x9d0d('0x1d')]===_0x9d0d('0x1c');var _0x30fdce=_0x5dd905[_0x9d0d('0x1e')];var _0x412030=_0x2add1f?0x0:_0x26a95c[_0x9d0d('0x1b')];var _0x577ac7=_0x2add1f?_0x5dd905[_0x9d0d('0x1e')]:_0x26a95c[_0x9d0d('0x1b')]+_0x26a95c[_0x9d0d('0x1d')];var _0x4dacf3;if(_0x577ac7>=_0x30fdce){_0x577ac7=_0x30fdce;_0x4dacf3=0xc8;}else{_0x4dacf3=0xce;}_0x2e7763[_0x9d0d('0x19')](_0x4dacf3);return _0x2e7763[_0x9d0d('0x1f')](_0x9d0d('0x20'),_0x412030+'-'+_0x577ac7+'/'+_0x30fdce)[_0x9d0d('0x21')](_0x5dd905);}return null;};}function patchUpdates(_0x393cea){return function(_0x3d70e2){try{jsonpatch[_0x9d0d('0x22')](_0x3d70e2,_0x393cea,!![]);}catch(_0x11d4e7){return BPromise[_0x9d0d('0x23')](_0x11d4e7);}return _0x3d70e2[_0x9d0d('0x24')]();};}function saveUpdates(_0x3d7fb2,_0x21d935){return function(_0x4338d0){if(_0x4338d0){return _0x4338d0[_0x9d0d('0x25')](_0x3d7fb2)[_0x9d0d('0x26')](function(_0x278cc5){return _0x278cc5;});}return null;};}function removeEntity(_0x3bd1a2,_0x517497){return function(_0x1a62ab){if(_0x1a62ab){return _0x1a62ab[_0x9d0d('0x27')]()[_0x9d0d('0x26')](function(){_0x3bd1a2['status'](0xcc)[_0x9d0d('0x1a')]();});}};}function handleEntityNotFound(_0x4b434f,_0x5c851f){return function(_0x5d9ff2){if(!_0x5d9ff2){_0x4b434f[_0x9d0d('0x18')](0x194);}return _0x5d9ff2;};}function handleError(_0x111deb,_0xfb628c){_0xfb628c=_0xfb628c||0x1f4;return function(_0x2431ae){logger[_0x9d0d('0x28')](_0x2431ae[_0x9d0d('0x29')]);if(_0x2431ae[_0x9d0d('0x2a')]){delete _0x2431ae[_0x9d0d('0x2a')];}_0x111deb[_0x9d0d('0x19')](_0xfb628c)[_0x9d0d('0x2b')](_0x2431ae);};}function getMustacheRender(_0x419910,_0xb245){return Mustache[_0x9d0d('0x2c')](_0x419910,_[_0x9d0d('0x2d')](_0xb245[_0x9d0d('0x2e')],{'contact':_0xb245['contact'],'message':_0xb245[_0x9d0d('0x2f')],'agent':_0xb245['agent'],'interaction':_0xb245[_0x9d0d('0x30')],'account':_0xb245['account']}))||'';}exports['index']=function(_0x41f0ed,_0x13b593){var _0x59d900={},_0x1dee97={},_0x400ec2={'count':0x0,'rows':[]};var _0x187cde=_[_0x9d0d('0x31')](db[_0x9d0d('0x32')][_0x9d0d('0x33')],function(_0x1826e5){return{'name':_0x1826e5[_0x9d0d('0x34')],'type':_0x1826e5[_0x9d0d('0x35')]['key']};});_0x1dee97['model']=_[_0x9d0d('0x31')](_0x187cde,'name');_0x1dee97['query']=_[_0x9d0d('0x36')](_0x41f0ed[_0x9d0d('0x37')]);_0x1dee97['filters']=_[_0x9d0d('0x38')](_0x1dee97[_0x9d0d('0x39')],_0x1dee97[_0x9d0d('0x37')]);_0x59d900['attributes']=_[_0x9d0d('0x38')](_0x1dee97[_0x9d0d('0x39')],qs[_0x9d0d('0x3a')](_0x41f0ed[_0x9d0d('0x37')][_0x9d0d('0x3a')]));_0x59d900[_0x9d0d('0x3b')]=_0x59d900[_0x9d0d('0x3b')][_0x9d0d('0x3c')]?_0x59d900[_0x9d0d('0x3b')]:_0x1dee97[_0x9d0d('0x39')];if(!_0x41f0ed[_0x9d0d('0x37')]['hasOwnProperty'](_0x9d0d('0x3d'))){_0x59d900[_0x9d0d('0x1d')]=qs[_0x9d0d('0x1d')](_0x41f0ed[_0x9d0d('0x37')][_0x9d0d('0x1d')]);_0x59d900[_0x9d0d('0x1b')]=qs[_0x9d0d('0x1b')](_0x41f0ed[_0x9d0d('0x37')]['offset']);}_0x59d900[_0x9d0d('0x3e')]=qs[_0x9d0d('0x3f')](_0x41f0ed[_0x9d0d('0x37')][_0x9d0d('0x3f')]);_0x59d900[_0x9d0d('0x40')]=qs[_0x9d0d('0x41')](_['pick'](_0x41f0ed[_0x9d0d('0x37')],_0x1dee97[_0x9d0d('0x41')]),_0x187cde);if(_0x41f0ed[_0x9d0d('0x37')]['filter']){_0x59d900[_0x9d0d('0x40')]=_[_0x9d0d('0x2d')](_0x59d900[_0x9d0d('0x40')],{'$or':_[_0x9d0d('0x31')](_0x187cde,function(_0x3968cd){if(_0x3968cd[_0x9d0d('0x35')]!==_0x9d0d('0x42')){var _0x177e84={};_0x177e84[_0x3968cd[_0x9d0d('0x2a')]]={'$like':'%'+_0x41f0ed['query'][_0x9d0d('0x43')]+'%'};return _0x177e84;}})});}_0x59d900=_[_0x9d0d('0x2d')]({},_0x59d900,_0x41f0ed[_0x9d0d('0x44')]);var _0x42a5c5={'where':_0x59d900[_0x9d0d('0x40')]};return db[_0x9d0d('0x32')][_0x9d0d('0x1e')](_0x42a5c5)[_0x9d0d('0x26')](function(_0x496f28){_0x400ec2[_0x9d0d('0x1e')]=_0x496f28;if(_0x41f0ed[_0x9d0d('0x37')][_0x9d0d('0x45')]){_0x59d900[_0x9d0d('0x46')]=[{'all':!![]}];}return db[_0x9d0d('0x32')][_0x9d0d('0x47')](_0x59d900);})['then'](function(_0x26eb10){_0x400ec2[_0x9d0d('0x48')]=_0x26eb10;return _0x400ec2;})[_0x9d0d('0x26')](respondWithFilteredResult(_0x13b593,_0x59d900))[_0x9d0d('0x49')](handleError(_0x13b593,null));};exports['show']=function(_0x3d63bb,_0xbb54c0){var _0x502bac={'raw':!![],'where':{'id':_0x3d63bb[_0x9d0d('0x4a')]['id']}},_0x2ce223={};_0x2ce223[_0x9d0d('0x39')]=_[_0x9d0d('0x36')](db['Attachment']['rawAttributes']);_0x2ce223[_0x9d0d('0x37')]=_[_0x9d0d('0x36')](_0x3d63bb['query']);_0x2ce223[_0x9d0d('0x41')]=_[_0x9d0d('0x38')](_0x2ce223[_0x9d0d('0x39')],_0x2ce223[_0x9d0d('0x37')]);_0x502bac[_0x9d0d('0x3b')]=_[_0x9d0d('0x38')](_0x2ce223[_0x9d0d('0x39')],qs[_0x9d0d('0x3a')](_0x3d63bb[_0x9d0d('0x37')]['fields']));_0x502bac[_0x9d0d('0x3b')]=_0x502bac[_0x9d0d('0x3b')][_0x9d0d('0x3c')]?_0x502bac[_0x9d0d('0x3b')]:_0x2ce223[_0x9d0d('0x39')];if(_0x3d63bb[_0x9d0d('0x37')]['includeAll']){_0x502bac[_0x9d0d('0x46')]=[{'all':!![]}];}_0x502bac=_[_0x9d0d('0x2d')]({},_0x502bac,_0x3d63bb[_0x9d0d('0x44')]);return db[_0x9d0d('0x32')][_0x9d0d('0x4b')](_0x502bac)[_0x9d0d('0x26')](handleEntityNotFound(_0xbb54c0,null))[_0x9d0d('0x26')](respondWithResult(_0xbb54c0,null))[_0x9d0d('0x49')](handleError(_0xbb54c0,null));};exports['clone']=function(_0x1cde5c,_0x1aa722){var _0x5d8c5={'where':{'id':_0x1cde5c[_0x9d0d('0x4a')]['id']}},_0xf2b795={};_0xf2b795[_0x9d0d('0x39')]=_[_0x9d0d('0x36')](db[_0x9d0d('0x32')][_0x9d0d('0x33')]);_0x5d8c5[_0x9d0d('0x3b')]=_[_0x9d0d('0x38')](_0xf2b795[_0x9d0d('0x39')],qs[_0x9d0d('0x3a')](_0x1cde5c[_0x9d0d('0x37')]['fields']));_0x5d8c5[_0x9d0d('0x3b')]=_0x5d8c5[_0x9d0d('0x3b')][_0x9d0d('0x3c')]?_0x5d8c5[_0x9d0d('0x3b')]:_0xf2b795[_0x9d0d('0x39')];if(_0x1cde5c[_0x9d0d('0x37')][_0x9d0d('0x45')]){_0x5d8c5[_0x9d0d('0x46')]=[{'all':!![]}];}_0x5d8c5=_[_0x9d0d('0x2d')]({},_0x5d8c5,_0x1cde5c[_0x9d0d('0x44')]);return db[_0x9d0d('0x32')][_0x9d0d('0x4b')](_0x5d8c5)[_0x9d0d('0x26')](handleEntityNotFound(_0x1aa722,null))[_0x9d0d('0x26')](function(_0x1e2b41){if(_0x1e2b41){var _0x2e3f85=_0x1e2b41[_0x9d0d('0x4c')]({'plain':!![]});_0x2e3f85=qs[_0x9d0d('0x4d')](_0x2e3f85,['id',_0x9d0d('0x4e'),'updatedAt']);_0x1cde5c['body']=_['omit'](_0x1cde5c[_0x9d0d('0x2e')],['id','createdAt',_0x9d0d('0x4f')]);return db[_0x9d0d('0x32')][_0x9d0d('0x50')](_[_0x9d0d('0x2d')](_0x2e3f85,_0x1cde5c[_0x9d0d('0x2e')]),{'include':_0x1cde5c[_0x9d0d('0x37')][_0x9d0d('0x45')]?[{'all':!![]}]:undefined});}})[_0x9d0d('0x26')](respondWithResult(_0x1aa722,0xc9))['catch'](handleError(_0x1aa722,null));};exports[_0x9d0d('0x25')]=function(_0x26db8d,_0x4bf409){if(_0x26db8d[_0x9d0d('0x2e')]['id']){delete _0x26db8d[_0x9d0d('0x2e')]['id'];}return db[_0x9d0d('0x32')]['find']({'where':{'id':_0x26db8d[_0x9d0d('0x4a')]['id']}})[_0x9d0d('0x26')](handleEntityNotFound(_0x4bf409,null))[_0x9d0d('0x26')](saveUpdates(_0x26db8d['body'],null))[_0x9d0d('0x26')](respondWithResult(_0x4bf409,null))[_0x9d0d('0x49')](handleError(_0x4bf409,null));};exports[_0x9d0d('0x27')]=function(_0xb26319,_0x21613c){return db[_0x9d0d('0x32')][_0x9d0d('0x4b')]({'where':{'id':_0xb26319[_0x9d0d('0x4a')]['id']}})[_0x9d0d('0x26')](handleEntityNotFound(_0x21613c,null))[_0x9d0d('0x26')](removeEntity(_0x21613c,null))[_0x9d0d('0x49')](handleError(_0x21613c,null));};exports[_0x9d0d('0x50')]=function(_0x42d193,_0x423310,_0x48c1a5){_0x42d193[_0x9d0d('0x2e')][_0x9d0d('0x2a')]=_0x42d193[_0x9d0d('0x51')][_0x9d0d('0x52')];_0x42d193[_0x9d0d('0x2e')]['basename']=_0x42d193[_0x9d0d('0x51')][_0x9d0d('0x53')];_0x42d193[_0x9d0d('0x2e')][_0x9d0d('0x35')]=_0x42d193[_0x9d0d('0x51')]['mimetype'];return db[_0x9d0d('0x32')]['create'](_0x42d193[_0x9d0d('0x2e')])[_0x9d0d('0x26')](respondWithResult(_0x423310,0xc9))['catch'](handleError(_0x423310,null));};exports[_0x9d0d('0x54')]=function(_0xafed27,_0x31e68c,_0xf84a8d){return db[_0x9d0d('0x32')][_0x9d0d('0x55')]({'where':{'id':_0xafed27['params']['id']},'raw':!![]})[_0x9d0d('0x26')](handleEntityNotFound(_0x31e68c,null))['then'](function(_0x9e961f){if(_0x9e961f){var _0x3e0951=_0x9e961f[_0x9d0d('0x56')]!==null;var _0x15015c=path[_0x9d0d('0x57')](config[_0x9d0d('0x58')],'server/files/attachments/');if(_0x3e0951){_0x15015c=path[_0x9d0d('0x57')](_0x15015c,'offline-chat/');}var _0x528829=path[_0x9d0d('0x57')](_0x15015c,_0x9e961f[_0x9d0d('0x59')]);return _0x31e68c[_0x9d0d('0x54')](_0x528829);}})['catch'](handleError(_0x31e68c,null));};