Built motion from commit d5e4af8c.|2.6.23
[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 _0xf8f5=['params','catch','clone','find','get','omit','createdAt','updatedAt','body','create','destroy','file','originalname','basename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','name','send','map','Attachment','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','options','includeAll','include','findAll','rows'];(function(_0x175bc7,_0x1e8056){var _0x5ea690=function(_0x1fe24e){while(--_0x1fe24e){_0x175bc7['push'](_0x175bc7['shift']());}};_0x5ea690(++_0x1e8056);}(_0xf8f5,0x121));var _0x5f8f=function(_0x31899d,_0x2bf3dc){_0x31899d=_0x31899d-0x0;var _0x534b42=_0xf8f5[_0x31899d];return _0x534b42;};'use strict';var emlformat=require(_0x5f8f('0x0'));var rimraf=require(_0x5f8f('0x1'));var zipdir=require(_0x5f8f('0x2'));var jsonpatch=require(_0x5f8f('0x3'));var rp=require(_0x5f8f('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x5f8f('0x5'));var util=require(_0x5f8f('0x6'));var path=require(_0x5f8f('0x7'));var sox=require(_0x5f8f('0x8'));var csv=require(_0x5f8f('0x9'));var ejs=require(_0x5f8f('0xa'));var fs=require('fs');var fs_extra=require(_0x5f8f('0xb'));var _=require(_0x5f8f('0xc'));var squel=require(_0x5f8f('0xd'));var crypto=require(_0x5f8f('0xe'));var jsforce=require(_0x5f8f('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x5f8f('0x10'));var authService=require(_0x5f8f('0x11'));var qs=require(_0x5f8f('0x12'));var as=require(_0x5f8f('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x5f8f('0x14'));var utils=require(_0x5f8f('0x15'));var config=require(_0x5f8f('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x5f8f('0x17'))['db'];function respondWithStatusCode(_0x311807,_0x1118f6){_0x1118f6=_0x1118f6||0xcc;return function(_0x2befa1){if(_0x2befa1){return _0x311807[_0x5f8f('0x18')](_0x1118f6);}return _0x311807[_0x5f8f('0x19')](_0x1118f6)[_0x5f8f('0x1a')]();};}function respondWithResult(_0x3fc49d,_0x4f9952){_0x4f9952=_0x4f9952||0xc8;return function(_0x33c7f8){if(_0x33c7f8){return _0x3fc49d[_0x5f8f('0x19')](_0x4f9952)[_0x5f8f('0x1b')](_0x33c7f8);}};}function respondWithFilteredResult(_0x35dde8,_0x18d46f){return function(_0x3a1153){if(_0x3a1153){var _0x20f996=typeof _0x18d46f['offset']===_0x5f8f('0x1c')&&typeof _0x18d46f[_0x5f8f('0x1d')]===_0x5f8f('0x1c');var _0x1c21ce=_0x3a1153[_0x5f8f('0x1e')];var _0x56ec96=_0x20f996?0x0:_0x18d46f[_0x5f8f('0x1f')];var _0x55721c=_0x20f996?_0x3a1153[_0x5f8f('0x1e')]:_0x18d46f[_0x5f8f('0x1f')]+_0x18d46f[_0x5f8f('0x1d')];var _0xfb6ceb;if(_0x55721c>=_0x1c21ce){_0x55721c=_0x1c21ce;_0xfb6ceb=0xc8;}else{_0xfb6ceb=0xce;}_0x35dde8['status'](_0xfb6ceb);return _0x35dde8[_0x5f8f('0x20')](_0x5f8f('0x21'),_0x56ec96+'-'+_0x55721c+'/'+_0x1c21ce)[_0x5f8f('0x1b')](_0x3a1153);}return null;};}function patchUpdates(_0x429399){return function(_0x3b676e){try{jsonpatch[_0x5f8f('0x22')](_0x3b676e,_0x429399,!![]);}catch(_0xf4d341){return BPromise[_0x5f8f('0x23')](_0xf4d341);}return _0x3b676e[_0x5f8f('0x24')]();};}function saveUpdates(_0x52be6b,_0x499d5d){return function(_0x4e853e){if(_0x4e853e){return _0x4e853e[_0x5f8f('0x25')](_0x52be6b)[_0x5f8f('0x26')](function(_0x2316e3){return _0x2316e3;});}return null;};}function removeEntity(_0x44e456,_0x19bbb1){return function(_0x3d0e53){if(_0x3d0e53){return _0x3d0e53['destroy']()[_0x5f8f('0x26')](function(){_0x44e456['status'](0xcc)[_0x5f8f('0x1a')]();});}};}function handleEntityNotFound(_0x2ad36c,_0x5a4ac7){return function(_0x3a78f4){if(!_0x3a78f4){_0x2ad36c[_0x5f8f('0x18')](0x194);}return _0x3a78f4;};}function handleError(_0x5d82ca,_0x47fa6d){_0x47fa6d=_0x47fa6d||0x1f4;return function(_0xe205a6){logger['error'](_0xe205a6['stack']);if(_0xe205a6[_0x5f8f('0x27')]){delete _0xe205a6[_0x5f8f('0x27')];}_0x5d82ca[_0x5f8f('0x19')](_0x47fa6d)[_0x5f8f('0x28')](_0xe205a6);};}exports['index']=function(_0x375675,_0x549ecd){var _0x37d8df={},_0xeb9cd5={},_0x13e1b8={'count':0x0,'rows':[]};var _0x5bc769=_[_0x5f8f('0x29')](db[_0x5f8f('0x2a')][_0x5f8f('0x2b')],function(_0xf265ae){return{'name':_0xf265ae[_0x5f8f('0x2c')],'type':_0xf265ae[_0x5f8f('0x2d')][_0x5f8f('0x2e')]};});_0xeb9cd5[_0x5f8f('0x2f')]=_[_0x5f8f('0x29')](_0x5bc769,'name');_0xeb9cd5['query']=_[_0x5f8f('0x30')](_0x375675[_0x5f8f('0x31')]);_0xeb9cd5[_0x5f8f('0x32')]=_[_0x5f8f('0x33')](_0xeb9cd5[_0x5f8f('0x2f')],_0xeb9cd5['query']);_0x37d8df[_0x5f8f('0x34')]=_['intersection'](_0xeb9cd5[_0x5f8f('0x2f')],qs['fields'](_0x375675[_0x5f8f('0x31')][_0x5f8f('0x35')]));_0x37d8df[_0x5f8f('0x34')]=_0x37d8df[_0x5f8f('0x34')][_0x5f8f('0x36')]?_0x37d8df[_0x5f8f('0x34')]:_0xeb9cd5[_0x5f8f('0x2f')];if(!_0x375675[_0x5f8f('0x31')][_0x5f8f('0x37')](_0x5f8f('0x38'))){_0x37d8df[_0x5f8f('0x1d')]=qs[_0x5f8f('0x1d')](_0x375675[_0x5f8f('0x31')][_0x5f8f('0x1d')]);_0x37d8df[_0x5f8f('0x1f')]=qs[_0x5f8f('0x1f')](_0x375675[_0x5f8f('0x31')][_0x5f8f('0x1f')]);}_0x37d8df[_0x5f8f('0x39')]=qs[_0x5f8f('0x3a')](_0x375675[_0x5f8f('0x31')][_0x5f8f('0x3a')]);_0x37d8df[_0x5f8f('0x3b')]=qs['filters'](_[_0x5f8f('0x3c')](_0x375675[_0x5f8f('0x31')],_0xeb9cd5[_0x5f8f('0x32')]),_0x5bc769);if(_0x375675['query']['filter']){_0x37d8df[_0x5f8f('0x3b')]=_[_0x5f8f('0x3d')](_0x37d8df['where'],{'$or':_[_0x5f8f('0x29')](_0x5bc769,function(_0x49ed19){if(_0x49ed19['type']!=='VIRTUAL'){var _0x55de6a={};_0x55de6a[_0x49ed19[_0x5f8f('0x27')]]={'$like':'%'+_0x375675[_0x5f8f('0x31')]['filter']+'%'};return _0x55de6a;}})});}_0x37d8df=_[_0x5f8f('0x3d')]({},_0x37d8df,_0x375675[_0x5f8f('0x3e')]);var _0x4c2db7={'where':_0x37d8df[_0x5f8f('0x3b')]};return db[_0x5f8f('0x2a')]['count'](_0x4c2db7)['then'](function(_0x88ec5a){_0x13e1b8[_0x5f8f('0x1e')]=_0x88ec5a;if(_0x375675[_0x5f8f('0x31')][_0x5f8f('0x3f')]){_0x37d8df[_0x5f8f('0x40')]=[{'all':!![]}];}return db['Attachment'][_0x5f8f('0x41')](_0x37d8df);})[_0x5f8f('0x26')](function(_0x14a77c){_0x13e1b8[_0x5f8f('0x42')]=_0x14a77c;return _0x13e1b8;})['then'](respondWithFilteredResult(_0x549ecd,_0x37d8df))['catch'](handleError(_0x549ecd,null));};exports['show']=function(_0x1bf2b7,_0x2dcdac){var _0x1917d6={'raw':!![],'where':{'id':_0x1bf2b7[_0x5f8f('0x43')]['id']}},_0x2fb0a2={};_0x2fb0a2['model']=_[_0x5f8f('0x30')](db[_0x5f8f('0x2a')][_0x5f8f('0x2b')]);_0x2fb0a2[_0x5f8f('0x31')]=_[_0x5f8f('0x30')](_0x1bf2b7[_0x5f8f('0x31')]);_0x2fb0a2['filters']=_[_0x5f8f('0x33')](_0x2fb0a2['model'],_0x2fb0a2['query']);_0x1917d6[_0x5f8f('0x34')]=_['intersection'](_0x2fb0a2[_0x5f8f('0x2f')],qs[_0x5f8f('0x35')](_0x1bf2b7['query']['fields']));_0x1917d6[_0x5f8f('0x34')]=_0x1917d6[_0x5f8f('0x34')][_0x5f8f('0x36')]?_0x1917d6[_0x5f8f('0x34')]:_0x2fb0a2[_0x5f8f('0x2f')];if(_0x1bf2b7[_0x5f8f('0x31')][_0x5f8f('0x3f')]){_0x1917d6['include']=[{'all':!![]}];}_0x1917d6=_[_0x5f8f('0x3d')]({},_0x1917d6,_0x1bf2b7['options']);return db[_0x5f8f('0x2a')]['find'](_0x1917d6)[_0x5f8f('0x26')](handleEntityNotFound(_0x2dcdac,null))['then'](respondWithResult(_0x2dcdac,null))[_0x5f8f('0x44')](handleError(_0x2dcdac,null));};exports[_0x5f8f('0x45')]=function(_0x5af707,_0x15acc9){var _0x1969b8={'where':{'id':_0x5af707['params']['id']}},_0xd9cc5c={};_0xd9cc5c[_0x5f8f('0x2f')]=_[_0x5f8f('0x30')](db[_0x5f8f('0x2a')]['rawAttributes']);_0x1969b8[_0x5f8f('0x34')]=_[_0x5f8f('0x33')](_0xd9cc5c[_0x5f8f('0x2f')],qs[_0x5f8f('0x35')](_0x5af707[_0x5f8f('0x31')][_0x5f8f('0x35')]));_0x1969b8['attributes']=_0x1969b8[_0x5f8f('0x34')][_0x5f8f('0x36')]?_0x1969b8[_0x5f8f('0x34')]:_0xd9cc5c[_0x5f8f('0x2f')];if(_0x5af707[_0x5f8f('0x31')][_0x5f8f('0x3f')]){_0x1969b8[_0x5f8f('0x40')]=[{'all':!![]}];}_0x1969b8=_['merge']({},_0x1969b8,_0x5af707[_0x5f8f('0x3e')]);return db[_0x5f8f('0x2a')][_0x5f8f('0x46')](_0x1969b8)[_0x5f8f('0x26')](handleEntityNotFound(_0x15acc9,null))['then'](function(_0x240dc6){if(_0x240dc6){var _0x11b0ba=_0x240dc6[_0x5f8f('0x47')]({'plain':!![]});_0x11b0ba=qs[_0x5f8f('0x48')](_0x11b0ba,['id',_0x5f8f('0x49'),_0x5f8f('0x4a')]);_0x5af707[_0x5f8f('0x4b')]=_[_0x5f8f('0x48')](_0x5af707[_0x5f8f('0x4b')],['id',_0x5f8f('0x49'),_0x5f8f('0x4a')]);return db[_0x5f8f('0x2a')][_0x5f8f('0x4c')](_['merge'](_0x11b0ba,_0x5af707[_0x5f8f('0x4b')]),{'include':_0x5af707[_0x5f8f('0x31')][_0x5f8f('0x3f')]?[{'all':!![]}]:undefined});}})[_0x5f8f('0x26')](respondWithResult(_0x15acc9,0xc9))[_0x5f8f('0x44')](handleError(_0x15acc9,null));};exports[_0x5f8f('0x25')]=function(_0x217938,_0x3b1209){if(_0x217938[_0x5f8f('0x4b')]['id']){delete _0x217938['body']['id'];}return db[_0x5f8f('0x2a')]['find']({'where':{'id':_0x217938[_0x5f8f('0x43')]['id']}})['then'](handleEntityNotFound(_0x3b1209,null))[_0x5f8f('0x26')](saveUpdates(_0x217938['body'],null))['then'](respondWithResult(_0x3b1209,null))[_0x5f8f('0x44')](handleError(_0x3b1209,null));};exports[_0x5f8f('0x4d')]=function(_0x5bb946,_0x433b60){return db[_0x5f8f('0x2a')][_0x5f8f('0x46')]({'where':{'id':_0x5bb946[_0x5f8f('0x43')]['id']}})['then'](handleEntityNotFound(_0x433b60,null))[_0x5f8f('0x26')](removeEntity(_0x433b60,null))[_0x5f8f('0x44')](handleError(_0x433b60,null));};exports['create']=function(_0x5a7304,_0x489130,_0x5b11a4){_0x5a7304[_0x5f8f('0x4b')][_0x5f8f('0x27')]=_0x5a7304[_0x5f8f('0x4e')][_0x5f8f('0x4f')];_0x5a7304[_0x5f8f('0x4b')][_0x5f8f('0x50')]=_0x5a7304[_0x5f8f('0x4e')]['filename'];_0x5a7304[_0x5f8f('0x4b')][_0x5f8f('0x2d')]=_0x5a7304[_0x5f8f('0x4e')][_0x5f8f('0x51')];return db[_0x5f8f('0x2a')][_0x5f8f('0x4c')](_0x5a7304[_0x5f8f('0x4b')])[_0x5f8f('0x26')](respondWithResult(_0x489130,0xc9))[_0x5f8f('0x44')](handleError(_0x489130,null));};exports[_0x5f8f('0x52')]=function(_0x5e403c,_0x3b1ac5,_0x121c1){return db[_0x5f8f('0x2a')][_0x5f8f('0x53')]({'where':{'id':_0x5e403c[_0x5f8f('0x43')]['id']},'raw':!![]})[_0x5f8f('0x26')](handleEntityNotFound(_0x3b1ac5,null))[_0x5f8f('0x26')](function(_0x222f8f){if(_0x222f8f){var _0x2a5cab=_0x222f8f[_0x5f8f('0x54')]!==null;var _0x2b3ff9=path[_0x5f8f('0x55')](config[_0x5f8f('0x56')],_0x5f8f('0x57'));if(_0x2a5cab){_0x2b3ff9=path[_0x5f8f('0x55')](_0x2b3ff9,_0x5f8f('0x58'));}var _0x1cdee6=path['join'](_0x2b3ff9,_0x222f8f[_0x5f8f('0x50')]);return _0x3b1ac5[_0x5f8f('0x52')](_0x1cdee6);}})['catch'](handleError(_0x3b1ac5,null));};