Built motion from commit ddca4d0d.|2.5.47
[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 _0x1681=['filter','where','VIRTUAL','options','includeAll','include','findAll','catch','params','find','clone','get','omit','createdAt','updatedAt','body','create','merge','destroy','file','originalname','filename','findOne','ChatOfflineMessageId','join','server/files/attachments/','offline-chat/','download','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','set','apply','reject','save','update','then','error','stack','name','send','index','Attachment','rawAttributes','fieldName','type','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick'];(function(_0x487060,_0x224dc7){var _0x2d75a8=function(_0x227f94){while(--_0x227f94){_0x487060['push'](_0x487060['shift']());}};_0x2d75a8(++_0x224dc7);}(_0x1681,0x1de));var _0x1168=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1681[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x1168('0x0'));var rimraf=require(_0x1168('0x1'));var zipdir=require(_0x1168('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1168('0x3'));var moment=require(_0x1168('0x4'));var BPromise=require(_0x1168('0x5'));var Mustache=require(_0x1168('0x6'));var util=require('util');var path=require(_0x1168('0x7'));var sox=require(_0x1168('0x8'));var csv=require(_0x1168('0x9'));var ejs=require(_0x1168('0xa'));var fs=require('fs');var fs_extra=require(_0x1168('0xb'));var _=require(_0x1168('0xc'));var squel=require('squel');var crypto=require(_0x1168('0xd'));var jsforce=require(_0x1168('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x1168('0xf'));var Papa=require(_0x1168('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x1168('0x11'));var as=require(_0x1168('0x12'));var hardwareService=require(_0x1168('0x13'));var logger=require(_0x1168('0x14'))(_0x1168('0x15'));var utils=require(_0x1168('0x16'));var config=require(_0x1168('0x17'));var licenseUtil=require(_0x1168('0x18'));var db=require(_0x1168('0x19'))['db'];function respondWithStatusCode(_0x42dab1,_0x5763df){_0x5763df=_0x5763df||0xcc;return function(_0x492d1e){if(_0x492d1e){return _0x42dab1[_0x1168('0x1a')](_0x5763df);}return _0x42dab1[_0x1168('0x1b')](_0x5763df)[_0x1168('0x1c')]();};}function respondWithResult(_0x31e65f,_0x4fdb33){_0x4fdb33=_0x4fdb33||0xc8;return function(_0x179a80){if(_0x179a80){return _0x31e65f[_0x1168('0x1b')](_0x4fdb33)[_0x1168('0x1d')](_0x179a80);}};}function respondWithFilteredResult(_0x45514b,_0x409b3c){return function(_0x3819cf){if(_0x3819cf){var _0x39edbd=typeof _0x409b3c['offset']==='undefined'&&typeof _0x409b3c['limit']==='undefined';var _0x285c31=_0x3819cf[_0x1168('0x1e')];var _0x5659e4=_0x39edbd?0x0:_0x409b3c['offset'];var _0x4a260e=_0x39edbd?_0x3819cf[_0x1168('0x1e')]:_0x409b3c[_0x1168('0x1f')]+_0x409b3c['limit'];var _0x3e0d34;if(_0x4a260e>=_0x285c31){_0x4a260e=_0x285c31;_0x3e0d34=0xc8;}else{_0x3e0d34=0xce;}_0x45514b[_0x1168('0x1b')](_0x3e0d34);return _0x45514b[_0x1168('0x20')]('Content-Range',_0x5659e4+'-'+_0x4a260e+'/'+_0x285c31)[_0x1168('0x1d')](_0x3819cf);}return null;};}function patchUpdates(_0x2d344c){return function(_0x5c7454){try{jsonpatch[_0x1168('0x21')](_0x5c7454,_0x2d344c,!![]);}catch(_0x4523fd){return BPromise[_0x1168('0x22')](_0x4523fd);}return _0x5c7454[_0x1168('0x23')]();};}function saveUpdates(_0x460d8e,_0x1df2cc){return function(_0x14307f){if(_0x14307f){return _0x14307f[_0x1168('0x24')](_0x460d8e)[_0x1168('0x25')](function(_0x2aed73){return _0x2aed73;});}return null;};}function removeEntity(_0xcecfb8,_0x7b70dd){return function(_0x3c2404){if(_0x3c2404){return _0x3c2404['destroy']()['then'](function(){_0xcecfb8[_0x1168('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2868dd,_0x2b7df8){return function(_0x4b4462){if(!_0x4b4462){_0x2868dd[_0x1168('0x1a')](0x194);}return _0x4b4462;};}function handleError(_0x41cf5d,_0x2b813c){_0x2b813c=_0x2b813c||0x1f4;return function(_0x92303){logger[_0x1168('0x26')](_0x92303[_0x1168('0x27')]);if(_0x92303[_0x1168('0x28')]){delete _0x92303[_0x1168('0x28')];}_0x41cf5d[_0x1168('0x1b')](_0x2b813c)[_0x1168('0x29')](_0x92303);};}exports[_0x1168('0x2a')]=function(_0x136a3f,_0x3352f1){var _0x1dca29={},_0x11e434={},_0x3d618e={'count':0x0,'rows':[]};var _0x20aacb=_['map'](db[_0x1168('0x2b')][_0x1168('0x2c')],function(_0x2e9bb1){return{'name':_0x2e9bb1[_0x1168('0x2d')],'type':_0x2e9bb1[_0x1168('0x2e')]['key']};});_0x11e434[_0x1168('0x2f')]=_[_0x1168('0x30')](_0x20aacb,_0x1168('0x28'));_0x11e434[_0x1168('0x31')]=_[_0x1168('0x32')](_0x136a3f[_0x1168('0x31')]);_0x11e434[_0x1168('0x33')]=_['intersection'](_0x11e434[_0x1168('0x2f')],_0x11e434['query']);_0x1dca29[_0x1168('0x34')]=_[_0x1168('0x35')](_0x11e434[_0x1168('0x2f')],qs[_0x1168('0x36')](_0x136a3f[_0x1168('0x31')]['fields']));_0x1dca29[_0x1168('0x34')]=_0x1dca29[_0x1168('0x34')][_0x1168('0x37')]?_0x1dca29[_0x1168('0x34')]:_0x11e434[_0x1168('0x2f')];if(!_0x136a3f[_0x1168('0x31')][_0x1168('0x38')](_0x1168('0x39'))){_0x1dca29[_0x1168('0x3a')]=qs['limit'](_0x136a3f[_0x1168('0x31')][_0x1168('0x3a')]);_0x1dca29[_0x1168('0x1f')]=qs['offset'](_0x136a3f['query'][_0x1168('0x1f')]);}_0x1dca29[_0x1168('0x3b')]=qs[_0x1168('0x3c')](_0x136a3f[_0x1168('0x31')]['sort']);_0x1dca29['where']=qs[_0x1168('0x33')](_[_0x1168('0x3d')](_0x136a3f['query'],_0x11e434[_0x1168('0x33')]),_0x20aacb);if(_0x136a3f[_0x1168('0x31')][_0x1168('0x3e')]){_0x1dca29[_0x1168('0x3f')]=_['merge'](_0x1dca29[_0x1168('0x3f')],{'$or':_['map'](_0x20aacb,function(_0x31de20){if(_0x31de20[_0x1168('0x2e')]!==_0x1168('0x40')){var _0x3c066a={};_0x3c066a[_0x31de20[_0x1168('0x28')]]={'$like':'%'+_0x136a3f[_0x1168('0x31')][_0x1168('0x3e')]+'%'};return _0x3c066a;}})});}_0x1dca29=_['merge']({},_0x1dca29,_0x136a3f[_0x1168('0x41')]);var _0x2e8ad4={'where':_0x1dca29['where']};return db[_0x1168('0x2b')]['count'](_0x2e8ad4)[_0x1168('0x25')](function(_0x18b476){_0x3d618e[_0x1168('0x1e')]=_0x18b476;if(_0x136a3f[_0x1168('0x31')][_0x1168('0x42')]){_0x1dca29[_0x1168('0x43')]=[{'all':!![]}];}return db[_0x1168('0x2b')][_0x1168('0x44')](_0x1dca29);})[_0x1168('0x25')](function(_0x37f3f7){_0x3d618e['rows']=_0x37f3f7;return _0x3d618e;})[_0x1168('0x25')](respondWithFilteredResult(_0x3352f1,_0x1dca29))[_0x1168('0x45')](handleError(_0x3352f1,null));};exports['show']=function(_0x4d751f,_0x42b370){var _0x5695b4={'raw':!![],'where':{'id':_0x4d751f[_0x1168('0x46')]['id']}},_0x4f8062={};_0x4f8062['model']=_['keys'](db[_0x1168('0x2b')][_0x1168('0x2c')]);_0x4f8062[_0x1168('0x31')]=_[_0x1168('0x32')](_0x4d751f[_0x1168('0x31')]);_0x4f8062[_0x1168('0x33')]=_[_0x1168('0x35')](_0x4f8062[_0x1168('0x2f')],_0x4f8062['query']);_0x5695b4['attributes']=_[_0x1168('0x35')](_0x4f8062['model'],qs[_0x1168('0x36')](_0x4d751f['query'][_0x1168('0x36')]));_0x5695b4[_0x1168('0x34')]=_0x5695b4['attributes']['length']?_0x5695b4[_0x1168('0x34')]:_0x4f8062[_0x1168('0x2f')];if(_0x4d751f[_0x1168('0x31')]['includeAll']){_0x5695b4[_0x1168('0x43')]=[{'all':!![]}];}_0x5695b4=_['merge']({},_0x5695b4,_0x4d751f[_0x1168('0x41')]);return db[_0x1168('0x2b')][_0x1168('0x47')](_0x5695b4)[_0x1168('0x25')](handleEntityNotFound(_0x42b370,null))[_0x1168('0x25')](respondWithResult(_0x42b370,null))[_0x1168('0x45')](handleError(_0x42b370,null));};exports[_0x1168('0x48')]=function(_0x13555b,_0x278b4c){var _0x37ba46={'where':{'id':_0x13555b['params']['id']}},_0x5797bb={};_0x5797bb[_0x1168('0x2f')]=_[_0x1168('0x32')](db[_0x1168('0x2b')][_0x1168('0x2c')]);_0x37ba46[_0x1168('0x34')]=_['intersection'](_0x5797bb[_0x1168('0x2f')],qs[_0x1168('0x36')](_0x13555b[_0x1168('0x31')]['fields']));_0x37ba46[_0x1168('0x34')]=_0x37ba46[_0x1168('0x34')][_0x1168('0x37')]?_0x37ba46['attributes']:_0x5797bb[_0x1168('0x2f')];if(_0x13555b['query'][_0x1168('0x42')]){_0x37ba46['include']=[{'all':!![]}];}_0x37ba46=_['merge']({},_0x37ba46,_0x13555b[_0x1168('0x41')]);return db['Attachment']['find'](_0x37ba46)[_0x1168('0x25')](handleEntityNotFound(_0x278b4c,null))[_0x1168('0x25')](function(_0x455549){if(_0x455549){var _0x2fe71f=_0x455549[_0x1168('0x49')]({'plain':!![]});_0x2fe71f=qs[_0x1168('0x4a')](_0x2fe71f,['id',_0x1168('0x4b'),_0x1168('0x4c')]);_0x13555b[_0x1168('0x4d')]=_[_0x1168('0x4a')](_0x13555b[_0x1168('0x4d')],['id',_0x1168('0x4b'),_0x1168('0x4c')]);return db[_0x1168('0x2b')][_0x1168('0x4e')](_[_0x1168('0x4f')](_0x2fe71f,_0x13555b[_0x1168('0x4d')]),{'include':_0x13555b['query']['includeAll']?[{'all':!![]}]:undefined});}})[_0x1168('0x25')](respondWithResult(_0x278b4c,0xc9))[_0x1168('0x45')](handleError(_0x278b4c,null));};exports['update']=function(_0x56d682,_0x3b01f6){if(_0x56d682[_0x1168('0x4d')]['id']){delete _0x56d682[_0x1168('0x4d')]['id'];}return db[_0x1168('0x2b')][_0x1168('0x47')]({'where':{'id':_0x56d682[_0x1168('0x46')]['id']}})[_0x1168('0x25')](handleEntityNotFound(_0x3b01f6,null))[_0x1168('0x25')](saveUpdates(_0x56d682['body'],null))[_0x1168('0x25')](respondWithResult(_0x3b01f6,null))['catch'](handleError(_0x3b01f6,null));};exports[_0x1168('0x50')]=function(_0x3e88a5,_0x4f97f5){return db[_0x1168('0x2b')][_0x1168('0x47')]({'where':{'id':_0x3e88a5[_0x1168('0x46')]['id']}})[_0x1168('0x25')](handleEntityNotFound(_0x4f97f5,null))[_0x1168('0x25')](removeEntity(_0x4f97f5,null))['catch'](handleError(_0x4f97f5,null));};exports[_0x1168('0x4e')]=function(_0x4928cb,_0x176024,_0xb76aa5){_0x4928cb[_0x1168('0x4d')][_0x1168('0x28')]=_0x4928cb[_0x1168('0x51')][_0x1168('0x52')];_0x4928cb[_0x1168('0x4d')]['basename']=_0x4928cb[_0x1168('0x51')][_0x1168('0x53')];_0x4928cb[_0x1168('0x4d')]['type']=_0x4928cb[_0x1168('0x51')]['mimetype'];return db[_0x1168('0x2b')][_0x1168('0x4e')](_0x4928cb[_0x1168('0x4d')])[_0x1168('0x25')](respondWithResult(_0x176024,0xc9))[_0x1168('0x45')](handleError(_0x176024,null));};exports['download']=function(_0x4082e3,_0x522c45,_0x4794da){return db['Attachment'][_0x1168('0x54')]({'where':{'id':_0x4082e3[_0x1168('0x46')]['id']},'raw':!![]})[_0x1168('0x25')](handleEntityNotFound(_0x522c45,null))['then'](function(_0xa4c180){if(_0xa4c180){var _0x105f9d=_0xa4c180[_0x1168('0x55')]!==null;var _0x509bd5=path[_0x1168('0x56')](config['root'],_0x1168('0x57'));if(_0x105f9d){_0x509bd5=path[_0x1168('0x56')](_0x509bd5,_0x1168('0x58'));}var _0x45ea22=path[_0x1168('0x56')](_0x509bd5,_0xa4c180['basename']);return _0x522c45[_0x1168('0x59')](_0x45ea22);}})[_0x1168('0x45')](handleError(_0x522c45,null));};