Built motion from commit (unavailable).|2.5.21
[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 _0x21ee=['model','attributes','fields','length','offset','sort','filter','where','merge','VIRTUAL','options','includeAll','rows','catch','params','include','find','clone','get','updatedAt','omit','body','createdAt','create','file','originalname','basename','filename','mimetype','download','findOne','join','root','html-pdf','eml-format','rimraf','zip-dir','moment','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','count','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','map','Attachment','rawAttributes','fieldName','type','key','query','keys','filters','intersection'];(function(_0x3f6bcf,_0x531e79){var _0x1c5350=function(_0x282fc5){while(--_0x282fc5){_0x3f6bcf['push'](_0x3f6bcf['shift']());}};_0x1c5350(++_0x531e79);}(_0x21ee,0xcb));var _0xe21e=function(_0x9d3c7b,_0xbc52d7){_0x9d3c7b=_0x9d3c7b-0x0;var _0x25173d=_0x21ee[_0x9d3c7b];return _0x25173d;};'use strict';var pdf=require(_0xe21e('0x0'));var emlformat=require(_0xe21e('0x1'));var rimraf=require(_0xe21e('0x2'));var zipdir=require(_0xe21e('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe21e('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe21e('0x5'));var util=require('util');var path=require(_0xe21e('0x6'));var sox=require(_0xe21e('0x7'));var csv=require(_0xe21e('0x8'));var ejs=require(_0xe21e('0x9'));var fs=require('fs');var _=require(_0xe21e('0xa'));var squel=require(_0xe21e('0xb'));var crypto=require('crypto');var jsforce=require(_0xe21e('0xc'));var deskjs=require(_0xe21e('0xd'));var toCsv=require(_0xe21e('0x8'));var querystring=require(_0xe21e('0xe'));var Papa=require(_0xe21e('0xf'));var Redis=require(_0xe21e('0x10'));var authService=require(_0xe21e('0x11'));var qs=require(_0xe21e('0x12'));var as=require(_0xe21e('0x13'));var hardwareService=require(_0xe21e('0x14'));var logger=require('../../config/logger')(_0xe21e('0x15'));var utils=require(_0xe21e('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xe21e('0x17'));var db=require(_0xe21e('0x18'))['db'];function respondWithStatusCode(_0x454dcc,_0x3f92f2){_0x3f92f2=_0x3f92f2||0xcc;return function(_0x429fc5){if(_0x429fc5){return _0x454dcc[_0xe21e('0x19')](_0x3f92f2);}return _0x454dcc[_0xe21e('0x1a')](_0x3f92f2)[_0xe21e('0x1b')]();};}function respondWithResult(_0x550a44,_0x26c7e6){_0x26c7e6=_0x26c7e6||0xc8;return function(_0x2f72ff){if(_0x2f72ff){return _0x550a44['status'](_0x26c7e6)['json'](_0x2f72ff);}};}function respondWithFilteredResult(_0x21a9bb,_0xa7870b){return function(_0xfa2c4c){if(_0xfa2c4c){var _0x45e77a=_0xfa2c4c[_0xe21e('0x1c')],_0x5563d2=_0xa7870b['offset'],_0x3456cb=_0xa7870b['offset']+_0xa7870b['limit'],_0xd86734;if(_0x3456cb>=_0x45e77a){_0x3456cb=_0x45e77a;_0xd86734=0xc8;}else{_0xd86734=0xce;}_0x21a9bb['status'](_0xd86734);return _0x21a9bb[_0xe21e('0x1d')](_0xe21e('0x1e'),_0x5563d2+'-'+_0x3456cb+'/'+_0x45e77a)[_0xe21e('0x1f')](_0xfa2c4c);}return null;};}function patchUpdates(_0x596c31){return function(_0x8cf592){try{jsonpatch[_0xe21e('0x20')](_0x8cf592,_0x596c31,!![]);}catch(_0x4ed906){return BPromise[_0xe21e('0x21')](_0x4ed906);}return _0x8cf592[_0xe21e('0x22')]();};}function saveUpdates(_0x50b09c,_0xee7eee){return function(_0x1a5ccb){if(_0x1a5ccb){return _0x1a5ccb[_0xe21e('0x23')](_0x50b09c)[_0xe21e('0x24')](function(_0x49c9b1){return _0x49c9b1;});}return null;};}function removeEntity(_0x1563c4,_0x34d911){return function(_0x18642f){if(_0x18642f){return _0x18642f[_0xe21e('0x25')]()['then'](function(){_0x1563c4[_0xe21e('0x1a')](0xcc)[_0xe21e('0x1b')]();});}};}function handleEntityNotFound(_0x3815c1,_0x362f0a){return function(_0x319f9a){if(!_0x319f9a){_0x3815c1[_0xe21e('0x19')](0x194);}return _0x319f9a;};}function handleError(_0x527b9b,_0x9e06fa){_0x9e06fa=_0x9e06fa||0x1f4;return function(_0x1e3daa){logger[_0xe21e('0x26')](_0x1e3daa[_0xe21e('0x27')]);if(_0x1e3daa[_0xe21e('0x28')]){delete _0x1e3daa['name'];}_0x527b9b[_0xe21e('0x1a')](_0x9e06fa)[_0xe21e('0x29')](_0x1e3daa);};}exports['index']=function(_0x350104,_0x5875d7){var _0x5db63f={},_0xec1711={},_0x93aa5e={'count':0x0,'rows':[]};var _0x192cc0=_[_0xe21e('0x2a')](db[_0xe21e('0x2b')][_0xe21e('0x2c')],function(_0x2b2726){return{'name':_0x2b2726[_0xe21e('0x2d')],'type':_0x2b2726[_0xe21e('0x2e')][_0xe21e('0x2f')]};});_0xec1711['model']=_[_0xe21e('0x2a')](_0x192cc0,_0xe21e('0x28'));_0xec1711[_0xe21e('0x30')]=_[_0xe21e('0x31')](_0x350104[_0xe21e('0x30')]);_0xec1711[_0xe21e('0x32')]=_[_0xe21e('0x33')](_0xec1711[_0xe21e('0x34')],_0xec1711[_0xe21e('0x30')]);_0x5db63f[_0xe21e('0x35')]=_[_0xe21e('0x33')](_0xec1711[_0xe21e('0x34')],qs[_0xe21e('0x36')](_0x350104[_0xe21e('0x30')]['fields']));_0x5db63f['attributes']=_0x5db63f[_0xe21e('0x35')][_0xe21e('0x37')]?_0x5db63f[_0xe21e('0x35')]:_0xec1711[_0xe21e('0x34')];if(!_0x350104['query']['hasOwnProperty']('nolimit')){_0x5db63f['limit']=qs['limit'](_0x350104['query']['limit']);_0x5db63f['offset']=qs['offset'](_0x350104[_0xe21e('0x30')][_0xe21e('0x38')]);}_0x5db63f['order']=qs['sort'](_0x350104['query'][_0xe21e('0x39')]);_0x5db63f['where']=qs[_0xe21e('0x32')](_['pick'](_0x350104[_0xe21e('0x30')],_0xec1711[_0xe21e('0x32')]),_0x192cc0);if(_0x350104[_0xe21e('0x30')][_0xe21e('0x3a')]){_0x5db63f[_0xe21e('0x3b')]=_[_0xe21e('0x3c')](_0x5db63f[_0xe21e('0x3b')],{'$or':_[_0xe21e('0x2a')](_0x192cc0,function(_0x261b02){if(_0x261b02[_0xe21e('0x2e')]!==_0xe21e('0x3d')){var _0x3031db={};_0x3031db[_0x261b02[_0xe21e('0x28')]]={'$like':'%'+_0x350104[_0xe21e('0x30')][_0xe21e('0x3a')]+'%'};return _0x3031db;}})});}_0x5db63f=_[_0xe21e('0x3c')]({},_0x5db63f,_0x350104[_0xe21e('0x3e')]);var _0x57f072={'where':_0x5db63f[_0xe21e('0x3b')]};return db[_0xe21e('0x2b')]['count'](_0x57f072)[_0xe21e('0x24')](function(_0x27a8e6){_0x93aa5e[_0xe21e('0x1c')]=_0x27a8e6;if(_0x350104[_0xe21e('0x30')][_0xe21e('0x3f')]){_0x5db63f['include']=[{'all':!![]}];}return db[_0xe21e('0x2b')]['findAll'](_0x5db63f);})[_0xe21e('0x24')](function(_0x3e0759){_0x93aa5e[_0xe21e('0x40')]=_0x3e0759;return _0x93aa5e;})[_0xe21e('0x24')](respondWithFilteredResult(_0x5875d7,_0x5db63f))[_0xe21e('0x41')](handleError(_0x5875d7,null));};exports['show']=function(_0x370354,_0x15e0b3){var _0x17fff9={'raw':!![],'where':{'id':_0x370354[_0xe21e('0x42')]['id']}},_0x23bb09={};_0x23bb09[_0xe21e('0x34')]=_['keys'](db[_0xe21e('0x2b')][_0xe21e('0x2c')]);_0x23bb09[_0xe21e('0x30')]=_['keys'](_0x370354[_0xe21e('0x30')]);_0x23bb09[_0xe21e('0x32')]=_[_0xe21e('0x33')](_0x23bb09[_0xe21e('0x34')],_0x23bb09[_0xe21e('0x30')]);_0x17fff9[_0xe21e('0x35')]=_[_0xe21e('0x33')](_0x23bb09[_0xe21e('0x34')],qs['fields'](_0x370354[_0xe21e('0x30')][_0xe21e('0x36')]));_0x17fff9[_0xe21e('0x35')]=_0x17fff9['attributes'][_0xe21e('0x37')]?_0x17fff9['attributes']:_0x23bb09['model'];if(_0x370354[_0xe21e('0x30')]['includeAll']){_0x17fff9[_0xe21e('0x43')]=[{'all':!![]}];}_0x17fff9=_[_0xe21e('0x3c')]({},_0x17fff9,_0x370354['options']);return db['Attachment'][_0xe21e('0x44')](_0x17fff9)[_0xe21e('0x24')](handleEntityNotFound(_0x15e0b3,null))[_0xe21e('0x24')](respondWithResult(_0x15e0b3,null))[_0xe21e('0x41')](handleError(_0x15e0b3,null));};exports[_0xe21e('0x45')]=function(_0x6e8d0c,_0x1f226a){var _0x4f1467={'where':{'id':_0x6e8d0c[_0xe21e('0x42')]['id']}},_0x495b6a={};_0x495b6a[_0xe21e('0x34')]=_[_0xe21e('0x31')](db[_0xe21e('0x2b')][_0xe21e('0x2c')]);_0x4f1467[_0xe21e('0x35')]=_[_0xe21e('0x33')](_0x495b6a[_0xe21e('0x34')],qs[_0xe21e('0x36')](_0x6e8d0c[_0xe21e('0x30')][_0xe21e('0x36')]));_0x4f1467[_0xe21e('0x35')]=_0x4f1467[_0xe21e('0x35')]['length']?_0x4f1467[_0xe21e('0x35')]:_0x495b6a[_0xe21e('0x34')];if(_0x6e8d0c[_0xe21e('0x30')]['includeAll']){_0x4f1467[_0xe21e('0x43')]=[{'all':!![]}];}_0x4f1467=_[_0xe21e('0x3c')]({},_0x4f1467,_0x6e8d0c['options']);return db[_0xe21e('0x2b')][_0xe21e('0x44')](_0x4f1467)['then'](handleEntityNotFound(_0x1f226a,null))[_0xe21e('0x24')](function(_0x530d62){if(_0x530d62){var _0x277e21=_0x530d62[_0xe21e('0x46')]({'plain':!![]});_0x277e21=qs['omit'](_0x277e21,['id','createdAt',_0xe21e('0x47')]);_0x6e8d0c['body']=_[_0xe21e('0x48')](_0x6e8d0c[_0xe21e('0x49')],['id',_0xe21e('0x4a'),_0xe21e('0x47')]);return db[_0xe21e('0x2b')][_0xe21e('0x4b')](_[_0xe21e('0x3c')](_0x277e21,_0x6e8d0c['body']),{'include':_0x6e8d0c[_0xe21e('0x30')][_0xe21e('0x3f')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x1f226a,0xc9))[_0xe21e('0x41')](handleError(_0x1f226a,null));};exports['update']=function(_0x3b8169,_0x39389c){if(_0x3b8169[_0xe21e('0x49')]['id']){delete _0x3b8169[_0xe21e('0x49')]['id'];}return db[_0xe21e('0x2b')][_0xe21e('0x44')]({'where':{'id':_0x3b8169['params']['id']}})[_0xe21e('0x24')](handleEntityNotFound(_0x39389c,null))[_0xe21e('0x24')](saveUpdates(_0x3b8169['body'],null))[_0xe21e('0x24')](respondWithResult(_0x39389c,null))[_0xe21e('0x41')](handleError(_0x39389c,null));};exports[_0xe21e('0x25')]=function(_0x342243,_0x3e6f75){return db[_0xe21e('0x2b')][_0xe21e('0x44')]({'where':{'id':_0x342243[_0xe21e('0x42')]['id']}})[_0xe21e('0x24')](handleEntityNotFound(_0x3e6f75,null))[_0xe21e('0x24')](removeEntity(_0x3e6f75,null))['catch'](handleError(_0x3e6f75,null));};exports['create']=function(_0x325cd8,_0x2ae355,_0x5bab54){_0x325cd8['body']['name']=_0x325cd8[_0xe21e('0x4c')][_0xe21e('0x4d')];_0x325cd8[_0xe21e('0x49')][_0xe21e('0x4e')]=_0x325cd8['file'][_0xe21e('0x4f')];_0x325cd8[_0xe21e('0x49')]['type']=_0x325cd8[_0xe21e('0x4c')][_0xe21e('0x50')];return db[_0xe21e('0x2b')]['create'](_0x325cd8[_0xe21e('0x49')])['then'](respondWithResult(_0x2ae355,0xc9))[_0xe21e('0x41')](handleError(_0x2ae355,null));};exports[_0xe21e('0x51')]=function(_0x1e73f4,_0x483969,_0x52fbc9){return db[_0xe21e('0x2b')][_0xe21e('0x52')]({'where':{'id':_0x1e73f4[_0xe21e('0x42')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x483969,null))[_0xe21e('0x24')](function(_0x3cd1bb){if(_0x3cd1bb){return _0x483969[_0xe21e('0x51')](path[_0xe21e('0x53')](config[_0xe21e('0x54')],'server/files/attachments/',_0x3cd1bb[_0xe21e('0x4e')]));}})['catch'](handleError(_0x483969,null));};