Built motion from commit 5ad77b03.|2.6.3
[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 _0x1a2a=['query','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','Attachment','includeAll','include','rows','catch','show','params','keys','options','get','omit','createdAt','updatedAt','body','create','find','file','ChatOfflineMessageId','root','basename','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName','key','model','map'];(function(_0x36b610,_0x50d36e){var _0xc24563=function(_0x418000){while(--_0x418000){_0x36b610['push'](_0x36b610['shift']());}};_0xc24563(++_0x50d36e);}(_0x1a2a,0xc9));var _0xa1a2=function(_0xd46333,_0x1b05c1){_0xd46333=_0xd46333-0x0;var _0x336108=_0x1a2a[_0xd46333];return _0x336108;};'use strict';var emlformat=require(_0xa1a2('0x0'));var rimraf=require(_0xa1a2('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa1a2('0x2'));var rp=require(_0xa1a2('0x3'));var moment=require(_0xa1a2('0x4'));var BPromise=require(_0xa1a2('0x5'));var Mustache=require(_0xa1a2('0x6'));var util=require(_0xa1a2('0x7'));var path=require('path');var sox=require(_0xa1a2('0x8'));var csv=require(_0xa1a2('0x9'));var ejs=require(_0xa1a2('0xa'));var fs=require('fs');var fs_extra=require(_0xa1a2('0xb'));var _=require(_0xa1a2('0xc'));var squel=require('squel');var crypto=require(_0xa1a2('0xd'));var jsforce=require(_0xa1a2('0xe'));var deskjs=require(_0xa1a2('0xf'));var toCsv=require('to-csv');var querystring=require(_0xa1a2('0x10'));var Papa=require(_0xa1a2('0x11'));var Redis=require(_0xa1a2('0x12'));var authService=require(_0xa1a2('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xa1a2('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xa1a2('0x15'));var utils=require('../../config/utils');var config=require(_0xa1a2('0x16'));var licenseUtil=require(_0xa1a2('0x17'));var db=require(_0xa1a2('0x18'))['db'];function respondWithStatusCode(_0x454b4b,_0x51bc3d){_0x51bc3d=_0x51bc3d||0xcc;return function(_0x419d34){if(_0x419d34){return _0x454b4b[_0xa1a2('0x19')](_0x51bc3d);}return _0x454b4b[_0xa1a2('0x1a')](_0x51bc3d)[_0xa1a2('0x1b')]();};}function respondWithResult(_0x580173,_0x1ab0ad){_0x1ab0ad=_0x1ab0ad||0xc8;return function(_0x123f17){if(_0x123f17){return _0x580173[_0xa1a2('0x1a')](_0x1ab0ad)['json'](_0x123f17);}};}function respondWithFilteredResult(_0x3e1408,_0x2f8e03){return function(_0x55954b){if(_0x55954b){var _0x517f66=typeof _0x2f8e03[_0xa1a2('0x1c')]==='undefined'&&typeof _0x2f8e03['limit']===_0xa1a2('0x1d');var _0x4e3bb0=_0x55954b['count'];var _0x1e196c=_0x517f66?0x0:_0x2f8e03['offset'];var _0x1679fa=_0x517f66?_0x55954b[_0xa1a2('0x1e')]:_0x2f8e03[_0xa1a2('0x1c')]+_0x2f8e03[_0xa1a2('0x1f')];var _0xfce3a7;if(_0x1679fa>=_0x4e3bb0){_0x1679fa=_0x4e3bb0;_0xfce3a7=0xc8;}else{_0xfce3a7=0xce;}_0x3e1408[_0xa1a2('0x1a')](_0xfce3a7);return _0x3e1408['set'](_0xa1a2('0x20'),_0x1e196c+'-'+_0x1679fa+'/'+_0x4e3bb0)['json'](_0x55954b);}return null;};}function patchUpdates(_0x2dbda4){return function(_0x2c7b64){try{jsonpatch[_0xa1a2('0x21')](_0x2c7b64,_0x2dbda4,!![]);}catch(_0x45b1a4){return BPromise['reject'](_0x45b1a4);}return _0x2c7b64[_0xa1a2('0x22')]();};}function saveUpdates(_0xf7cf05,_0x4381be){return function(_0x678ad6){if(_0x678ad6){return _0x678ad6[_0xa1a2('0x23')](_0xf7cf05)[_0xa1a2('0x24')](function(_0x1ff9ad){return _0x1ff9ad;});}return null;};}function removeEntity(_0x1b69e3,_0xfa3015){return function(_0x3b6580){if(_0x3b6580){return _0x3b6580[_0xa1a2('0x25')]()[_0xa1a2('0x24')](function(){_0x1b69e3['status'](0xcc)[_0xa1a2('0x1b')]();});}};}function handleEntityNotFound(_0x148d23,_0x275e10){return function(_0x311728){if(!_0x311728){_0x148d23[_0xa1a2('0x19')](0x194);}return _0x311728;};}function handleError(_0x3b5de1,_0x3c8336){_0x3c8336=_0x3c8336||0x1f4;return function(_0x17790d){logger[_0xa1a2('0x26')](_0x17790d[_0xa1a2('0x27')]);if(_0x17790d['name']){delete _0x17790d[_0xa1a2('0x28')];}_0x3b5de1[_0xa1a2('0x1a')](_0x3c8336)[_0xa1a2('0x29')](_0x17790d);};}exports[_0xa1a2('0x2a')]=function(_0x4fe3be,_0x503c98){var _0x3d0f13={},_0xabff97={},_0x4168f1={'count':0x0,'rows':[]};var _0x46fba0=_['map'](db['Attachment'][_0xa1a2('0x2b')],function(_0xc1ba7){return{'name':_0xc1ba7[_0xa1a2('0x2c')],'type':_0xc1ba7['type'][_0xa1a2('0x2d')]};});_0xabff97[_0xa1a2('0x2e')]=_[_0xa1a2('0x2f')](_0x46fba0,_0xa1a2('0x28'));_0xabff97[_0xa1a2('0x30')]=_['keys'](_0x4fe3be['query']);_0xabff97['filters']=_[_0xa1a2('0x31')](_0xabff97[_0xa1a2('0x2e')],_0xabff97[_0xa1a2('0x30')]);_0x3d0f13[_0xa1a2('0x32')]=_[_0xa1a2('0x31')](_0xabff97[_0xa1a2('0x2e')],qs[_0xa1a2('0x33')](_0x4fe3be[_0xa1a2('0x30')][_0xa1a2('0x33')]));_0x3d0f13[_0xa1a2('0x32')]=_0x3d0f13[_0xa1a2('0x32')][_0xa1a2('0x34')]?_0x3d0f13[_0xa1a2('0x32')]:_0xabff97[_0xa1a2('0x2e')];if(!_0x4fe3be[_0xa1a2('0x30')]['hasOwnProperty'](_0xa1a2('0x35'))){_0x3d0f13[_0xa1a2('0x1f')]=qs['limit'](_0x4fe3be[_0xa1a2('0x30')][_0xa1a2('0x1f')]);_0x3d0f13[_0xa1a2('0x1c')]=qs[_0xa1a2('0x1c')](_0x4fe3be['query'][_0xa1a2('0x1c')]);}_0x3d0f13[_0xa1a2('0x36')]=qs['sort'](_0x4fe3be[_0xa1a2('0x30')][_0xa1a2('0x37')]);_0x3d0f13[_0xa1a2('0x38')]=qs[_0xa1a2('0x39')](_[_0xa1a2('0x3a')](_0x4fe3be['query'],_0xabff97['filters']),_0x46fba0);if(_0x4fe3be[_0xa1a2('0x30')][_0xa1a2('0x3b')]){_0x3d0f13[_0xa1a2('0x38')]=_[_0xa1a2('0x3c')](_0x3d0f13['where'],{'$or':_['map'](_0x46fba0,function(_0x2a8848){if(_0x2a8848[_0xa1a2('0x3d')]!==_0xa1a2('0x3e')){var _0x3b1248={};_0x3b1248[_0x2a8848['name']]={'$like':'%'+_0x4fe3be[_0xa1a2('0x30')][_0xa1a2('0x3b')]+'%'};return _0x3b1248;}})});}_0x3d0f13=_[_0xa1a2('0x3c')]({},_0x3d0f13,_0x4fe3be['options']);var _0x107bad={'where':_0x3d0f13[_0xa1a2('0x38')]};return db[_0xa1a2('0x3f')][_0xa1a2('0x1e')](_0x107bad)[_0xa1a2('0x24')](function(_0x1b4b4d){_0x4168f1[_0xa1a2('0x1e')]=_0x1b4b4d;if(_0x4fe3be[_0xa1a2('0x30')][_0xa1a2('0x40')]){_0x3d0f13[_0xa1a2('0x41')]=[{'all':!![]}];}return db[_0xa1a2('0x3f')]['findAll'](_0x3d0f13);})[_0xa1a2('0x24')](function(_0x41dbf6){_0x4168f1[_0xa1a2('0x42')]=_0x41dbf6;return _0x4168f1;})[_0xa1a2('0x24')](respondWithFilteredResult(_0x503c98,_0x3d0f13))[_0xa1a2('0x43')](handleError(_0x503c98,null));};exports[_0xa1a2('0x44')]=function(_0x1a335b,_0x7016ca){var _0x4132ae={'raw':!![],'where':{'id':_0x1a335b[_0xa1a2('0x45')]['id']}},_0x146487={};_0x146487[_0xa1a2('0x2e')]=_[_0xa1a2('0x46')](db[_0xa1a2('0x3f')][_0xa1a2('0x2b')]);_0x146487[_0xa1a2('0x30')]=_[_0xa1a2('0x46')](_0x1a335b[_0xa1a2('0x30')]);_0x146487['filters']=_[_0xa1a2('0x31')](_0x146487['model'],_0x146487['query']);_0x4132ae[_0xa1a2('0x32')]=_['intersection'](_0x146487[_0xa1a2('0x2e')],qs[_0xa1a2('0x33')](_0x1a335b[_0xa1a2('0x30')][_0xa1a2('0x33')]));_0x4132ae[_0xa1a2('0x32')]=_0x4132ae[_0xa1a2('0x32')][_0xa1a2('0x34')]?_0x4132ae[_0xa1a2('0x32')]:_0x146487[_0xa1a2('0x2e')];if(_0x1a335b[_0xa1a2('0x30')]['includeAll']){_0x4132ae[_0xa1a2('0x41')]=[{'all':!![]}];}_0x4132ae=_[_0xa1a2('0x3c')]({},_0x4132ae,_0x1a335b[_0xa1a2('0x47')]);return db[_0xa1a2('0x3f')]['find'](_0x4132ae)[_0xa1a2('0x24')](handleEntityNotFound(_0x7016ca,null))[_0xa1a2('0x24')](respondWithResult(_0x7016ca,null))[_0xa1a2('0x43')](handleError(_0x7016ca,null));};exports['clone']=function(_0x403625,_0x21a86d){var _0x3e25b3={'where':{'id':_0x403625[_0xa1a2('0x45')]['id']}},_0x594ab2={};_0x594ab2[_0xa1a2('0x2e')]=_[_0xa1a2('0x46')](db[_0xa1a2('0x3f')][_0xa1a2('0x2b')]);_0x3e25b3[_0xa1a2('0x32')]=_[_0xa1a2('0x31')](_0x594ab2['model'],qs[_0xa1a2('0x33')](_0x403625[_0xa1a2('0x30')][_0xa1a2('0x33')]));_0x3e25b3['attributes']=_0x3e25b3['attributes'][_0xa1a2('0x34')]?_0x3e25b3['attributes']:_0x594ab2['model'];if(_0x403625[_0xa1a2('0x30')][_0xa1a2('0x40')]){_0x3e25b3[_0xa1a2('0x41')]=[{'all':!![]}];}_0x3e25b3=_[_0xa1a2('0x3c')]({},_0x3e25b3,_0x403625['options']);return db[_0xa1a2('0x3f')]['find'](_0x3e25b3)['then'](handleEntityNotFound(_0x21a86d,null))[_0xa1a2('0x24')](function(_0x5a6e4f){if(_0x5a6e4f){var _0x3e5595=_0x5a6e4f[_0xa1a2('0x48')]({'plain':!![]});_0x3e5595=qs[_0xa1a2('0x49')](_0x3e5595,['id',_0xa1a2('0x4a'),_0xa1a2('0x4b')]);_0x403625[_0xa1a2('0x4c')]=_[_0xa1a2('0x49')](_0x403625[_0xa1a2('0x4c')],['id',_0xa1a2('0x4a'),_0xa1a2('0x4b')]);return db[_0xa1a2('0x3f')][_0xa1a2('0x4d')](_['merge'](_0x3e5595,_0x403625[_0xa1a2('0x4c')]),{'include':_0x403625['query']['includeAll']?[{'all':!![]}]:undefined});}})[_0xa1a2('0x24')](respondWithResult(_0x21a86d,0xc9))[_0xa1a2('0x43')](handleError(_0x21a86d,null));};exports[_0xa1a2('0x23')]=function(_0x549c24,_0x152cec){if(_0x549c24[_0xa1a2('0x4c')]['id']){delete _0x549c24[_0xa1a2('0x4c')]['id'];}return db[_0xa1a2('0x3f')][_0xa1a2('0x4e')]({'where':{'id':_0x549c24['params']['id']}})[_0xa1a2('0x24')](handleEntityNotFound(_0x152cec,null))[_0xa1a2('0x24')](saveUpdates(_0x549c24[_0xa1a2('0x4c')],null))[_0xa1a2('0x24')](respondWithResult(_0x152cec,null))['catch'](handleError(_0x152cec,null));};exports[_0xa1a2('0x25')]=function(_0x41a965,_0x5f0bb0){return db[_0xa1a2('0x3f')][_0xa1a2('0x4e')]({'where':{'id':_0x41a965[_0xa1a2('0x45')]['id']}})[_0xa1a2('0x24')](handleEntityNotFound(_0x5f0bb0,null))['then'](removeEntity(_0x5f0bb0,null))[_0xa1a2('0x43')](handleError(_0x5f0bb0,null));};exports[_0xa1a2('0x4d')]=function(_0xe35ea,_0x5e7c48,_0xc46e0d){_0xe35ea[_0xa1a2('0x4c')][_0xa1a2('0x28')]=_0xe35ea[_0xa1a2('0x4f')]['originalname'];_0xe35ea[_0xa1a2('0x4c')]['basename']=_0xe35ea[_0xa1a2('0x4f')]['filename'];_0xe35ea[_0xa1a2('0x4c')]['type']=_0xe35ea['file']['mimetype'];return db['Attachment'][_0xa1a2('0x4d')](_0xe35ea['body'])[_0xa1a2('0x24')](respondWithResult(_0x5e7c48,0xc9))[_0xa1a2('0x43')](handleError(_0x5e7c48,null));};exports['download']=function(_0x3fba66,_0x5d4e59,_0x5149f0){return db[_0xa1a2('0x3f')]['findOne']({'where':{'id':_0x3fba66['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x5d4e59,null))[_0xa1a2('0x24')](function(_0x5d1ae9){if(_0x5d1ae9){var _0x638961=_0x5d1ae9[_0xa1a2('0x50')]!==null;var _0x5e6249=path['join'](config[_0xa1a2('0x51')],'server/files/attachments/');if(_0x638961){_0x5e6249=path['join'](_0x5e6249,'offline-chat/');}var _0x4bd318=path['join'](_0x5e6249,_0x5d1ae9[_0xa1a2('0x52')]);return _0x5d4e59['download'](_0x4bd318);}})[_0xa1a2('0x43')](handleError(_0x5d4e59,null));};