Built motion from commit ffdca78c.|2.6.24
[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 _0x0004=['../../mysqldb','sendStatus','end','status','undefined','limit','offset','count','Content-Range','json','apply','reject','save','update','destroy','error','stack','name','send','index','map','Attachment','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','options','includeAll','include','then','rows','catch','show','params','find','clone','get','omit','createdAt','updatedAt','body','create','originalname','basename','filename','file','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util'];(function(_0x1ad926,_0x3e1fed){var _0x1b81dc=function(_0x506f83){while(--_0x506f83){_0x1ad926['push'](_0x1ad926['shift']());}};_0x1b81dc(++_0x3e1fed);}(_0x0004,0x155));var _0x4000=function(_0x37ca5f,_0x7b93d4){_0x37ca5f=_0x37ca5f-0x0;var _0x4b0676=_0x0004[_0x37ca5f];return _0x4b0676;};'use strict';var emlformat=require(_0x4000('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4000('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4000('0x2'));var moment=require(_0x4000('0x3'));var BPromise=require(_0x4000('0x4'));var Mustache=require(_0x4000('0x5'));var util=require(_0x4000('0x6'));var path=require(_0x4000('0x7'));var sox=require(_0x4000('0x8'));var csv=require(_0x4000('0x9'));var ejs=require(_0x4000('0xa'));var fs=require('fs');var fs_extra=require(_0x4000('0xb'));var _=require(_0x4000('0xc'));var squel=require(_0x4000('0xd'));var crypto=require(_0x4000('0xe'));var jsforce=require(_0x4000('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x4000('0x10'));var Papa=require(_0x4000('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4000('0x12'));var hardwareService=require(_0x4000('0x13'));var logger=require(_0x4000('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x4000('0x15'));var licenseUtil=require(_0x4000('0x16'));var db=require(_0x4000('0x17'))['db'];function respondWithStatusCode(_0x574b91,_0x1976dc){_0x1976dc=_0x1976dc||0xcc;return function(_0x49660e){if(_0x49660e){return _0x574b91[_0x4000('0x18')](_0x1976dc);}return _0x574b91['status'](_0x1976dc)[_0x4000('0x19')]();};}function respondWithResult(_0x2eab53,_0x5f5bf5){_0x5f5bf5=_0x5f5bf5||0xc8;return function(_0x38ee29){if(_0x38ee29){return _0x2eab53[_0x4000('0x1a')](_0x5f5bf5)['json'](_0x38ee29);}};}function respondWithFilteredResult(_0x3a517d,_0x235103){return function(_0x46c635){if(_0x46c635){var _0x3955cb=typeof _0x235103['offset']===_0x4000('0x1b')&&typeof _0x235103[_0x4000('0x1c')]===_0x4000('0x1b');var _0x2405f7=_0x46c635['count'];var _0x10889b=_0x3955cb?0x0:_0x235103[_0x4000('0x1d')];var _0x454132=_0x3955cb?_0x46c635[_0x4000('0x1e')]:_0x235103[_0x4000('0x1d')]+_0x235103[_0x4000('0x1c')];var _0x9c86f1;if(_0x454132>=_0x2405f7){_0x454132=_0x2405f7;_0x9c86f1=0xc8;}else{_0x9c86f1=0xce;}_0x3a517d[_0x4000('0x1a')](_0x9c86f1);return _0x3a517d['set'](_0x4000('0x1f'),_0x10889b+'-'+_0x454132+'/'+_0x2405f7)[_0x4000('0x20')](_0x46c635);}return null;};}function patchUpdates(_0x3146d9){return function(_0x42e28a){try{jsonpatch[_0x4000('0x21')](_0x42e28a,_0x3146d9,!![]);}catch(_0x288241){return BPromise[_0x4000('0x22')](_0x288241);}return _0x42e28a[_0x4000('0x23')]();};}function saveUpdates(_0x4899a4,_0x55c46b){return function(_0x4ccd79){if(_0x4ccd79){return _0x4ccd79[_0x4000('0x24')](_0x4899a4)['then'](function(_0x3d1182){return _0x3d1182;});}return null;};}function removeEntity(_0x2e4164,_0xa6cffc){return function(_0x3d9133){if(_0x3d9133){return _0x3d9133[_0x4000('0x25')]()['then'](function(){_0x2e4164[_0x4000('0x1a')](0xcc)[_0x4000('0x19')]();});}};}function handleEntityNotFound(_0x8db599,_0x29d370){return function(_0xf73bc9){if(!_0xf73bc9){_0x8db599[_0x4000('0x18')](0x194);}return _0xf73bc9;};}function handleError(_0x333c90,_0x58bd53){_0x58bd53=_0x58bd53||0x1f4;return function(_0x3dc8fe){logger[_0x4000('0x26')](_0x3dc8fe[_0x4000('0x27')]);if(_0x3dc8fe[_0x4000('0x28')]){delete _0x3dc8fe[_0x4000('0x28')];}_0x333c90[_0x4000('0x1a')](_0x58bd53)[_0x4000('0x29')](_0x3dc8fe);};}exports[_0x4000('0x2a')]=function(_0x24f1de,_0x3ec7c6){var _0x4a3f35={},_0x4c38f6={},_0x32d4b1={'count':0x0,'rows':[]};var _0x1a900d=_[_0x4000('0x2b')](db[_0x4000('0x2c')][_0x4000('0x2d')],function(_0x5bdbca){return{'name':_0x5bdbca[_0x4000('0x2e')],'type':_0x5bdbca[_0x4000('0x2f')][_0x4000('0x30')]};});_0x4c38f6['model']=_[_0x4000('0x2b')](_0x1a900d,'name');_0x4c38f6['query']=_[_0x4000('0x31')](_0x24f1de[_0x4000('0x32')]);_0x4c38f6[_0x4000('0x33')]=_[_0x4000('0x34')](_0x4c38f6[_0x4000('0x35')],_0x4c38f6['query']);_0x4a3f35[_0x4000('0x36')]=_[_0x4000('0x34')](_0x4c38f6['model'],qs[_0x4000('0x37')](_0x24f1de['query'][_0x4000('0x37')]));_0x4a3f35[_0x4000('0x36')]=_0x4a3f35['attributes'][_0x4000('0x38')]?_0x4a3f35[_0x4000('0x36')]:_0x4c38f6[_0x4000('0x35')];if(!_0x24f1de[_0x4000('0x32')][_0x4000('0x39')](_0x4000('0x3a'))){_0x4a3f35[_0x4000('0x1c')]=qs[_0x4000('0x1c')](_0x24f1de[_0x4000('0x32')]['limit']);_0x4a3f35[_0x4000('0x1d')]=qs['offset'](_0x24f1de[_0x4000('0x32')][_0x4000('0x1d')]);}_0x4a3f35[_0x4000('0x3b')]=qs[_0x4000('0x3c')](_0x24f1de[_0x4000('0x32')][_0x4000('0x3c')]);_0x4a3f35[_0x4000('0x3d')]=qs[_0x4000('0x33')](_['pick'](_0x24f1de[_0x4000('0x32')],_0x4c38f6[_0x4000('0x33')]),_0x1a900d);if(_0x24f1de[_0x4000('0x32')]['filter']){_0x4a3f35['where']=_['merge'](_0x4a3f35[_0x4000('0x3d')],{'$or':_[_0x4000('0x2b')](_0x1a900d,function(_0x2dabb5){if(_0x2dabb5[_0x4000('0x2f')]!=='VIRTUAL'){var _0x1431ed={};_0x1431ed[_0x2dabb5[_0x4000('0x28')]]={'$like':'%'+_0x24f1de['query'][_0x4000('0x3e')]+'%'};return _0x1431ed;}})});}_0x4a3f35=_[_0x4000('0x3f')]({},_0x4a3f35,_0x24f1de[_0x4000('0x40')]);var _0x3e0106={'where':_0x4a3f35[_0x4000('0x3d')]};return db[_0x4000('0x2c')]['count'](_0x3e0106)['then'](function(_0x40b76d){_0x32d4b1[_0x4000('0x1e')]=_0x40b76d;if(_0x24f1de['query'][_0x4000('0x41')]){_0x4a3f35[_0x4000('0x42')]=[{'all':!![]}];}return db[_0x4000('0x2c')]['findAll'](_0x4a3f35);})[_0x4000('0x43')](function(_0x31bb29){_0x32d4b1[_0x4000('0x44')]=_0x31bb29;return _0x32d4b1;})[_0x4000('0x43')](respondWithFilteredResult(_0x3ec7c6,_0x4a3f35))[_0x4000('0x45')](handleError(_0x3ec7c6,null));};exports[_0x4000('0x46')]=function(_0x434ef9,_0x4a7bed){var _0x4650e7={'raw':!![],'where':{'id':_0x434ef9[_0x4000('0x47')]['id']}},_0x18015f={};_0x18015f[_0x4000('0x35')]=_[_0x4000('0x31')](db['Attachment'][_0x4000('0x2d')]);_0x18015f[_0x4000('0x32')]=_['keys'](_0x434ef9[_0x4000('0x32')]);_0x18015f['filters']=_['intersection'](_0x18015f['model'],_0x18015f[_0x4000('0x32')]);_0x4650e7[_0x4000('0x36')]=_[_0x4000('0x34')](_0x18015f[_0x4000('0x35')],qs[_0x4000('0x37')](_0x434ef9['query']['fields']));_0x4650e7[_0x4000('0x36')]=_0x4650e7[_0x4000('0x36')][_0x4000('0x38')]?_0x4650e7['attributes']:_0x18015f[_0x4000('0x35')];if(_0x434ef9['query']['includeAll']){_0x4650e7[_0x4000('0x42')]=[{'all':!![]}];}_0x4650e7=_[_0x4000('0x3f')]({},_0x4650e7,_0x434ef9[_0x4000('0x40')]);return db[_0x4000('0x2c')][_0x4000('0x48')](_0x4650e7)['then'](handleEntityNotFound(_0x4a7bed,null))['then'](respondWithResult(_0x4a7bed,null))[_0x4000('0x45')](handleError(_0x4a7bed,null));};exports[_0x4000('0x49')]=function(_0x5bd1aa,_0x9f3549){var _0x1ae845={'where':{'id':_0x5bd1aa[_0x4000('0x47')]['id']}},_0x1af1d5={};_0x1af1d5[_0x4000('0x35')]=_[_0x4000('0x31')](db[_0x4000('0x2c')][_0x4000('0x2d')]);_0x1ae845[_0x4000('0x36')]=_[_0x4000('0x34')](_0x1af1d5[_0x4000('0x35')],qs[_0x4000('0x37')](_0x5bd1aa['query'][_0x4000('0x37')]));_0x1ae845['attributes']=_0x1ae845[_0x4000('0x36')][_0x4000('0x38')]?_0x1ae845['attributes']:_0x1af1d5[_0x4000('0x35')];if(_0x5bd1aa[_0x4000('0x32')][_0x4000('0x41')]){_0x1ae845['include']=[{'all':!![]}];}_0x1ae845=_[_0x4000('0x3f')]({},_0x1ae845,_0x5bd1aa[_0x4000('0x40')]);return db[_0x4000('0x2c')][_0x4000('0x48')](_0x1ae845)[_0x4000('0x43')](handleEntityNotFound(_0x9f3549,null))['then'](function(_0x4ddbf2){if(_0x4ddbf2){var _0x2aadab=_0x4ddbf2[_0x4000('0x4a')]({'plain':!![]});_0x2aadab=qs[_0x4000('0x4b')](_0x2aadab,['id',_0x4000('0x4c'),_0x4000('0x4d')]);_0x5bd1aa[_0x4000('0x4e')]=_[_0x4000('0x4b')](_0x5bd1aa[_0x4000('0x4e')],['id',_0x4000('0x4c'),'updatedAt']);return db[_0x4000('0x2c')][_0x4000('0x4f')](_[_0x4000('0x3f')](_0x2aadab,_0x5bd1aa[_0x4000('0x4e')]),{'include':_0x5bd1aa[_0x4000('0x32')][_0x4000('0x41')]?[{'all':!![]}]:undefined});}})[_0x4000('0x43')](respondWithResult(_0x9f3549,0xc9))[_0x4000('0x45')](handleError(_0x9f3549,null));};exports['update']=function(_0x46e730,_0x3821e2){if(_0x46e730['body']['id']){delete _0x46e730[_0x4000('0x4e')]['id'];}return db[_0x4000('0x2c')][_0x4000('0x48')]({'where':{'id':_0x46e730[_0x4000('0x47')]['id']}})['then'](handleEntityNotFound(_0x3821e2,null))[_0x4000('0x43')](saveUpdates(_0x46e730['body'],null))[_0x4000('0x43')](respondWithResult(_0x3821e2,null))[_0x4000('0x45')](handleError(_0x3821e2,null));};exports['destroy']=function(_0x3da26c,_0x1e12c4){return db[_0x4000('0x2c')][_0x4000('0x48')]({'where':{'id':_0x3da26c[_0x4000('0x47')]['id']}})[_0x4000('0x43')](handleEntityNotFound(_0x1e12c4,null))[_0x4000('0x43')](removeEntity(_0x1e12c4,null))['catch'](handleError(_0x1e12c4,null));};exports[_0x4000('0x4f')]=function(_0x526543,_0x27d12b,_0x2ead39){_0x526543['body'][_0x4000('0x28')]=_0x526543['file'][_0x4000('0x50')];_0x526543['body'][_0x4000('0x51')]=_0x526543['file'][_0x4000('0x52')];_0x526543[_0x4000('0x4e')][_0x4000('0x2f')]=_0x526543[_0x4000('0x53')][_0x4000('0x54')];return db[_0x4000('0x2c')][_0x4000('0x4f')](_0x526543[_0x4000('0x4e')])[_0x4000('0x43')](respondWithResult(_0x27d12b,0xc9))[_0x4000('0x45')](handleError(_0x27d12b,null));};exports[_0x4000('0x55')]=function(_0x534959,_0x2a293d,_0xce6b98){return db['Attachment'][_0x4000('0x56')]({'where':{'id':_0x534959[_0x4000('0x47')]['id']},'raw':!![]})[_0x4000('0x43')](handleEntityNotFound(_0x2a293d,null))[_0x4000('0x43')](function(_0xa22be){if(_0xa22be){var _0x246530=_0xa22be[_0x4000('0x57')]!==null;var _0x3941b0=path[_0x4000('0x58')](config[_0x4000('0x59')],_0x4000('0x5a'));if(_0x246530){_0x3941b0=path[_0x4000('0x58')](_0x3941b0,'offline-chat/');}var _0x35c861=path['join'](_0x3941b0,_0xa22be[_0x4000('0x51')]);return _0x2a293d[_0x4000('0x55')](_0x35c861);}})[_0x4000('0x45')](handleError(_0x2a293d,null));};