Built motion from commit (unavailable).|2.5.31
[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 _0x6bd4=['../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','update','then','destroy','send','render','merge','body','message','agent','interaction','account','index','map','rawAttributes','fieldName','type','key','model','name','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','Attachment','rows','catch','show','params','find','get','omit','createdAt','updatedAt','create','file','basename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x55ee0c,_0x51b713){var _0x2d8f6b=function(_0x4c217c){while(--_0x4c217c){_0x55ee0c['push'](_0x55ee0c['shift']());}};_0x2d8f6b(++_0x51b713);}(_0x6bd4,0x1b2));var _0x46bd=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0x6bd4[_0x17b6e3];return _0x3906f3;};'use strict';var emlformat=require(_0x46bd('0x0'));var rimraf=require(_0x46bd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x46bd('0x2'));var moment=require(_0x46bd('0x3'));var BPromise=require(_0x46bd('0x4'));var Mustache=require(_0x46bd('0x5'));var util=require(_0x46bd('0x6'));var path=require(_0x46bd('0x7'));var sox=require(_0x46bd('0x8'));var csv=require(_0x46bd('0x9'));var ejs=require(_0x46bd('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x46bd('0xb'));var squel=require(_0x46bd('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x46bd('0xd'));var toCsv=require('to-csv');var querystring=require(_0x46bd('0xe'));var Papa=require(_0x46bd('0xf'));var Redis=require(_0x46bd('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x46bd('0x11'));var logger=require(_0x46bd('0x12'))(_0x46bd('0x13'));var utils=require(_0x46bd('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x46bd('0x15'));var db=require(_0x46bd('0x16'))['db'];function respondWithStatusCode(_0x4d586d,_0x49284d){_0x49284d=_0x49284d||0xcc;return function(_0x1f0141){if(_0x1f0141){return _0x4d586d[_0x46bd('0x17')](_0x49284d);}return _0x4d586d[_0x46bd('0x18')](_0x49284d)[_0x46bd('0x19')]();};}function respondWithResult(_0x3f5412,_0x5ed420){_0x5ed420=_0x5ed420||0xc8;return function(_0x36e9c3){if(_0x36e9c3){return _0x3f5412[_0x46bd('0x18')](_0x5ed420)['json'](_0x36e9c3);}};}function respondWithFilteredResult(_0x4406c4,_0xb0c162){return function(_0x3aa267){if(_0x3aa267){var _0x28b5db=typeof _0xb0c162[_0x46bd('0x1a')]===_0x46bd('0x1b')&&typeof _0xb0c162[_0x46bd('0x1c')]===_0x46bd('0x1b');var _0xf3d78c=_0x3aa267['count'];var _0xe8c5e2=_0x28b5db?0x0:_0xb0c162['offset'];var _0x3b9d1a=_0x28b5db?_0x3aa267[_0x46bd('0x1d')]:_0xb0c162[_0x46bd('0x1a')]+_0xb0c162[_0x46bd('0x1c')];var _0x503665;if(_0x3b9d1a>=_0xf3d78c){_0x3b9d1a=_0xf3d78c;_0x503665=0xc8;}else{_0x503665=0xce;}_0x4406c4[_0x46bd('0x18')](_0x503665);return _0x4406c4[_0x46bd('0x1e')]('Content-Range',_0xe8c5e2+'-'+_0x3b9d1a+'/'+_0xf3d78c)[_0x46bd('0x1f')](_0x3aa267);}return null;};}function patchUpdates(_0x5505f2){return function(_0x1e9fcb){try{jsonpatch[_0x46bd('0x20')](_0x1e9fcb,_0x5505f2,!![]);}catch(_0x34dec6){return BPromise['reject'](_0x34dec6);}return _0x1e9fcb['save']();};}function saveUpdates(_0x37e702,_0x3b759c){return function(_0xd36dcb){if(_0xd36dcb){return _0xd36dcb[_0x46bd('0x21')](_0x37e702)[_0x46bd('0x22')](function(_0x80ff54){return _0x80ff54;});}return null;};}function removeEntity(_0x33bcd7,_0x208c20){return function(_0x4ec149){if(_0x4ec149){return _0x4ec149[_0x46bd('0x23')]()[_0x46bd('0x22')](function(){_0x33bcd7['status'](0xcc)[_0x46bd('0x19')]();});}};}function handleEntityNotFound(_0x3821d2,_0x5b9ad0){return function(_0x268c88){if(!_0x268c88){_0x3821d2[_0x46bd('0x17')](0x194);}return _0x268c88;};}function handleError(_0x5b824f,_0x362fba){_0x362fba=_0x362fba||0x1f4;return function(_0x29b1cd){logger['error'](_0x29b1cd['stack']);if(_0x29b1cd['name']){delete _0x29b1cd['name'];}_0x5b824f[_0x46bd('0x18')](_0x362fba)[_0x46bd('0x24')](_0x29b1cd);};}function getMustacheRender(_0x29b4fa,_0x5ff485){return Mustache[_0x46bd('0x25')](_0x29b4fa,_[_0x46bd('0x26')](_0x5ff485[_0x46bd('0x27')],{'contact':_0x5ff485['contact'],'message':_0x5ff485[_0x46bd('0x28')],'agent':_0x5ff485[_0x46bd('0x29')],'interaction':_0x5ff485[_0x46bd('0x2a')],'account':_0x5ff485[_0x46bd('0x2b')]}))||'';}exports[_0x46bd('0x2c')]=function(_0x309908,_0x5da82f){var _0x51ae76={},_0x2c64f3={},_0x11f8ad={'count':0x0,'rows':[]};var _0x49bb29=_[_0x46bd('0x2d')](db['Attachment'][_0x46bd('0x2e')],function(_0x54708f){return{'name':_0x54708f[_0x46bd('0x2f')],'type':_0x54708f[_0x46bd('0x30')][_0x46bd('0x31')]};});_0x2c64f3[_0x46bd('0x32')]=_[_0x46bd('0x2d')](_0x49bb29,_0x46bd('0x33'));_0x2c64f3['query']=_[_0x46bd('0x34')](_0x309908[_0x46bd('0x35')]);_0x2c64f3[_0x46bd('0x36')]=_[_0x46bd('0x37')](_0x2c64f3['model'],_0x2c64f3['query']);_0x51ae76['attributes']=_[_0x46bd('0x37')](_0x2c64f3[_0x46bd('0x32')],qs['fields'](_0x309908[_0x46bd('0x35')][_0x46bd('0x38')]));_0x51ae76['attributes']=_0x51ae76[_0x46bd('0x39')][_0x46bd('0x3a')]?_0x51ae76[_0x46bd('0x39')]:_0x2c64f3[_0x46bd('0x32')];if(!_0x309908[_0x46bd('0x35')][_0x46bd('0x3b')](_0x46bd('0x3c'))){_0x51ae76[_0x46bd('0x1c')]=qs['limit'](_0x309908[_0x46bd('0x35')][_0x46bd('0x1c')]);_0x51ae76[_0x46bd('0x1a')]=qs[_0x46bd('0x1a')](_0x309908[_0x46bd('0x35')][_0x46bd('0x1a')]);}_0x51ae76[_0x46bd('0x3d')]=qs['sort'](_0x309908[_0x46bd('0x35')][_0x46bd('0x3e')]);_0x51ae76[_0x46bd('0x3f')]=qs[_0x46bd('0x36')](_[_0x46bd('0x40')](_0x309908[_0x46bd('0x35')],_0x2c64f3[_0x46bd('0x36')]),_0x49bb29);if(_0x309908['query'][_0x46bd('0x41')]){_0x51ae76[_0x46bd('0x3f')]=_[_0x46bd('0x26')](_0x51ae76[_0x46bd('0x3f')],{'$or':_['map'](_0x49bb29,function(_0x3525c7){if(_0x3525c7['type']!==_0x46bd('0x42')){var _0x49e674={};_0x49e674[_0x3525c7[_0x46bd('0x33')]]={'$like':'%'+_0x309908[_0x46bd('0x35')][_0x46bd('0x41')]+'%'};return _0x49e674;}})});}_0x51ae76=_[_0x46bd('0x26')]({},_0x51ae76,_0x309908[_0x46bd('0x43')]);var _0x265435={'where':_0x51ae76['where']};return db['Attachment'][_0x46bd('0x1d')](_0x265435)[_0x46bd('0x22')](function(_0x30f9b6){_0x11f8ad[_0x46bd('0x1d')]=_0x30f9b6;if(_0x309908[_0x46bd('0x35')][_0x46bd('0x44')]){_0x51ae76[_0x46bd('0x45')]=[{'all':!![]}];}return db[_0x46bd('0x46')]['findAll'](_0x51ae76);})[_0x46bd('0x22')](function(_0x1ace91){_0x11f8ad[_0x46bd('0x47')]=_0x1ace91;return _0x11f8ad;})[_0x46bd('0x22')](respondWithFilteredResult(_0x5da82f,_0x51ae76))[_0x46bd('0x48')](handleError(_0x5da82f,null));};exports[_0x46bd('0x49')]=function(_0x275873,_0x16b631){var _0x3b6c23={'raw':!![],'where':{'id':_0x275873[_0x46bd('0x4a')]['id']}},_0x28fe2e={};_0x28fe2e[_0x46bd('0x32')]=_[_0x46bd('0x34')](db['Attachment'][_0x46bd('0x2e')]);_0x28fe2e[_0x46bd('0x35')]=_[_0x46bd('0x34')](_0x275873[_0x46bd('0x35')]);_0x28fe2e[_0x46bd('0x36')]=_['intersection'](_0x28fe2e[_0x46bd('0x32')],_0x28fe2e['query']);_0x3b6c23[_0x46bd('0x39')]=_[_0x46bd('0x37')](_0x28fe2e[_0x46bd('0x32')],qs['fields'](_0x275873[_0x46bd('0x35')][_0x46bd('0x38')]));_0x3b6c23['attributes']=_0x3b6c23[_0x46bd('0x39')]['length']?_0x3b6c23[_0x46bd('0x39')]:_0x28fe2e['model'];if(_0x275873[_0x46bd('0x35')][_0x46bd('0x44')]){_0x3b6c23['include']=[{'all':!![]}];}_0x3b6c23=_[_0x46bd('0x26')]({},_0x3b6c23,_0x275873['options']);return db['Attachment'][_0x46bd('0x4b')](_0x3b6c23)[_0x46bd('0x22')](handleEntityNotFound(_0x16b631,null))[_0x46bd('0x22')](respondWithResult(_0x16b631,null))['catch'](handleError(_0x16b631,null));};exports['clone']=function(_0x2480a9,_0x34bec4){var _0x41de22={'where':{'id':_0x2480a9[_0x46bd('0x4a')]['id']}},_0x4f7e35={};_0x4f7e35[_0x46bd('0x32')]=_[_0x46bd('0x34')](db[_0x46bd('0x46')][_0x46bd('0x2e')]);_0x41de22[_0x46bd('0x39')]=_['intersection'](_0x4f7e35['model'],qs[_0x46bd('0x38')](_0x2480a9[_0x46bd('0x35')][_0x46bd('0x38')]));_0x41de22[_0x46bd('0x39')]=_0x41de22[_0x46bd('0x39')][_0x46bd('0x3a')]?_0x41de22[_0x46bd('0x39')]:_0x4f7e35['model'];if(_0x2480a9['query'][_0x46bd('0x44')]){_0x41de22[_0x46bd('0x45')]=[{'all':!![]}];}_0x41de22=_[_0x46bd('0x26')]({},_0x41de22,_0x2480a9[_0x46bd('0x43')]);return db[_0x46bd('0x46')][_0x46bd('0x4b')](_0x41de22)[_0x46bd('0x22')](handleEntityNotFound(_0x34bec4,null))['then'](function(_0x1f0acd){if(_0x1f0acd){var _0x58bf81=_0x1f0acd[_0x46bd('0x4c')]({'plain':!![]});_0x58bf81=qs[_0x46bd('0x4d')](_0x58bf81,['id',_0x46bd('0x4e'),_0x46bd('0x4f')]);_0x2480a9[_0x46bd('0x27')]=_[_0x46bd('0x4d')](_0x2480a9[_0x46bd('0x27')],['id',_0x46bd('0x4e'),'updatedAt']);return db['Attachment'][_0x46bd('0x50')](_[_0x46bd('0x26')](_0x58bf81,_0x2480a9[_0x46bd('0x27')]),{'include':_0x2480a9[_0x46bd('0x35')][_0x46bd('0x44')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x34bec4,0xc9))[_0x46bd('0x48')](handleError(_0x34bec4,null));};exports[_0x46bd('0x21')]=function(_0x191c5a,_0x46c345){if(_0x191c5a[_0x46bd('0x27')]['id']){delete _0x191c5a[_0x46bd('0x27')]['id'];}return db['Attachment'][_0x46bd('0x4b')]({'where':{'id':_0x191c5a[_0x46bd('0x4a')]['id']}})[_0x46bd('0x22')](handleEntityNotFound(_0x46c345,null))['then'](saveUpdates(_0x191c5a[_0x46bd('0x27')],null))['then'](respondWithResult(_0x46c345,null))['catch'](handleError(_0x46c345,null));};exports[_0x46bd('0x23')]=function(_0x267eba,_0x14f9e7){return db['Attachment'][_0x46bd('0x4b')]({'where':{'id':_0x267eba[_0x46bd('0x4a')]['id']}})[_0x46bd('0x22')](handleEntityNotFound(_0x14f9e7,null))['then'](removeEntity(_0x14f9e7,null))['catch'](handleError(_0x14f9e7,null));};exports[_0x46bd('0x50')]=function(_0x4acb2f,_0x494b73,_0x4aec93){_0x4acb2f[_0x46bd('0x27')]['name']=_0x4acb2f[_0x46bd('0x51')]['originalname'];_0x4acb2f[_0x46bd('0x27')][_0x46bd('0x52')]=_0x4acb2f[_0x46bd('0x51')]['filename'];_0x4acb2f[_0x46bd('0x27')]['type']=_0x4acb2f[_0x46bd('0x51')][_0x46bd('0x53')];return db[_0x46bd('0x46')][_0x46bd('0x50')](_0x4acb2f[_0x46bd('0x27')])[_0x46bd('0x22')](respondWithResult(_0x494b73,0xc9))['catch'](handleError(_0x494b73,null));};exports[_0x46bd('0x54')]=function(_0x5959dc,_0x4d2bcb,_0xce4a88){return db[_0x46bd('0x46')][_0x46bd('0x55')]({'where':{'id':_0x5959dc[_0x46bd('0x4a')]['id']},'raw':!![]})[_0x46bd('0x22')](handleEntityNotFound(_0x4d2bcb,null))[_0x46bd('0x22')](function(_0x176d06){if(_0x176d06){var _0x46d3b4=_0x176d06[_0x46bd('0x56')]!==null;var _0x22b014=path[_0x46bd('0x57')](config[_0x46bd('0x58')],_0x46bd('0x59'));if(_0x46d3b4){_0x22b014=path[_0x46bd('0x57')](_0x22b014,_0x46bd('0x5a'));}var _0x3f951a=path[_0x46bd('0x57')](_0x22b014,_0x176d06[_0x46bd('0x52')]);return _0x4d2bcb[_0x46bd('0x54')](_0x3f951a);}})['catch'](handleError(_0x4d2bcb,null));};