Built motion from commit 43538d75.|2.5.35
[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 _0x2bd7=['status','sendStatus','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','map','VIRTUAL','options','includeAll','include','Attachment','findAll','catch','show','params','keys','find','clone','get','omit','createdAt','updatedAt','body','destroy','create','file','originalname','basename','mimetype','ChatOfflineMessageId','root','offline-chat/','join','download','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','json','offset','limit','undefined','count','set','apply','reject','update','then'];(function(_0xc9f41b,_0x2e13a5){var _0x36c7ec=function(_0x178713){while(--_0x178713){_0xc9f41b['push'](_0xc9f41b['shift']());}};_0x36c7ec(++_0x2e13a5);}(_0x2bd7,0x13e));var _0x72bd=function(_0x57282e,_0xeb8cf8){_0x57282e=_0x57282e-0x0;var _0x47ef7d=_0x2bd7[_0x57282e];return _0x47ef7d;};'use strict';var emlformat=require(_0x72bd('0x0'));var rimraf=require(_0x72bd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x72bd('0x2'));var rp=require(_0x72bd('0x3'));var moment=require(_0x72bd('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x72bd('0x5'));var util=require(_0x72bd('0x6'));var path=require(_0x72bd('0x7'));var sox=require(_0x72bd('0x8'));var csv=require(_0x72bd('0x9'));var ejs=require(_0x72bd('0xa'));var fs=require('fs');var fs_extra=require(_0x72bd('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x72bd('0xc'));var jsforce=require(_0x72bd('0xd'));var deskjs=require(_0x72bd('0xe'));var toCsv=require('to-csv');var querystring=require(_0x72bd('0xf'));var Papa=require(_0x72bd('0x10'));var Redis=require(_0x72bd('0x11'));var authService=require(_0x72bd('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x72bd('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x72bd('0x14'))(_0x72bd('0x15'));var utils=require(_0x72bd('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x72bd('0x17'))['db'];function respondWithStatusCode(_0x3f78a7,_0x4288e6){_0x4288e6=_0x4288e6||0xcc;return function(_0x119a50){if(_0x119a50){return _0x3f78a7['sendStatus'](_0x4288e6);}return _0x3f78a7['status'](_0x4288e6)['end']();};}function respondWithResult(_0x46a728,_0x2b05a5){_0x2b05a5=_0x2b05a5||0xc8;return function(_0x3a7647){if(_0x3a7647){return _0x46a728['status'](_0x2b05a5)[_0x72bd('0x18')](_0x3a7647);}};}function respondWithFilteredResult(_0x478a86,_0x29cd74){return function(_0x3748b5){if(_0x3748b5){var _0x485901=typeof _0x29cd74[_0x72bd('0x19')]==='undefined'&&typeof _0x29cd74[_0x72bd('0x1a')]===_0x72bd('0x1b');var _0x4a2199=_0x3748b5[_0x72bd('0x1c')];var _0x1b2d02=_0x485901?0x0:_0x29cd74[_0x72bd('0x19')];var _0x49b767=_0x485901?_0x3748b5[_0x72bd('0x1c')]:_0x29cd74[_0x72bd('0x19')]+_0x29cd74[_0x72bd('0x1a')];var _0x139f56;if(_0x49b767>=_0x4a2199){_0x49b767=_0x4a2199;_0x139f56=0xc8;}else{_0x139f56=0xce;}_0x478a86['status'](_0x139f56);return _0x478a86[_0x72bd('0x1d')]('Content-Range',_0x1b2d02+'-'+_0x49b767+'/'+_0x4a2199)[_0x72bd('0x18')](_0x3748b5);}return null;};}function patchUpdates(_0x46f83b){return function(_0x4603a5){try{jsonpatch[_0x72bd('0x1e')](_0x4603a5,_0x46f83b,!![]);}catch(_0x5a78c6){return BPromise[_0x72bd('0x1f')](_0x5a78c6);}return _0x4603a5['save']();};}function saveUpdates(_0x3b269f,_0x51a972){return function(_0x59223d){if(_0x59223d){return _0x59223d[_0x72bd('0x20')](_0x3b269f)[_0x72bd('0x21')](function(_0x28146f){return _0x28146f;});}return null;};}function removeEntity(_0x1de3c1,_0xa4bbf2){return function(_0x12bbbb){if(_0x12bbbb){return _0x12bbbb['destroy']()[_0x72bd('0x21')](function(){_0x1de3c1[_0x72bd('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42276e,_0x46d5b0){return function(_0x302e15){if(!_0x302e15){_0x42276e[_0x72bd('0x23')](0x194);}return _0x302e15;};}function handleError(_0x494558,_0x521a53){_0x521a53=_0x521a53||0x1f4;return function(_0x27fa84){logger[_0x72bd('0x24')](_0x27fa84[_0x72bd('0x25')]);if(_0x27fa84[_0x72bd('0x26')]){delete _0x27fa84[_0x72bd('0x26')];}_0x494558[_0x72bd('0x22')](_0x521a53)[_0x72bd('0x27')](_0x27fa84);};}exports[_0x72bd('0x28')]=function(_0x46a8ef,_0x352d19){var _0x1d4dd2={},_0x32e813={},_0x261ae8={'count':0x0,'rows':[]};var _0x481f69=_['map'](db['Attachment'][_0x72bd('0x29')],function(_0x46ebdc){return{'name':_0x46ebdc[_0x72bd('0x2a')],'type':_0x46ebdc[_0x72bd('0x2b')][_0x72bd('0x2c')]};});_0x32e813[_0x72bd('0x2d')]=_['map'](_0x481f69,_0x72bd('0x26'));_0x32e813[_0x72bd('0x2e')]=_['keys'](_0x46a8ef[_0x72bd('0x2e')]);_0x32e813[_0x72bd('0x2f')]=_[_0x72bd('0x30')](_0x32e813[_0x72bd('0x2d')],_0x32e813[_0x72bd('0x2e')]);_0x1d4dd2[_0x72bd('0x31')]=_['intersection'](_0x32e813[_0x72bd('0x2d')],qs['fields'](_0x46a8ef[_0x72bd('0x2e')][_0x72bd('0x32')]));_0x1d4dd2[_0x72bd('0x31')]=_0x1d4dd2[_0x72bd('0x31')][_0x72bd('0x33')]?_0x1d4dd2[_0x72bd('0x31')]:_0x32e813[_0x72bd('0x2d')];if(!_0x46a8ef['query'][_0x72bd('0x34')]('nolimit')){_0x1d4dd2[_0x72bd('0x1a')]=qs['limit'](_0x46a8ef[_0x72bd('0x2e')][_0x72bd('0x1a')]);_0x1d4dd2['offset']=qs[_0x72bd('0x19')](_0x46a8ef[_0x72bd('0x2e')][_0x72bd('0x19')]);}_0x1d4dd2[_0x72bd('0x35')]=qs[_0x72bd('0x36')](_0x46a8ef[_0x72bd('0x2e')][_0x72bd('0x36')]);_0x1d4dd2[_0x72bd('0x37')]=qs['filters'](_[_0x72bd('0x38')](_0x46a8ef['query'],_0x32e813[_0x72bd('0x2f')]),_0x481f69);if(_0x46a8ef[_0x72bd('0x2e')][_0x72bd('0x39')]){_0x1d4dd2[_0x72bd('0x37')]=_[_0x72bd('0x3a')](_0x1d4dd2[_0x72bd('0x37')],{'$or':_[_0x72bd('0x3b')](_0x481f69,function(_0x3dcbc2){if(_0x3dcbc2['type']!==_0x72bd('0x3c')){var _0x3672ce={};_0x3672ce[_0x3dcbc2['name']]={'$like':'%'+_0x46a8ef[_0x72bd('0x2e')][_0x72bd('0x39')]+'%'};return _0x3672ce;}})});}_0x1d4dd2=_['merge']({},_0x1d4dd2,_0x46a8ef[_0x72bd('0x3d')]);var _0x399c30={'where':_0x1d4dd2[_0x72bd('0x37')]};return db['Attachment'][_0x72bd('0x1c')](_0x399c30)['then'](function(_0x598c5d){_0x261ae8[_0x72bd('0x1c')]=_0x598c5d;if(_0x46a8ef[_0x72bd('0x2e')][_0x72bd('0x3e')]){_0x1d4dd2[_0x72bd('0x3f')]=[{'all':!![]}];}return db[_0x72bd('0x40')][_0x72bd('0x41')](_0x1d4dd2);})[_0x72bd('0x21')](function(_0xcd7a29){_0x261ae8['rows']=_0xcd7a29;return _0x261ae8;})[_0x72bd('0x21')](respondWithFilteredResult(_0x352d19,_0x1d4dd2))[_0x72bd('0x42')](handleError(_0x352d19,null));};exports[_0x72bd('0x43')]=function(_0x43fce9,_0x49aaba){var _0x38f12c={'raw':!![],'where':{'id':_0x43fce9[_0x72bd('0x44')]['id']}},_0x5b513c={};_0x5b513c[_0x72bd('0x2d')]=_[_0x72bd('0x45')](db[_0x72bd('0x40')][_0x72bd('0x29')]);_0x5b513c[_0x72bd('0x2e')]=_[_0x72bd('0x45')](_0x43fce9[_0x72bd('0x2e')]);_0x5b513c[_0x72bd('0x2f')]=_[_0x72bd('0x30')](_0x5b513c['model'],_0x5b513c['query']);_0x38f12c[_0x72bd('0x31')]=_[_0x72bd('0x30')](_0x5b513c[_0x72bd('0x2d')],qs[_0x72bd('0x32')](_0x43fce9[_0x72bd('0x2e')][_0x72bd('0x32')]));_0x38f12c[_0x72bd('0x31')]=_0x38f12c[_0x72bd('0x31')][_0x72bd('0x33')]?_0x38f12c[_0x72bd('0x31')]:_0x5b513c[_0x72bd('0x2d')];if(_0x43fce9['query'][_0x72bd('0x3e')]){_0x38f12c[_0x72bd('0x3f')]=[{'all':!![]}];}_0x38f12c=_['merge']({},_0x38f12c,_0x43fce9[_0x72bd('0x3d')]);return db[_0x72bd('0x40')][_0x72bd('0x46')](_0x38f12c)['then'](handleEntityNotFound(_0x49aaba,null))[_0x72bd('0x21')](respondWithResult(_0x49aaba,null))[_0x72bd('0x42')](handleError(_0x49aaba,null));};exports[_0x72bd('0x47')]=function(_0x4104a2,_0x396dcc){var _0xe615c0={'where':{'id':_0x4104a2[_0x72bd('0x44')]['id']}},_0x26ad4e={};_0x26ad4e['model']=_[_0x72bd('0x45')](db['Attachment'][_0x72bd('0x29')]);_0xe615c0[_0x72bd('0x31')]=_[_0x72bd('0x30')](_0x26ad4e[_0x72bd('0x2d')],qs[_0x72bd('0x32')](_0x4104a2[_0x72bd('0x2e')][_0x72bd('0x32')]));_0xe615c0[_0x72bd('0x31')]=_0xe615c0[_0x72bd('0x31')]['length']?_0xe615c0[_0x72bd('0x31')]:_0x26ad4e[_0x72bd('0x2d')];if(_0x4104a2['query'][_0x72bd('0x3e')]){_0xe615c0['include']=[{'all':!![]}];}_0xe615c0=_[_0x72bd('0x3a')]({},_0xe615c0,_0x4104a2[_0x72bd('0x3d')]);return db['Attachment'][_0x72bd('0x46')](_0xe615c0)[_0x72bd('0x21')](handleEntityNotFound(_0x396dcc,null))[_0x72bd('0x21')](function(_0x2ffeb8){if(_0x2ffeb8){var _0x5671d3=_0x2ffeb8[_0x72bd('0x48')]({'plain':!![]});_0x5671d3=qs[_0x72bd('0x49')](_0x5671d3,['id',_0x72bd('0x4a'),_0x72bd('0x4b')]);_0x4104a2[_0x72bd('0x4c')]=_['omit'](_0x4104a2[_0x72bd('0x4c')],['id',_0x72bd('0x4a'),_0x72bd('0x4b')]);return db[_0x72bd('0x40')]['create'](_[_0x72bd('0x3a')](_0x5671d3,_0x4104a2[_0x72bd('0x4c')]),{'include':_0x4104a2['query'][_0x72bd('0x3e')]?[{'all':!![]}]:undefined});}})[_0x72bd('0x21')](respondWithResult(_0x396dcc,0xc9))[_0x72bd('0x42')](handleError(_0x396dcc,null));};exports[_0x72bd('0x20')]=function(_0x557b52,_0x4b7613){if(_0x557b52[_0x72bd('0x4c')]['id']){delete _0x557b52['body']['id'];}return db[_0x72bd('0x40')][_0x72bd('0x46')]({'where':{'id':_0x557b52['params']['id']}})[_0x72bd('0x21')](handleEntityNotFound(_0x4b7613,null))[_0x72bd('0x21')](saveUpdates(_0x557b52[_0x72bd('0x4c')],null))[_0x72bd('0x21')](respondWithResult(_0x4b7613,null))[_0x72bd('0x42')](handleError(_0x4b7613,null));};exports[_0x72bd('0x4d')]=function(_0x5aa5b9,_0x4e16a4){return db[_0x72bd('0x40')][_0x72bd('0x46')]({'where':{'id':_0x5aa5b9[_0x72bd('0x44')]['id']}})[_0x72bd('0x21')](handleEntityNotFound(_0x4e16a4,null))[_0x72bd('0x21')](removeEntity(_0x4e16a4,null))[_0x72bd('0x42')](handleError(_0x4e16a4,null));};exports[_0x72bd('0x4e')]=function(_0x9abb90,_0x441e1b,_0x375763){_0x9abb90[_0x72bd('0x4c')]['name']=_0x9abb90[_0x72bd('0x4f')][_0x72bd('0x50')];_0x9abb90[_0x72bd('0x4c')][_0x72bd('0x51')]=_0x9abb90[_0x72bd('0x4f')]['filename'];_0x9abb90[_0x72bd('0x4c')][_0x72bd('0x2b')]=_0x9abb90['file'][_0x72bd('0x52')];return db[_0x72bd('0x40')][_0x72bd('0x4e')](_0x9abb90[_0x72bd('0x4c')])[_0x72bd('0x21')](respondWithResult(_0x441e1b,0xc9))[_0x72bd('0x42')](handleError(_0x441e1b,null));};exports['download']=function(_0xf94337,_0x57a845,_0x5b28a4){return db['Attachment']['findOne']({'where':{'id':_0xf94337[_0x72bd('0x44')]['id']},'raw':!![]})[_0x72bd('0x21')](handleEntityNotFound(_0x57a845,null))[_0x72bd('0x21')](function(_0x1428d0){if(_0x1428d0){var _0x521b2a=_0x1428d0[_0x72bd('0x53')]!==null;var _0x54691d=path['join'](config[_0x72bd('0x54')],'server/files/attachments/');if(_0x521b2a){_0x54691d=path['join'](_0x54691d,_0x72bd('0x55'));}var _0x31249f=path[_0x72bd('0x56')](_0x54691d,_0x1428d0['basename']);return _0x57a845[_0x72bd('0x57')](_0x31249f);}})['catch'](handleError(_0x57a845,null));};