Built motion from commit 936e8062.|2.5.33
[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 _0xa2cf=['error','stack','name','index','map','Attachment','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filter','VIRTUAL','merge','options','includeAll','findAll','catch','show','params','find','include','omit','createdAt','updatedAt','create','body','destroy','file','originalname','basename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','end','limit','undefined','offset','count','status','set','Content-Range','json','apply','save','update','then'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa2cf,0x88));var _0xfa2c=function(_0x20a6f5,_0x513a7a){_0x20a6f5=_0x20a6f5-0x0;var _0x11d7c4=_0xa2cf[_0x20a6f5];return _0x11d7c4;};'use strict';var emlformat=require(_0xfa2c('0x0'));var rimraf=require(_0xfa2c('0x1'));var zipdir=require(_0xfa2c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfa2c('0x3'));var moment=require(_0xfa2c('0x4'));var BPromise=require(_0xfa2c('0x5'));var Mustache=require(_0xfa2c('0x6'));var util=require('util');var path=require(_0xfa2c('0x7'));var sox=require(_0xfa2c('0x8'));var csv=require(_0xfa2c('0x9'));var ejs=require(_0xfa2c('0xa'));var fs=require('fs');var fs_extra=require(_0xfa2c('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xfa2c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xfa2c('0xd'));var toCsv=require(_0xfa2c('0x9'));var querystring=require(_0xfa2c('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xfa2c('0xf'));var qs=require(_0xfa2c('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfa2c('0x11'));var logger=require(_0xfa2c('0x12'))(_0xfa2c('0x13'));var utils=require(_0xfa2c('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xfa2c('0x15'));var db=require(_0xfa2c('0x16'))['db'];function respondWithStatusCode(_0x2b542b,_0x3ad0f6){_0x3ad0f6=_0x3ad0f6||0xcc;return function(_0x3a5082){if(_0x3a5082){return _0x2b542b['sendStatus'](_0x3ad0f6);}return _0x2b542b['status'](_0x3ad0f6)[_0xfa2c('0x17')]();};}function respondWithResult(_0x463dc1,_0x4f26df){_0x4f26df=_0x4f26df||0xc8;return function(_0x53e44e){if(_0x53e44e){return _0x463dc1['status'](_0x4f26df)['json'](_0x53e44e);}};}function respondWithFilteredResult(_0x52c651,_0x31a870){return function(_0x4173b4){if(_0x4173b4){var _0x3eb79f=typeof _0x31a870['offset']==='undefined'&&typeof _0x31a870[_0xfa2c('0x18')]===_0xfa2c('0x19');var _0x1a6c03=_0x4173b4['count'];var _0x3d8842=_0x3eb79f?0x0:_0x31a870[_0xfa2c('0x1a')];var _0x2844b1=_0x3eb79f?_0x4173b4[_0xfa2c('0x1b')]:_0x31a870['offset']+_0x31a870[_0xfa2c('0x18')];var _0x135ee9;if(_0x2844b1>=_0x1a6c03){_0x2844b1=_0x1a6c03;_0x135ee9=0xc8;}else{_0x135ee9=0xce;}_0x52c651[_0xfa2c('0x1c')](_0x135ee9);return _0x52c651[_0xfa2c('0x1d')](_0xfa2c('0x1e'),_0x3d8842+'-'+_0x2844b1+'/'+_0x1a6c03)[_0xfa2c('0x1f')](_0x4173b4);}return null;};}function patchUpdates(_0x20d7ae){return function(_0x51a357){try{jsonpatch[_0xfa2c('0x20')](_0x51a357,_0x20d7ae,!![]);}catch(_0x26d3e9){return BPromise['reject'](_0x26d3e9);}return _0x51a357[_0xfa2c('0x21')]();};}function saveUpdates(_0x49c2db,_0x3db8f2){return function(_0x438bab){if(_0x438bab){return _0x438bab[_0xfa2c('0x22')](_0x49c2db)['then'](function(_0x2d81c5){return _0x2d81c5;});}return null;};}function removeEntity(_0x475e3c,_0x13ce8e){return function(_0x316b05){if(_0x316b05){return _0x316b05['destroy']()[_0xfa2c('0x23')](function(){_0x475e3c[_0xfa2c('0x1c')](0xcc)[_0xfa2c('0x17')]();});}};}function handleEntityNotFound(_0x115197,_0x229db6){return function(_0x3d6aaf){if(!_0x3d6aaf){_0x115197['sendStatus'](0x194);}return _0x3d6aaf;};}function handleError(_0x309f30,_0x3dc776){_0x3dc776=_0x3dc776||0x1f4;return function(_0x34cca8){logger[_0xfa2c('0x24')](_0x34cca8[_0xfa2c('0x25')]);if(_0x34cca8[_0xfa2c('0x26')]){delete _0x34cca8[_0xfa2c('0x26')];}_0x309f30[_0xfa2c('0x1c')](_0x3dc776)['send'](_0x34cca8);};}exports[_0xfa2c('0x27')]=function(_0x409b82,_0x563eb3){var _0x519e0f={},_0x3dc5aa={},_0x3cd235={'count':0x0,'rows':[]};var _0xeb83b1=_[_0xfa2c('0x28')](db[_0xfa2c('0x29')][_0xfa2c('0x2a')],function(_0x4bb1e5){return{'name':_0x4bb1e5[_0xfa2c('0x2b')],'type':_0x4bb1e5[_0xfa2c('0x2c')][_0xfa2c('0x2d')]};});_0x3dc5aa[_0xfa2c('0x2e')]=_[_0xfa2c('0x28')](_0xeb83b1,_0xfa2c('0x26'));_0x3dc5aa[_0xfa2c('0x2f')]=_[_0xfa2c('0x30')](_0x409b82[_0xfa2c('0x2f')]);_0x3dc5aa[_0xfa2c('0x31')]=_['intersection'](_0x3dc5aa[_0xfa2c('0x2e')],_0x3dc5aa[_0xfa2c('0x2f')]);_0x519e0f['attributes']=_[_0xfa2c('0x32')](_0x3dc5aa[_0xfa2c('0x2e')],qs['fields'](_0x409b82['query'][_0xfa2c('0x33')]));_0x519e0f['attributes']=_0x519e0f[_0xfa2c('0x34')][_0xfa2c('0x35')]?_0x519e0f[_0xfa2c('0x34')]:_0x3dc5aa[_0xfa2c('0x2e')];if(!_0x409b82[_0xfa2c('0x2f')][_0xfa2c('0x36')]('nolimit')){_0x519e0f[_0xfa2c('0x18')]=qs[_0xfa2c('0x18')](_0x409b82[_0xfa2c('0x2f')][_0xfa2c('0x18')]);_0x519e0f[_0xfa2c('0x1a')]=qs[_0xfa2c('0x1a')](_0x409b82[_0xfa2c('0x2f')][_0xfa2c('0x1a')]);}_0x519e0f[_0xfa2c('0x37')]=qs['sort'](_0x409b82[_0xfa2c('0x2f')][_0xfa2c('0x38')]);_0x519e0f[_0xfa2c('0x39')]=qs[_0xfa2c('0x31')](_['pick'](_0x409b82[_0xfa2c('0x2f')],_0x3dc5aa[_0xfa2c('0x31')]),_0xeb83b1);if(_0x409b82[_0xfa2c('0x2f')][_0xfa2c('0x3a')]){_0x519e0f['where']=_['merge'](_0x519e0f[_0xfa2c('0x39')],{'$or':_[_0xfa2c('0x28')](_0xeb83b1,function(_0x520246){if(_0x520246['type']!==_0xfa2c('0x3b')){var _0x2e72f9={};_0x2e72f9[_0x520246[_0xfa2c('0x26')]]={'$like':'%'+_0x409b82[_0xfa2c('0x2f')]['filter']+'%'};return _0x2e72f9;}})});}_0x519e0f=_[_0xfa2c('0x3c')]({},_0x519e0f,_0x409b82[_0xfa2c('0x3d')]);var _0x36c0ba={'where':_0x519e0f[_0xfa2c('0x39')]};return db[_0xfa2c('0x29')]['count'](_0x36c0ba)[_0xfa2c('0x23')](function(_0x20fc77){_0x3cd235[_0xfa2c('0x1b')]=_0x20fc77;if(_0x409b82[_0xfa2c('0x2f')][_0xfa2c('0x3e')]){_0x519e0f['include']=[{'all':!![]}];}return db[_0xfa2c('0x29')][_0xfa2c('0x3f')](_0x519e0f);})['then'](function(_0x5c5af9){_0x3cd235['rows']=_0x5c5af9;return _0x3cd235;})[_0xfa2c('0x23')](respondWithFilteredResult(_0x563eb3,_0x519e0f))[_0xfa2c('0x40')](handleError(_0x563eb3,null));};exports[_0xfa2c('0x41')]=function(_0x57daca,_0x5571f3){var _0x594c46={'raw':!![],'where':{'id':_0x57daca[_0xfa2c('0x42')]['id']}},_0x3c3fb0={};_0x3c3fb0[_0xfa2c('0x2e')]=_['keys'](db[_0xfa2c('0x29')][_0xfa2c('0x2a')]);_0x3c3fb0[_0xfa2c('0x2f')]=_[_0xfa2c('0x30')](_0x57daca['query']);_0x3c3fb0[_0xfa2c('0x31')]=_[_0xfa2c('0x32')](_0x3c3fb0[_0xfa2c('0x2e')],_0x3c3fb0['query']);_0x594c46['attributes']=_['intersection'](_0x3c3fb0[_0xfa2c('0x2e')],qs[_0xfa2c('0x33')](_0x57daca['query'][_0xfa2c('0x33')]));_0x594c46[_0xfa2c('0x34')]=_0x594c46[_0xfa2c('0x34')]['length']?_0x594c46[_0xfa2c('0x34')]:_0x3c3fb0[_0xfa2c('0x2e')];if(_0x57daca[_0xfa2c('0x2f')][_0xfa2c('0x3e')]){_0x594c46['include']=[{'all':!![]}];}_0x594c46=_[_0xfa2c('0x3c')]({},_0x594c46,_0x57daca[_0xfa2c('0x3d')]);return db[_0xfa2c('0x29')][_0xfa2c('0x43')](_0x594c46)[_0xfa2c('0x23')](handleEntityNotFound(_0x5571f3,null))[_0xfa2c('0x23')](respondWithResult(_0x5571f3,null))[_0xfa2c('0x40')](handleError(_0x5571f3,null));};exports['clone']=function(_0x1445c6,_0x595d60){var _0xf8235c={'where':{'id':_0x1445c6[_0xfa2c('0x42')]['id']}},_0x1a7c94={};_0x1a7c94[_0xfa2c('0x2e')]=_[_0xfa2c('0x30')](db[_0xfa2c('0x29')]['rawAttributes']);_0xf8235c[_0xfa2c('0x34')]=_[_0xfa2c('0x32')](_0x1a7c94[_0xfa2c('0x2e')],qs['fields'](_0x1445c6[_0xfa2c('0x2f')]['fields']));_0xf8235c[_0xfa2c('0x34')]=_0xf8235c['attributes']['length']?_0xf8235c[_0xfa2c('0x34')]:_0x1a7c94[_0xfa2c('0x2e')];if(_0x1445c6[_0xfa2c('0x2f')]['includeAll']){_0xf8235c[_0xfa2c('0x44')]=[{'all':!![]}];}_0xf8235c=_[_0xfa2c('0x3c')]({},_0xf8235c,_0x1445c6[_0xfa2c('0x3d')]);return db[_0xfa2c('0x29')][_0xfa2c('0x43')](_0xf8235c)['then'](handleEntityNotFound(_0x595d60,null))[_0xfa2c('0x23')](function(_0x28c988){if(_0x28c988){var _0x54cb6d=_0x28c988['get']({'plain':!![]});_0x54cb6d=qs[_0xfa2c('0x45')](_0x54cb6d,['id',_0xfa2c('0x46'),_0xfa2c('0x47')]);_0x1445c6['body']=_[_0xfa2c('0x45')](_0x1445c6['body'],['id',_0xfa2c('0x46'),_0xfa2c('0x47')]);return db[_0xfa2c('0x29')][_0xfa2c('0x48')](_[_0xfa2c('0x3c')](_0x54cb6d,_0x1445c6[_0xfa2c('0x49')]),{'include':_0x1445c6[_0xfa2c('0x2f')]['includeAll']?[{'all':!![]}]:undefined});}})[_0xfa2c('0x23')](respondWithResult(_0x595d60,0xc9))[_0xfa2c('0x40')](handleError(_0x595d60,null));};exports[_0xfa2c('0x22')]=function(_0x4c5d6c,_0xc91dbb){if(_0x4c5d6c[_0xfa2c('0x49')]['id']){delete _0x4c5d6c[_0xfa2c('0x49')]['id'];}return db['Attachment'][_0xfa2c('0x43')]({'where':{'id':_0x4c5d6c[_0xfa2c('0x42')]['id']}})[_0xfa2c('0x23')](handleEntityNotFound(_0xc91dbb,null))['then'](saveUpdates(_0x4c5d6c[_0xfa2c('0x49')],null))[_0xfa2c('0x23')](respondWithResult(_0xc91dbb,null))[_0xfa2c('0x40')](handleError(_0xc91dbb,null));};exports[_0xfa2c('0x4a')]=function(_0x2c5fb0,_0x4d5a74){return db['Attachment'][_0xfa2c('0x43')]({'where':{'id':_0x2c5fb0[_0xfa2c('0x42')]['id']}})[_0xfa2c('0x23')](handleEntityNotFound(_0x4d5a74,null))[_0xfa2c('0x23')](removeEntity(_0x4d5a74,null))['catch'](handleError(_0x4d5a74,null));};exports[_0xfa2c('0x48')]=function(_0x431194,_0x108dcb,_0x2bf82b){_0x431194['body'][_0xfa2c('0x26')]=_0x431194[_0xfa2c('0x4b')][_0xfa2c('0x4c')];_0x431194['body'][_0xfa2c('0x4d')]=_0x431194[_0xfa2c('0x4b')]['filename'];_0x431194[_0xfa2c('0x49')][_0xfa2c('0x2c')]=_0x431194[_0xfa2c('0x4b')][_0xfa2c('0x4e')];return db[_0xfa2c('0x29')]['create'](_0x431194['body'])[_0xfa2c('0x23')](respondWithResult(_0x108dcb,0xc9))[_0xfa2c('0x40')](handleError(_0x108dcb,null));};exports[_0xfa2c('0x4f')]=function(_0xfb43dd,_0x3ed4ac,_0x13318d){return db[_0xfa2c('0x29')][_0xfa2c('0x50')]({'where':{'id':_0xfb43dd[_0xfa2c('0x42')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x3ed4ac,null))[_0xfa2c('0x23')](function(_0x548288){if(_0x548288){var _0x155537=_0x548288[_0xfa2c('0x51')]!==null;var _0xbd65a5=path[_0xfa2c('0x52')](config[_0xfa2c('0x53')],_0xfa2c('0x54'));if(_0x155537){_0xbd65a5=path[_0xfa2c('0x52')](_0xbd65a5,_0xfa2c('0x55'));}var _0x3b5bc7=path['join'](_0xbd65a5,_0x548288['basename']);return _0x3ed4ac['download'](_0x3b5bc7);}})[_0xfa2c('0x40')](handleError(_0x3ed4ac,null));};