Built motion from commit 1fa89557.|2.6.10
[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 _0x5df1=['show','params','find','clone','get','updatedAt','body','destroy','create','originalname','basename','file','filename','mimetype','download','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','stack','name','send','index','map','Attachment','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','catch'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0x5df1,0x11f));var _0x15df=function(_0x51e8e0,_0x7fbe08){_0x51e8e0=_0x51e8e0-0x0;var _0x179195=_0x5df1[_0x51e8e0];return _0x179195;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x15df('0x0'));var rp=require(_0x15df('0x1'));var moment=require(_0x15df('0x2'));var BPromise=require(_0x15df('0x3'));var Mustache=require(_0x15df('0x4'));var util=require(_0x15df('0x5'));var path=require(_0x15df('0x6'));var sox=require('sox');var csv=require(_0x15df('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x15df('0x8'));var _=require(_0x15df('0x9'));var squel=require('squel');var crypto=require(_0x15df('0xa'));var jsforce=require(_0x15df('0xb'));var deskjs=require(_0x15df('0xc'));var toCsv=require('to-csv');var querystring=require(_0x15df('0xd'));var Papa=require(_0x15df('0xe'));var Redis=require(_0x15df('0xf'));var authService=require(_0x15df('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x15df('0x11'));var hardwareService=require(_0x15df('0x12'));var logger=require(_0x15df('0x13'))('api');var utils=require(_0x15df('0x14'));var config=require(_0x15df('0x15'));var licenseUtil=require(_0x15df('0x16'));var db=require(_0x15df('0x17'))['db'];function respondWithStatusCode(_0x1048c8,_0xab5883){_0xab5883=_0xab5883||0xcc;return function(_0x37c5e7){if(_0x37c5e7){return _0x1048c8[_0x15df('0x18')](_0xab5883);}return _0x1048c8[_0x15df('0x19')](_0xab5883)['end']();};}function respondWithResult(_0x3f905d,_0x26c545){_0x26c545=_0x26c545||0xc8;return function(_0x1a844b){if(_0x1a844b){return _0x3f905d[_0x15df('0x19')](_0x26c545)['json'](_0x1a844b);}};}function respondWithFilteredResult(_0x2a2242,_0x120329){return function(_0x18bbdf){if(_0x18bbdf){var _0x4fd693=typeof _0x120329[_0x15df('0x1a')]===_0x15df('0x1b')&&typeof _0x120329[_0x15df('0x1c')]===_0x15df('0x1b');var _0x1b6e8e=_0x18bbdf[_0x15df('0x1d')];var _0xc47692=_0x4fd693?0x0:_0x120329[_0x15df('0x1a')];var _0x5552cd=_0x4fd693?_0x18bbdf[_0x15df('0x1d')]:_0x120329[_0x15df('0x1a')]+_0x120329[_0x15df('0x1c')];var _0x185044;if(_0x5552cd>=_0x1b6e8e){_0x5552cd=_0x1b6e8e;_0x185044=0xc8;}else{_0x185044=0xce;}_0x2a2242[_0x15df('0x19')](_0x185044);return _0x2a2242[_0x15df('0x1e')](_0x15df('0x1f'),_0xc47692+'-'+_0x5552cd+'/'+_0x1b6e8e)[_0x15df('0x20')](_0x18bbdf);}return null;};}function patchUpdates(_0x12b0cb){return function(_0x1056ad){try{jsonpatch[_0x15df('0x21')](_0x1056ad,_0x12b0cb,!![]);}catch(_0x4585c0){return BPromise[_0x15df('0x22')](_0x4585c0);}return _0x1056ad[_0x15df('0x23')]();};}function saveUpdates(_0x2be734,_0x33092d){return function(_0x4e21b9){if(_0x4e21b9){return _0x4e21b9[_0x15df('0x24')](_0x2be734)[_0x15df('0x25')](function(_0x137fd4){return _0x137fd4;});}return null;};}function removeEntity(_0x16a809,_0x57db16){return function(_0x2170ae){if(_0x2170ae){return _0x2170ae['destroy']()[_0x15df('0x25')](function(){_0x16a809[_0x15df('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39caf7,_0x3bd778){return function(_0x11b64e){if(!_0x11b64e){_0x39caf7[_0x15df('0x18')](0x194);}return _0x11b64e;};}function handleError(_0x3e014f,_0x3d2b32){_0x3d2b32=_0x3d2b32||0x1f4;return function(_0x4fb89b){logger['error'](_0x4fb89b[_0x15df('0x26')]);if(_0x4fb89b[_0x15df('0x27')]){delete _0x4fb89b[_0x15df('0x27')];}_0x3e014f[_0x15df('0x19')](_0x3d2b32)[_0x15df('0x28')](_0x4fb89b);};}exports[_0x15df('0x29')]=function(_0x493439,_0x5e13d1){var _0x3202a3={},_0x1c1458={},_0x56a4b0={'count':0x0,'rows':[]};var _0x49aefe=_[_0x15df('0x2a')](db[_0x15df('0x2b')][_0x15df('0x2c')],function(_0x125f11){return{'name':_0x125f11[_0x15df('0x2d')],'type':_0x125f11[_0x15df('0x2e')][_0x15df('0x2f')]};});_0x1c1458[_0x15df('0x30')]=_[_0x15df('0x2a')](_0x49aefe,'name');_0x1c1458[_0x15df('0x31')]=_[_0x15df('0x32')](_0x493439[_0x15df('0x31')]);_0x1c1458[_0x15df('0x33')]=_[_0x15df('0x34')](_0x1c1458[_0x15df('0x30')],_0x1c1458['query']);_0x3202a3[_0x15df('0x35')]=_[_0x15df('0x34')](_0x1c1458[_0x15df('0x30')],qs[_0x15df('0x36')](_0x493439[_0x15df('0x31')][_0x15df('0x36')]));_0x3202a3[_0x15df('0x35')]=_0x3202a3[_0x15df('0x35')][_0x15df('0x37')]?_0x3202a3[_0x15df('0x35')]:_0x1c1458[_0x15df('0x30')];if(!_0x493439[_0x15df('0x31')][_0x15df('0x38')](_0x15df('0x39'))){_0x3202a3[_0x15df('0x1c')]=qs[_0x15df('0x1c')](_0x493439['query']['limit']);_0x3202a3[_0x15df('0x1a')]=qs['offset'](_0x493439['query'][_0x15df('0x1a')]);}_0x3202a3[_0x15df('0x3a')]=qs[_0x15df('0x3b')](_0x493439['query'][_0x15df('0x3b')]);_0x3202a3[_0x15df('0x3c')]=qs[_0x15df('0x33')](_[_0x15df('0x3d')](_0x493439[_0x15df('0x31')],_0x1c1458[_0x15df('0x33')]),_0x49aefe);if(_0x493439[_0x15df('0x31')][_0x15df('0x3e')]){_0x3202a3['where']=_[_0x15df('0x3f')](_0x3202a3[_0x15df('0x3c')],{'$or':_[_0x15df('0x2a')](_0x49aefe,function(_0x5134d8){if(_0x5134d8[_0x15df('0x2e')]!=='VIRTUAL'){var _0x2135f0={};_0x2135f0[_0x5134d8[_0x15df('0x27')]]={'$like':'%'+_0x493439['query'][_0x15df('0x3e')]+'%'};return _0x2135f0;}})});}_0x3202a3=_[_0x15df('0x3f')]({},_0x3202a3,_0x493439[_0x15df('0x40')]);var _0x5d1925={'where':_0x3202a3[_0x15df('0x3c')]};return db[_0x15df('0x2b')][_0x15df('0x1d')](_0x5d1925)[_0x15df('0x25')](function(_0x5e46d0){_0x56a4b0[_0x15df('0x1d')]=_0x5e46d0;if(_0x493439[_0x15df('0x31')][_0x15df('0x41')]){_0x3202a3[_0x15df('0x42')]=[{'all':!![]}];}return db[_0x15df('0x2b')][_0x15df('0x43')](_0x3202a3);})[_0x15df('0x25')](function(_0x12a75a){_0x56a4b0['rows']=_0x12a75a;return _0x56a4b0;})['then'](respondWithFilteredResult(_0x5e13d1,_0x3202a3))[_0x15df('0x44')](handleError(_0x5e13d1,null));};exports[_0x15df('0x45')]=function(_0x382d4b,_0x4feec8){var _0x158f0e={'raw':!![],'where':{'id':_0x382d4b[_0x15df('0x46')]['id']}},_0x7d0739={};_0x7d0739['model']=_[_0x15df('0x32')](db[_0x15df('0x2b')][_0x15df('0x2c')]);_0x7d0739[_0x15df('0x31')]=_[_0x15df('0x32')](_0x382d4b[_0x15df('0x31')]);_0x7d0739['filters']=_[_0x15df('0x34')](_0x7d0739[_0x15df('0x30')],_0x7d0739[_0x15df('0x31')]);_0x158f0e[_0x15df('0x35')]=_[_0x15df('0x34')](_0x7d0739[_0x15df('0x30')],qs[_0x15df('0x36')](_0x382d4b[_0x15df('0x31')][_0x15df('0x36')]));_0x158f0e['attributes']=_0x158f0e['attributes'][_0x15df('0x37')]?_0x158f0e[_0x15df('0x35')]:_0x7d0739['model'];if(_0x382d4b[_0x15df('0x31')][_0x15df('0x41')]){_0x158f0e['include']=[{'all':!![]}];}_0x158f0e=_[_0x15df('0x3f')]({},_0x158f0e,_0x382d4b[_0x15df('0x40')]);return db[_0x15df('0x2b')][_0x15df('0x47')](_0x158f0e)[_0x15df('0x25')](handleEntityNotFound(_0x4feec8,null))['then'](respondWithResult(_0x4feec8,null))[_0x15df('0x44')](handleError(_0x4feec8,null));};exports[_0x15df('0x48')]=function(_0xe7a06f,_0x1ed69b){var _0x21ec13={'where':{'id':_0xe7a06f['params']['id']}},_0x1d6736={};_0x1d6736[_0x15df('0x30')]=_['keys'](db[_0x15df('0x2b')]['rawAttributes']);_0x21ec13['attributes']=_[_0x15df('0x34')](_0x1d6736['model'],qs[_0x15df('0x36')](_0xe7a06f[_0x15df('0x31')][_0x15df('0x36')]));_0x21ec13[_0x15df('0x35')]=_0x21ec13['attributes'][_0x15df('0x37')]?_0x21ec13[_0x15df('0x35')]:_0x1d6736[_0x15df('0x30')];if(_0xe7a06f[_0x15df('0x31')][_0x15df('0x41')]){_0x21ec13[_0x15df('0x42')]=[{'all':!![]}];}_0x21ec13=_[_0x15df('0x3f')]({},_0x21ec13,_0xe7a06f[_0x15df('0x40')]);return db[_0x15df('0x2b')][_0x15df('0x47')](_0x21ec13)[_0x15df('0x25')](handleEntityNotFound(_0x1ed69b,null))[_0x15df('0x25')](function(_0x47d8e4){if(_0x47d8e4){var _0xffdb87=_0x47d8e4[_0x15df('0x49')]({'plain':!![]});_0xffdb87=qs['omit'](_0xffdb87,['id','createdAt',_0x15df('0x4a')]);_0xe7a06f[_0x15df('0x4b')]=_['omit'](_0xe7a06f[_0x15df('0x4b')],['id','createdAt',_0x15df('0x4a')]);return db[_0x15df('0x2b')]['create'](_[_0x15df('0x3f')](_0xffdb87,_0xe7a06f[_0x15df('0x4b')]),{'include':_0xe7a06f[_0x15df('0x31')][_0x15df('0x41')]?[{'all':!![]}]:undefined});}})[_0x15df('0x25')](respondWithResult(_0x1ed69b,0xc9))[_0x15df('0x44')](handleError(_0x1ed69b,null));};exports[_0x15df('0x24')]=function(_0x365110,_0x27d0c0){if(_0x365110['body']['id']){delete _0x365110[_0x15df('0x4b')]['id'];}return db[_0x15df('0x2b')][_0x15df('0x47')]({'where':{'id':_0x365110[_0x15df('0x46')]['id']}})['then'](handleEntityNotFound(_0x27d0c0,null))[_0x15df('0x25')](saveUpdates(_0x365110['body'],null))[_0x15df('0x25')](respondWithResult(_0x27d0c0,null))['catch'](handleError(_0x27d0c0,null));};exports[_0x15df('0x4c')]=function(_0x4fb960,_0x41a15d){return db[_0x15df('0x2b')]['find']({'where':{'id':_0x4fb960[_0x15df('0x46')]['id']}})[_0x15df('0x25')](handleEntityNotFound(_0x41a15d,null))['then'](removeEntity(_0x41a15d,null))['catch'](handleError(_0x41a15d,null));};exports[_0x15df('0x4d')]=function(_0x3b9490,_0x115aa1,_0x2da676){_0x3b9490[_0x15df('0x4b')][_0x15df('0x27')]=_0x3b9490['file'][_0x15df('0x4e')];_0x3b9490[_0x15df('0x4b')][_0x15df('0x4f')]=_0x3b9490[_0x15df('0x50')][_0x15df('0x51')];_0x3b9490['body']['type']=_0x3b9490['file'][_0x15df('0x52')];return db[_0x15df('0x2b')][_0x15df('0x4d')](_0x3b9490['body'])[_0x15df('0x25')](respondWithResult(_0x115aa1,0xc9))[_0x15df('0x44')](handleError(_0x115aa1,null));};exports[_0x15df('0x53')]=function(_0x13fdad,_0x5502e9,_0x205a31){return db[_0x15df('0x2b')]['findOne']({'where':{'id':_0x13fdad['params']['id']},'raw':!![]})[_0x15df('0x25')](handleEntityNotFound(_0x5502e9,null))['then'](function(_0x3f365a){if(_0x3f365a){var _0x1a5a32=_0x3f365a[_0x15df('0x54')]!==null;var _0x5e2670=path[_0x15df('0x55')](config[_0x15df('0x56')],_0x15df('0x57'));if(_0x1a5a32){_0x5e2670=path[_0x15df('0x55')](_0x5e2670,_0x15df('0x58'));}var _0x3049f2=path[_0x15df('0x55')](_0x5e2670,_0x3f365a[_0x15df('0x4f')]);return _0x5502e9[_0x15df('0x53')](_0x3049f2);}})[_0x15df('0x44')](handleError(_0x5502e9,null));};