666d2b1fa2b9c6ca8c6cb23399df1d49b038da70
[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 _0x9984=['api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','send','index','Attachment','rawAttributes','type','key','map','name','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','VIRTUAL','options','includeAll','rows','catch','show','params','include','find','clone','merge','get','omit','createdAt','body','updatedAt','create','file','basename','filename','download','findOne','ChatOfflineMessageId','root','server/files/attachments/','join','offline-chat/','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x2de9cd,_0x168b28){var _0x3e2403=function(_0x4ad008){while(--_0x4ad008){_0x2de9cd['push'](_0x2de9cd['shift']());}};_0x3e2403(++_0x168b28);}(_0x9984,0x1b1));var _0x4998=function(_0x4d2e4f,_0x44206d){_0x4d2e4f=_0x4d2e4f-0x0;var _0x2710e1=_0x9984[_0x4d2e4f];return _0x2710e1;};'use strict';var emlformat=require(_0x4998('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4998('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4998('0x2'));var moment=require(_0x4998('0x3'));var BPromise=require(_0x4998('0x4'));var Mustache=require(_0x4998('0x5'));var util=require(_0x4998('0x6'));var path=require(_0x4998('0x7'));var sox=require(_0x4998('0x8'));var csv=require(_0x4998('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4998('0xa'));var squel=require(_0x4998('0xb'));var crypto=require(_0x4998('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x4998('0xd'));var toCsv=require(_0x4998('0x9'));var querystring=require(_0x4998('0xe'));var Papa=require(_0x4998('0xf'));var Redis=require(_0x4998('0x10'));var authService=require(_0x4998('0x11'));var qs=require(_0x4998('0x12'));var as=require(_0x4998('0x13'));var hardwareService=require(_0x4998('0x14'));var logger=require(_0x4998('0x15'))(_0x4998('0x16'));var utils=require(_0x4998('0x17'));var config=require(_0x4998('0x18'));var licenseUtil=require(_0x4998('0x19'));var db=require(_0x4998('0x1a'))['db'];function respondWithStatusCode(_0x255dcc,_0x2048f0){_0x2048f0=_0x2048f0||0xcc;return function(_0x11ec08){if(_0x11ec08){return _0x255dcc[_0x4998('0x1b')](_0x2048f0);}return _0x255dcc[_0x4998('0x1c')](_0x2048f0)[_0x4998('0x1d')]();};}function respondWithResult(_0x2dc4fd,_0x26b703){_0x26b703=_0x26b703||0xc8;return function(_0x28efa7){if(_0x28efa7){return _0x2dc4fd[_0x4998('0x1c')](_0x26b703)[_0x4998('0x1e')](_0x28efa7);}};}function respondWithFilteredResult(_0x1ba896,_0x3c57c5){return function(_0xb81672){if(_0xb81672){var _0x1d95bd=typeof _0x3c57c5['offset']==='undefined'&&typeof _0x3c57c5[_0x4998('0x1f')]==='undefined';var _0x3b5edd=_0xb81672[_0x4998('0x20')];var _0x470ba8=_0x1d95bd?0x0:_0x3c57c5[_0x4998('0x21')];var _0x39bec6=_0x1d95bd?_0xb81672['count']:_0x3c57c5[_0x4998('0x21')]+_0x3c57c5[_0x4998('0x1f')];var _0x224ee4;if(_0x39bec6>=_0x3b5edd){_0x39bec6=_0x3b5edd;_0x224ee4=0xc8;}else{_0x224ee4=0xce;}_0x1ba896[_0x4998('0x1c')](_0x224ee4);return _0x1ba896[_0x4998('0x22')](_0x4998('0x23'),_0x470ba8+'-'+_0x39bec6+'/'+_0x3b5edd)[_0x4998('0x1e')](_0xb81672);}return null;};}function patchUpdates(_0x2088ef){return function(_0x114b3e){try{jsonpatch[_0x4998('0x24')](_0x114b3e,_0x2088ef,!![]);}catch(_0x4db884){return BPromise['reject'](_0x4db884);}return _0x114b3e[_0x4998('0x25')]();};}function saveUpdates(_0x330048,_0xd4c630){return function(_0x18d626){if(_0x18d626){return _0x18d626[_0x4998('0x26')](_0x330048)[_0x4998('0x27')](function(_0x51b336){return _0x51b336;});}return null;};}function removeEntity(_0x495fb3,_0x142270){return function(_0x3a1352){if(_0x3a1352){return _0x3a1352[_0x4998('0x28')]()[_0x4998('0x27')](function(){_0x495fb3[_0x4998('0x1c')](0xcc)[_0x4998('0x1d')]();});}};}function handleEntityNotFound(_0x206924,_0x189bf9){return function(_0x348507){if(!_0x348507){_0x206924[_0x4998('0x1b')](0x194);}return _0x348507;};}function handleError(_0x148f3c,_0x4318b3){_0x4318b3=_0x4318b3||0x1f4;return function(_0x265cdb){logger[_0x4998('0x29')](_0x265cdb[_0x4998('0x2a')]);if(_0x265cdb['name']){delete _0x265cdb['name'];}_0x148f3c['status'](_0x4318b3)[_0x4998('0x2b')](_0x265cdb);};}exports[_0x4998('0x2c')]=function(_0x4e178a,_0x585818){var _0x13b8d4={},_0x542ecb={},_0x4ddac9={'count':0x0,'rows':[]};var _0x2f86d0=_['map'](db[_0x4998('0x2d')][_0x4998('0x2e')],function(_0x45bc7a){return{'name':_0x45bc7a['fieldName'],'type':_0x45bc7a[_0x4998('0x2f')][_0x4998('0x30')]};});_0x542ecb['model']=_[_0x4998('0x31')](_0x2f86d0,_0x4998('0x32'));_0x542ecb['query']=_[_0x4998('0x33')](_0x4e178a[_0x4998('0x34')]);_0x542ecb[_0x4998('0x35')]=_[_0x4998('0x36')](_0x542ecb[_0x4998('0x37')],_0x542ecb[_0x4998('0x34')]);_0x13b8d4[_0x4998('0x38')]=_[_0x4998('0x36')](_0x542ecb['model'],qs[_0x4998('0x39')](_0x4e178a[_0x4998('0x34')][_0x4998('0x39')]));_0x13b8d4[_0x4998('0x38')]=_0x13b8d4[_0x4998('0x38')][_0x4998('0x3a')]?_0x13b8d4[_0x4998('0x38')]:_0x542ecb[_0x4998('0x37')];if(!_0x4e178a[_0x4998('0x34')][_0x4998('0x3b')](_0x4998('0x3c'))){_0x13b8d4[_0x4998('0x1f')]=qs['limit'](_0x4e178a[_0x4998('0x34')][_0x4998('0x1f')]);_0x13b8d4[_0x4998('0x21')]=qs['offset'](_0x4e178a['query'][_0x4998('0x21')]);}_0x13b8d4['order']=qs[_0x4998('0x3d')](_0x4e178a[_0x4998('0x34')][_0x4998('0x3d')]);_0x13b8d4[_0x4998('0x3e')]=qs[_0x4998('0x35')](_['pick'](_0x4e178a['query'],_0x542ecb[_0x4998('0x35')]),_0x2f86d0);if(_0x4e178a[_0x4998('0x34')][_0x4998('0x3f')]){_0x13b8d4['where']=_['merge'](_0x13b8d4['where'],{'$or':_[_0x4998('0x31')](_0x2f86d0,function(_0x4553a2){if(_0x4553a2[_0x4998('0x2f')]!==_0x4998('0x40')){var _0x599894={};_0x599894[_0x4553a2['name']]={'$like':'%'+_0x4e178a[_0x4998('0x34')][_0x4998('0x3f')]+'%'};return _0x599894;}})});}_0x13b8d4=_['merge']({},_0x13b8d4,_0x4e178a[_0x4998('0x41')]);var _0x5f067d={'where':_0x13b8d4[_0x4998('0x3e')]};return db[_0x4998('0x2d')][_0x4998('0x20')](_0x5f067d)[_0x4998('0x27')](function(_0x1db61a){_0x4ddac9[_0x4998('0x20')]=_0x1db61a;if(_0x4e178a['query'][_0x4998('0x42')]){_0x13b8d4['include']=[{'all':!![]}];}return db['Attachment']['findAll'](_0x13b8d4);})[_0x4998('0x27')](function(_0x122fd5){_0x4ddac9[_0x4998('0x43')]=_0x122fd5;return _0x4ddac9;})[_0x4998('0x27')](respondWithFilteredResult(_0x585818,_0x13b8d4))[_0x4998('0x44')](handleError(_0x585818,null));};exports[_0x4998('0x45')]=function(_0x2e96d9,_0x22737b){var _0x15eff3={'raw':!![],'where':{'id':_0x2e96d9[_0x4998('0x46')]['id']}},_0x23581e={};_0x23581e[_0x4998('0x37')]=_[_0x4998('0x33')](db[_0x4998('0x2d')][_0x4998('0x2e')]);_0x23581e[_0x4998('0x34')]=_[_0x4998('0x33')](_0x2e96d9['query']);_0x23581e[_0x4998('0x35')]=_[_0x4998('0x36')](_0x23581e[_0x4998('0x37')],_0x23581e['query']);_0x15eff3[_0x4998('0x38')]=_[_0x4998('0x36')](_0x23581e[_0x4998('0x37')],qs[_0x4998('0x39')](_0x2e96d9[_0x4998('0x34')][_0x4998('0x39')]));_0x15eff3['attributes']=_0x15eff3[_0x4998('0x38')][_0x4998('0x3a')]?_0x15eff3[_0x4998('0x38')]:_0x23581e[_0x4998('0x37')];if(_0x2e96d9[_0x4998('0x34')]['includeAll']){_0x15eff3[_0x4998('0x47')]=[{'all':!![]}];}_0x15eff3=_['merge']({},_0x15eff3,_0x2e96d9['options']);return db[_0x4998('0x2d')][_0x4998('0x48')](_0x15eff3)[_0x4998('0x27')](handleEntityNotFound(_0x22737b,null))[_0x4998('0x27')](respondWithResult(_0x22737b,null))[_0x4998('0x44')](handleError(_0x22737b,null));};exports[_0x4998('0x49')]=function(_0x514520,_0x4393a7){var _0x416f4b={'where':{'id':_0x514520[_0x4998('0x46')]['id']}},_0x335c1f={};_0x335c1f[_0x4998('0x37')]=_['keys'](db['Attachment'][_0x4998('0x2e')]);_0x416f4b[_0x4998('0x38')]=_['intersection'](_0x335c1f[_0x4998('0x37')],qs[_0x4998('0x39')](_0x514520[_0x4998('0x34')][_0x4998('0x39')]));_0x416f4b[_0x4998('0x38')]=_0x416f4b[_0x4998('0x38')][_0x4998('0x3a')]?_0x416f4b['attributes']:_0x335c1f[_0x4998('0x37')];if(_0x514520[_0x4998('0x34')][_0x4998('0x42')]){_0x416f4b[_0x4998('0x47')]=[{'all':!![]}];}_0x416f4b=_[_0x4998('0x4a')]({},_0x416f4b,_0x514520[_0x4998('0x41')]);return db[_0x4998('0x2d')][_0x4998('0x48')](_0x416f4b)[_0x4998('0x27')](handleEntityNotFound(_0x4393a7,null))[_0x4998('0x27')](function(_0x167a14){if(_0x167a14){var _0x2768b0=_0x167a14[_0x4998('0x4b')]({'plain':!![]});_0x2768b0=qs[_0x4998('0x4c')](_0x2768b0,['id',_0x4998('0x4d'),'updatedAt']);_0x514520[_0x4998('0x4e')]=_['omit'](_0x514520['body'],['id',_0x4998('0x4d'),_0x4998('0x4f')]);return db[_0x4998('0x2d')][_0x4998('0x50')](_['merge'](_0x2768b0,_0x514520[_0x4998('0x4e')]),{'include':_0x514520[_0x4998('0x34')][_0x4998('0x42')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x4393a7,0xc9))[_0x4998('0x44')](handleError(_0x4393a7,null));};exports['update']=function(_0x3b655c,_0x4a6279){if(_0x3b655c[_0x4998('0x4e')]['id']){delete _0x3b655c[_0x4998('0x4e')]['id'];}return db[_0x4998('0x2d')][_0x4998('0x48')]({'where':{'id':_0x3b655c['params']['id']}})[_0x4998('0x27')](handleEntityNotFound(_0x4a6279,null))[_0x4998('0x27')](saveUpdates(_0x3b655c['body'],null))[_0x4998('0x27')](respondWithResult(_0x4a6279,null))[_0x4998('0x44')](handleError(_0x4a6279,null));};exports['destroy']=function(_0x4c22e7,_0x28654f){return db[_0x4998('0x2d')][_0x4998('0x48')]({'where':{'id':_0x4c22e7[_0x4998('0x46')]['id']}})[_0x4998('0x27')](handleEntityNotFound(_0x28654f,null))[_0x4998('0x27')](removeEntity(_0x28654f,null))['catch'](handleError(_0x28654f,null));};exports[_0x4998('0x50')]=function(_0x2e1967,_0x1b57d2,_0xb5dfea){_0x2e1967[_0x4998('0x4e')]['name']=_0x2e1967[_0x4998('0x51')]['originalname'];_0x2e1967[_0x4998('0x4e')][_0x4998('0x52')]=_0x2e1967[_0x4998('0x51')][_0x4998('0x53')];_0x2e1967['body'][_0x4998('0x2f')]=_0x2e1967[_0x4998('0x51')]['mimetype'];return db[_0x4998('0x2d')][_0x4998('0x50')](_0x2e1967['body'])['then'](respondWithResult(_0x1b57d2,0xc9))['catch'](handleError(_0x1b57d2,null));};exports[_0x4998('0x54')]=function(_0x188996,_0x2956b2,_0x462964){return db[_0x4998('0x2d')][_0x4998('0x55')]({'where':{'id':_0x188996[_0x4998('0x46')]['id']},'raw':!![]})[_0x4998('0x27')](handleEntityNotFound(_0x2956b2,null))['then'](function(_0x1a5678){if(_0x1a5678){var _0x131497=_0x1a5678[_0x4998('0x56')]!==null;var _0x1c9de6=path['join'](config[_0x4998('0x57')],_0x4998('0x58'));if(_0x131497){_0x1c9de6=path[_0x4998('0x59')](_0x1c9de6,_0x4998('0x5a'));}var _0xb47fef=path[_0x4998('0x59')](_0x1c9de6,_0x1a5678['basename']);return _0x2956b2[_0x4998('0x54')](_0xb47fef);}})['catch'](handleError(_0x2956b2,null));};