Built motion from commit f7863d46.|2.5.41
[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 _0xa929=['find','clone','get','createdAt','updatedAt','body','omit','update','create','file','basename','filename','download','findOne','ChatOfflineMessageId','join','server/files/attachments/','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','then','destroy','stack','name','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','fields','attributes','length','order','where','pick','filter','VIRTUAL','merge','options','Attachment','includeAll','findAll','rows','catch','show','params','keys','include'];(function(_0x15d138,_0xf41ee8){var _0x861854=function(_0x4192bd){while(--_0x4192bd){_0x15d138['push'](_0x15d138['shift']());}};_0x861854(++_0xf41ee8);}(_0xa929,0xc1));var _0x9a92=function(_0x41c6ac,_0x496271){_0x41c6ac=_0x41c6ac-0x0;var _0x2d71d6=_0xa929[_0x41c6ac];return _0x2d71d6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9a92('0x0'));var zipdir=require(_0x9a92('0x1'));var jsonpatch=require(_0x9a92('0x2'));var rp=require(_0x9a92('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9a92('0x4'));var util=require(_0x9a92('0x5'));var path=require(_0x9a92('0x6'));var sox=require(_0x9a92('0x7'));var csv=require(_0x9a92('0x8'));var ejs=require(_0x9a92('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9a92('0xa'));var crypto=require(_0x9a92('0xb'));var jsforce=require(_0x9a92('0xc'));var deskjs=require(_0x9a92('0xd'));var toCsv=require(_0x9a92('0x8'));var querystring=require(_0x9a92('0xe'));var Papa=require(_0x9a92('0xf'));var Redis=require(_0x9a92('0x10'));var authService=require(_0x9a92('0x11'));var qs=require(_0x9a92('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9a92('0x13'));var logger=require(_0x9a92('0x14'))(_0x9a92('0x15'));var utils=require(_0x9a92('0x16'));var config=require(_0x9a92('0x17'));var licenseUtil=require(_0x9a92('0x18'));var db=require(_0x9a92('0x19'))['db'];function respondWithStatusCode(_0x3a2983,_0x56899b){_0x56899b=_0x56899b||0xcc;return function(_0x18633c){if(_0x18633c){return _0x3a2983[_0x9a92('0x1a')](_0x56899b);}return _0x3a2983[_0x9a92('0x1b')](_0x56899b)[_0x9a92('0x1c')]();};}function respondWithResult(_0x275e90,_0x3e9c31){_0x3e9c31=_0x3e9c31||0xc8;return function(_0x10f77a){if(_0x10f77a){return _0x275e90['status'](_0x3e9c31)[_0x9a92('0x1d')](_0x10f77a);}};}function respondWithFilteredResult(_0x36f823,_0x254a5b){return function(_0x3e65e6){if(_0x3e65e6){var _0x57be7c=typeof _0x254a5b[_0x9a92('0x1e')]===_0x9a92('0x1f')&&typeof _0x254a5b[_0x9a92('0x20')]===_0x9a92('0x1f');var _0x4578=_0x3e65e6[_0x9a92('0x21')];var _0x51b3d6=_0x57be7c?0x0:_0x254a5b[_0x9a92('0x1e')];var _0x51628d=_0x57be7c?_0x3e65e6[_0x9a92('0x21')]:_0x254a5b[_0x9a92('0x1e')]+_0x254a5b[_0x9a92('0x20')];var _0x188093;if(_0x51628d>=_0x4578){_0x51628d=_0x4578;_0x188093=0xc8;}else{_0x188093=0xce;}_0x36f823[_0x9a92('0x1b')](_0x188093);return _0x36f823[_0x9a92('0x22')](_0x9a92('0x23'),_0x51b3d6+'-'+_0x51628d+'/'+_0x4578)[_0x9a92('0x1d')](_0x3e65e6);}return null;};}function patchUpdates(_0x593e7f){return function(_0x416d74){try{jsonpatch[_0x9a92('0x24')](_0x416d74,_0x593e7f,!![]);}catch(_0x4f57d8){return BPromise[_0x9a92('0x25')](_0x4f57d8);}return _0x416d74['save']();};}function saveUpdates(_0x110ed2,_0x334f34){return function(_0x3e6d68){if(_0x3e6d68){return _0x3e6d68['update'](_0x110ed2)[_0x9a92('0x26')](function(_0x5594a8){return _0x5594a8;});}return null;};}function removeEntity(_0x27bced,_0x39b846){return function(_0x1e96d1){if(_0x1e96d1){return _0x1e96d1[_0x9a92('0x27')]()[_0x9a92('0x26')](function(){_0x27bced[_0x9a92('0x1b')](0xcc)[_0x9a92('0x1c')]();});}};}function handleEntityNotFound(_0x587c5a,_0x2f3d13){return function(_0x295b37){if(!_0x295b37){_0x587c5a[_0x9a92('0x1a')](0x194);}return _0x295b37;};}function handleError(_0x4594a1,_0x1e6412){_0x1e6412=_0x1e6412||0x1f4;return function(_0x39f8ba){logger['error'](_0x39f8ba[_0x9a92('0x28')]);if(_0x39f8ba[_0x9a92('0x29')]){delete _0x39f8ba['name'];}_0x4594a1['status'](_0x1e6412)['send'](_0x39f8ba);};}exports[_0x9a92('0x2a')]=function(_0x196d3e,_0x4ce04b){var _0x113fb3={},_0x5ebe5a={},_0x10783d={'count':0x0,'rows':[]};var _0x44833d=_[_0x9a92('0x2b')](db['Attachment'][_0x9a92('0x2c')],function(_0x2fcb1e){return{'name':_0x2fcb1e[_0x9a92('0x2d')],'type':_0x2fcb1e[_0x9a92('0x2e')][_0x9a92('0x2f')]};});_0x5ebe5a['model']=_[_0x9a92('0x2b')](_0x44833d,_0x9a92('0x29'));_0x5ebe5a['query']=_['keys'](_0x196d3e[_0x9a92('0x30')]);_0x5ebe5a[_0x9a92('0x31')]=_[_0x9a92('0x32')](_0x5ebe5a[_0x9a92('0x33')],_0x5ebe5a[_0x9a92('0x30')]);_0x113fb3['attributes']=_[_0x9a92('0x32')](_0x5ebe5a[_0x9a92('0x33')],qs[_0x9a92('0x34')](_0x196d3e[_0x9a92('0x30')]['fields']));_0x113fb3[_0x9a92('0x35')]=_0x113fb3['attributes'][_0x9a92('0x36')]?_0x113fb3[_0x9a92('0x35')]:_0x5ebe5a[_0x9a92('0x33')];if(!_0x196d3e[_0x9a92('0x30')]['hasOwnProperty']('nolimit')){_0x113fb3[_0x9a92('0x20')]=qs['limit'](_0x196d3e['query'][_0x9a92('0x20')]);_0x113fb3[_0x9a92('0x1e')]=qs[_0x9a92('0x1e')](_0x196d3e[_0x9a92('0x30')][_0x9a92('0x1e')]);}_0x113fb3[_0x9a92('0x37')]=qs['sort'](_0x196d3e[_0x9a92('0x30')]['sort']);_0x113fb3[_0x9a92('0x38')]=qs[_0x9a92('0x31')](_[_0x9a92('0x39')](_0x196d3e[_0x9a92('0x30')],_0x5ebe5a[_0x9a92('0x31')]),_0x44833d);if(_0x196d3e[_0x9a92('0x30')][_0x9a92('0x3a')]){_0x113fb3[_0x9a92('0x38')]=_['merge'](_0x113fb3[_0x9a92('0x38')],{'$or':_[_0x9a92('0x2b')](_0x44833d,function(_0x36d398){if(_0x36d398[_0x9a92('0x2e')]!==_0x9a92('0x3b')){var _0x25ad4d={};_0x25ad4d[_0x36d398[_0x9a92('0x29')]]={'$like':'%'+_0x196d3e['query']['filter']+'%'};return _0x25ad4d;}})});}_0x113fb3=_[_0x9a92('0x3c')]({},_0x113fb3,_0x196d3e[_0x9a92('0x3d')]);var _0x56f92f={'where':_0x113fb3[_0x9a92('0x38')]};return db[_0x9a92('0x3e')]['count'](_0x56f92f)['then'](function(_0x15a068){_0x10783d[_0x9a92('0x21')]=_0x15a068;if(_0x196d3e[_0x9a92('0x30')][_0x9a92('0x3f')]){_0x113fb3['include']=[{'all':!![]}];}return db[_0x9a92('0x3e')][_0x9a92('0x40')](_0x113fb3);})['then'](function(_0x178bdc){_0x10783d[_0x9a92('0x41')]=_0x178bdc;return _0x10783d;})[_0x9a92('0x26')](respondWithFilteredResult(_0x4ce04b,_0x113fb3))[_0x9a92('0x42')](handleError(_0x4ce04b,null));};exports[_0x9a92('0x43')]=function(_0x4494d3,_0x5613c6){var _0x103266={'raw':!![],'where':{'id':_0x4494d3[_0x9a92('0x44')]['id']}},_0x317b5d={};_0x317b5d['model']=_[_0x9a92('0x45')](db[_0x9a92('0x3e')][_0x9a92('0x2c')]);_0x317b5d[_0x9a92('0x30')]=_['keys'](_0x4494d3[_0x9a92('0x30')]);_0x317b5d[_0x9a92('0x31')]=_[_0x9a92('0x32')](_0x317b5d[_0x9a92('0x33')],_0x317b5d[_0x9a92('0x30')]);_0x103266[_0x9a92('0x35')]=_[_0x9a92('0x32')](_0x317b5d['model'],qs[_0x9a92('0x34')](_0x4494d3[_0x9a92('0x30')][_0x9a92('0x34')]));_0x103266[_0x9a92('0x35')]=_0x103266[_0x9a92('0x35')]['length']?_0x103266[_0x9a92('0x35')]:_0x317b5d[_0x9a92('0x33')];if(_0x4494d3[_0x9a92('0x30')][_0x9a92('0x3f')]){_0x103266[_0x9a92('0x46')]=[{'all':!![]}];}_0x103266=_['merge']({},_0x103266,_0x4494d3[_0x9a92('0x3d')]);return db[_0x9a92('0x3e')][_0x9a92('0x47')](_0x103266)[_0x9a92('0x26')](handleEntityNotFound(_0x5613c6,null))['then'](respondWithResult(_0x5613c6,null))[_0x9a92('0x42')](handleError(_0x5613c6,null));};exports[_0x9a92('0x48')]=function(_0x4916d3,_0x3cec09){var _0x1b04d0={'where':{'id':_0x4916d3[_0x9a92('0x44')]['id']}},_0x829a5a={};_0x829a5a[_0x9a92('0x33')]=_[_0x9a92('0x45')](db[_0x9a92('0x3e')][_0x9a92('0x2c')]);_0x1b04d0['attributes']=_[_0x9a92('0x32')](_0x829a5a[_0x9a92('0x33')],qs[_0x9a92('0x34')](_0x4916d3[_0x9a92('0x30')][_0x9a92('0x34')]));_0x1b04d0[_0x9a92('0x35')]=_0x1b04d0[_0x9a92('0x35')][_0x9a92('0x36')]?_0x1b04d0['attributes']:_0x829a5a[_0x9a92('0x33')];if(_0x4916d3[_0x9a92('0x30')]['includeAll']){_0x1b04d0[_0x9a92('0x46')]=[{'all':!![]}];}_0x1b04d0=_[_0x9a92('0x3c')]({},_0x1b04d0,_0x4916d3[_0x9a92('0x3d')]);return db['Attachment'][_0x9a92('0x47')](_0x1b04d0)[_0x9a92('0x26')](handleEntityNotFound(_0x3cec09,null))[_0x9a92('0x26')](function(_0x1aed8a){if(_0x1aed8a){var _0x48ad3f=_0x1aed8a[_0x9a92('0x49')]({'plain':!![]});_0x48ad3f=qs['omit'](_0x48ad3f,['id',_0x9a92('0x4a'),_0x9a92('0x4b')]);_0x4916d3[_0x9a92('0x4c')]=_[_0x9a92('0x4d')](_0x4916d3[_0x9a92('0x4c')],['id',_0x9a92('0x4a'),_0x9a92('0x4b')]);return db[_0x9a92('0x3e')]['create'](_[_0x9a92('0x3c')](_0x48ad3f,_0x4916d3[_0x9a92('0x4c')]),{'include':_0x4916d3['query']['includeAll']?[{'all':!![]}]:undefined});}})[_0x9a92('0x26')](respondWithResult(_0x3cec09,0xc9))[_0x9a92('0x42')](handleError(_0x3cec09,null));};exports[_0x9a92('0x4e')]=function(_0x1017d9,_0x16369e){if(_0x1017d9[_0x9a92('0x4c')]['id']){delete _0x1017d9[_0x9a92('0x4c')]['id'];}return db[_0x9a92('0x3e')][_0x9a92('0x47')]({'where':{'id':_0x1017d9[_0x9a92('0x44')]['id']}})['then'](handleEntityNotFound(_0x16369e,null))[_0x9a92('0x26')](saveUpdates(_0x1017d9['body'],null))['then'](respondWithResult(_0x16369e,null))['catch'](handleError(_0x16369e,null));};exports['destroy']=function(_0x518042,_0x3af3b7){return db[_0x9a92('0x3e')][_0x9a92('0x47')]({'where':{'id':_0x518042[_0x9a92('0x44')]['id']}})['then'](handleEntityNotFound(_0x3af3b7,null))[_0x9a92('0x26')](removeEntity(_0x3af3b7,null))['catch'](handleError(_0x3af3b7,null));};exports[_0x9a92('0x4f')]=function(_0x321873,_0x36a6d6,_0x226e74){_0x321873[_0x9a92('0x4c')][_0x9a92('0x29')]=_0x321873[_0x9a92('0x50')]['originalname'];_0x321873[_0x9a92('0x4c')][_0x9a92('0x51')]=_0x321873[_0x9a92('0x50')][_0x9a92('0x52')];_0x321873[_0x9a92('0x4c')]['type']=_0x321873[_0x9a92('0x50')]['mimetype'];return db['Attachment'][_0x9a92('0x4f')](_0x321873[_0x9a92('0x4c')])[_0x9a92('0x26')](respondWithResult(_0x36a6d6,0xc9))[_0x9a92('0x42')](handleError(_0x36a6d6,null));};exports[_0x9a92('0x53')]=function(_0x2309c1,_0x4d144a,_0x493812){return db[_0x9a92('0x3e')][_0x9a92('0x54')]({'where':{'id':_0x2309c1[_0x9a92('0x44')]['id']},'raw':!![]})[_0x9a92('0x26')](handleEntityNotFound(_0x4d144a,null))[_0x9a92('0x26')](function(_0x1c4642){if(_0x1c4642){var _0x590afc=_0x1c4642[_0x9a92('0x55')]!==null;var _0xb058e1=path[_0x9a92('0x56')](config['root'],_0x9a92('0x57'));if(_0x590afc){_0xb058e1=path[_0x9a92('0x56')](_0xb058e1,'offline-chat/');}var _0x15d57d=path[_0x9a92('0x56')](_0xb058e1,_0x1c4642[_0x9a92('0x51')]);return _0x4d144a[_0x9a92('0x53')](_0x15d57d);}})[_0x9a92('0x42')](handleError(_0x4d144a,null));};