bf69decf6bcddd92e8834f1cb819652e6002ca2e
[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 _0x6af8=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','offset','undefined','count','set','Content-Range','reject','update','then','destroy','error','name','send','index','Attachment','rawAttributes','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','limit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','find','clone','get','omit','createdAt','updatedAt','body','create','file','filename','mimetype','download','ChatOfflineMessageId','join','basename','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x110a30,_0x1ec1e0){var _0x5f0e4f=function(_0x211ea0){while(--_0x211ea0){_0x110a30['push'](_0x110a30['shift']());}};_0x5f0e4f(++_0x1ec1e0);}(_0x6af8,0xe7));var _0x86af=function(_0x981675,_0x59feff){_0x981675=_0x981675-0x0;var _0x566cf4=_0x6af8[_0x981675];return _0x566cf4;};'use strict';var emlformat=require(_0x86af('0x0'));var rimraf=require(_0x86af('0x1'));var zipdir=require(_0x86af('0x2'));var jsonpatch=require(_0x86af('0x3'));var rp=require(_0x86af('0x4'));var moment=require(_0x86af('0x5'));var BPromise=require(_0x86af('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x86af('0x7'));var sox=require('sox');var csv=require(_0x86af('0x8'));var ejs=require(_0x86af('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x86af('0xa'));var crypto=require(_0x86af('0xb'));var jsforce=require(_0x86af('0xc'));var deskjs=require(_0x86af('0xd'));var toCsv=require('to-csv');var querystring=require(_0x86af('0xe'));var Papa=require('papaparse');var Redis=require(_0x86af('0xf'));var authService=require(_0x86af('0x10'));var qs=require(_0x86af('0x11'));var as=require(_0x86af('0x12'));var hardwareService=require(_0x86af('0x13'));var logger=require(_0x86af('0x14'))(_0x86af('0x15'));var utils=require('../../config/utils');var config=require(_0x86af('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3c870b,_0x22ec55){_0x22ec55=_0x22ec55||0xcc;return function(_0x4be0ab){if(_0x4be0ab){return _0x3c870b[_0x86af('0x17')](_0x22ec55);}return _0x3c870b[_0x86af('0x18')](_0x22ec55)[_0x86af('0x19')]();};}function respondWithResult(_0xfd878,_0x2b563d){_0x2b563d=_0x2b563d||0xc8;return function(_0x46aa6b){if(_0x46aa6b){return _0xfd878[_0x86af('0x18')](_0x2b563d)['json'](_0x46aa6b);}};}function respondWithFilteredResult(_0x2a6ba1,_0x2205f9){return function(_0x44a5fa){if(_0x44a5fa){var _0x181da5=typeof _0x2205f9[_0x86af('0x1a')]===_0x86af('0x1b')&&typeof _0x2205f9['limit']===_0x86af('0x1b');var _0x36fb22=_0x44a5fa[_0x86af('0x1c')];var _0x90c30d=_0x181da5?0x0:_0x2205f9[_0x86af('0x1a')];var _0x5e7441=_0x181da5?_0x44a5fa[_0x86af('0x1c')]:_0x2205f9[_0x86af('0x1a')]+_0x2205f9['limit'];var _0x5f1c8c;if(_0x5e7441>=_0x36fb22){_0x5e7441=_0x36fb22;_0x5f1c8c=0xc8;}else{_0x5f1c8c=0xce;}_0x2a6ba1[_0x86af('0x18')](_0x5f1c8c);return _0x2a6ba1[_0x86af('0x1d')](_0x86af('0x1e'),_0x90c30d+'-'+_0x5e7441+'/'+_0x36fb22)['json'](_0x44a5fa);}return null;};}function patchUpdates(_0x2d5e8b){return function(_0x5e8271){try{jsonpatch['apply'](_0x5e8271,_0x2d5e8b,!![]);}catch(_0xe20753){return BPromise[_0x86af('0x1f')](_0xe20753);}return _0x5e8271['save']();};}function saveUpdates(_0x161bf8,_0x516902){return function(_0x17430b){if(_0x17430b){return _0x17430b[_0x86af('0x20')](_0x161bf8)[_0x86af('0x21')](function(_0x251a57){return _0x251a57;});}return null;};}function removeEntity(_0x5e83d7,_0x6aa612){return function(_0x1bb574){if(_0x1bb574){return _0x1bb574[_0x86af('0x22')]()[_0x86af('0x21')](function(){_0x5e83d7[_0x86af('0x18')](0xcc)[_0x86af('0x19')]();});}};}function handleEntityNotFound(_0x5565f6,_0x1ae07c){return function(_0x5961c8){if(!_0x5961c8){_0x5565f6[_0x86af('0x17')](0x194);}return _0x5961c8;};}function handleError(_0xd0eb7b,_0x5dae65){_0x5dae65=_0x5dae65||0x1f4;return function(_0x51b5a2){logger[_0x86af('0x23')](_0x51b5a2['stack']);if(_0x51b5a2[_0x86af('0x24')]){delete _0x51b5a2[_0x86af('0x24')];}_0xd0eb7b[_0x86af('0x18')](_0x5dae65)[_0x86af('0x25')](_0x51b5a2);};}exports[_0x86af('0x26')]=function(_0x44e322,_0x35f296){var _0x639b4d={},_0x13fa03={},_0x52c1a={'count':0x0,'rows':[]};var _0x2e64a8=_['map'](db[_0x86af('0x27')][_0x86af('0x28')],function(_0x4cd511){return{'name':_0x4cd511['fieldName'],'type':_0x4cd511[_0x86af('0x29')][_0x86af('0x2a')]};});_0x13fa03[_0x86af('0x2b')]=_[_0x86af('0x2c')](_0x2e64a8,_0x86af('0x24'));_0x13fa03['query']=_[_0x86af('0x2d')](_0x44e322[_0x86af('0x2e')]);_0x13fa03[_0x86af('0x2f')]=_[_0x86af('0x30')](_0x13fa03[_0x86af('0x2b')],_0x13fa03['query']);_0x639b4d['attributes']=_[_0x86af('0x30')](_0x13fa03[_0x86af('0x2b')],qs[_0x86af('0x31')](_0x44e322[_0x86af('0x2e')][_0x86af('0x31')]));_0x639b4d[_0x86af('0x32')]=_0x639b4d[_0x86af('0x32')][_0x86af('0x33')]?_0x639b4d[_0x86af('0x32')]:_0x13fa03[_0x86af('0x2b')];if(!_0x44e322[_0x86af('0x2e')][_0x86af('0x34')]('nolimit')){_0x639b4d[_0x86af('0x35')]=qs[_0x86af('0x35')](_0x44e322['query'][_0x86af('0x35')]);_0x639b4d[_0x86af('0x1a')]=qs[_0x86af('0x1a')](_0x44e322[_0x86af('0x2e')][_0x86af('0x1a')]);}_0x639b4d[_0x86af('0x36')]=qs[_0x86af('0x37')](_0x44e322[_0x86af('0x2e')][_0x86af('0x37')]);_0x639b4d['where']=qs['filters'](_[_0x86af('0x38')](_0x44e322[_0x86af('0x2e')],_0x13fa03[_0x86af('0x2f')]),_0x2e64a8);if(_0x44e322[_0x86af('0x2e')][_0x86af('0x39')]){_0x639b4d[_0x86af('0x3a')]=_[_0x86af('0x3b')](_0x639b4d['where'],{'$or':_[_0x86af('0x2c')](_0x2e64a8,function(_0x1c4294){if(_0x1c4294[_0x86af('0x29')]!==_0x86af('0x3c')){var _0x4627dc={};_0x4627dc[_0x1c4294[_0x86af('0x24')]]={'$like':'%'+_0x44e322[_0x86af('0x2e')]['filter']+'%'};return _0x4627dc;}})});}_0x639b4d=_[_0x86af('0x3b')]({},_0x639b4d,_0x44e322[_0x86af('0x3d')]);var _0xa78d94={'where':_0x639b4d[_0x86af('0x3a')]};return db[_0x86af('0x27')][_0x86af('0x1c')](_0xa78d94)[_0x86af('0x21')](function(_0x55a404){_0x52c1a[_0x86af('0x1c')]=_0x55a404;if(_0x44e322[_0x86af('0x2e')][_0x86af('0x3e')]){_0x639b4d[_0x86af('0x3f')]=[{'all':!![]}];}return db[_0x86af('0x27')]['findAll'](_0x639b4d);})[_0x86af('0x21')](function(_0x29d913){_0x52c1a[_0x86af('0x40')]=_0x29d913;return _0x52c1a;})['then'](respondWithFilteredResult(_0x35f296,_0x639b4d))[_0x86af('0x41')](handleError(_0x35f296,null));};exports[_0x86af('0x42')]=function(_0x5e6d74,_0x528df8){var _0x4c0e4d={'raw':!![],'where':{'id':_0x5e6d74[_0x86af('0x43')]['id']}},_0x2596f4={};_0x2596f4[_0x86af('0x2b')]=_[_0x86af('0x2d')](db[_0x86af('0x27')][_0x86af('0x28')]);_0x2596f4[_0x86af('0x2e')]=_[_0x86af('0x2d')](_0x5e6d74[_0x86af('0x2e')]);_0x2596f4[_0x86af('0x2f')]=_[_0x86af('0x30')](_0x2596f4[_0x86af('0x2b')],_0x2596f4['query']);_0x4c0e4d[_0x86af('0x32')]=_[_0x86af('0x30')](_0x2596f4[_0x86af('0x2b')],qs[_0x86af('0x31')](_0x5e6d74[_0x86af('0x2e')]['fields']));_0x4c0e4d[_0x86af('0x32')]=_0x4c0e4d['attributes']['length']?_0x4c0e4d[_0x86af('0x32')]:_0x2596f4[_0x86af('0x2b')];if(_0x5e6d74[_0x86af('0x2e')][_0x86af('0x3e')]){_0x4c0e4d[_0x86af('0x3f')]=[{'all':!![]}];}_0x4c0e4d=_[_0x86af('0x3b')]({},_0x4c0e4d,_0x5e6d74['options']);return db[_0x86af('0x27')][_0x86af('0x44')](_0x4c0e4d)[_0x86af('0x21')](handleEntityNotFound(_0x528df8,null))['then'](respondWithResult(_0x528df8,null))[_0x86af('0x41')](handleError(_0x528df8,null));};exports[_0x86af('0x45')]=function(_0x28f1a8,_0xb195a8){var _0x101e11={'where':{'id':_0x28f1a8[_0x86af('0x43')]['id']}},_0x210d7b={};_0x210d7b[_0x86af('0x2b')]=_['keys'](db[_0x86af('0x27')][_0x86af('0x28')]);_0x101e11[_0x86af('0x32')]=_['intersection'](_0x210d7b[_0x86af('0x2b')],qs[_0x86af('0x31')](_0x28f1a8[_0x86af('0x2e')][_0x86af('0x31')]));_0x101e11[_0x86af('0x32')]=_0x101e11['attributes'][_0x86af('0x33')]?_0x101e11['attributes']:_0x210d7b['model'];if(_0x28f1a8[_0x86af('0x2e')][_0x86af('0x3e')]){_0x101e11[_0x86af('0x3f')]=[{'all':!![]}];}_0x101e11=_['merge']({},_0x101e11,_0x28f1a8[_0x86af('0x3d')]);return db[_0x86af('0x27')][_0x86af('0x44')](_0x101e11)[_0x86af('0x21')](handleEntityNotFound(_0xb195a8,null))['then'](function(_0x1558b3){if(_0x1558b3){var _0x1d19a2=_0x1558b3[_0x86af('0x46')]({'plain':!![]});_0x1d19a2=qs[_0x86af('0x47')](_0x1d19a2,['id',_0x86af('0x48'),_0x86af('0x49')]);_0x28f1a8['body']=_[_0x86af('0x47')](_0x28f1a8[_0x86af('0x4a')],['id',_0x86af('0x48'),_0x86af('0x49')]);return db[_0x86af('0x27')][_0x86af('0x4b')](_[_0x86af('0x3b')](_0x1d19a2,_0x28f1a8[_0x86af('0x4a')]),{'include':_0x28f1a8['query'][_0x86af('0x3e')]?[{'all':!![]}]:undefined});}})[_0x86af('0x21')](respondWithResult(_0xb195a8,0xc9))[_0x86af('0x41')](handleError(_0xb195a8,null));};exports[_0x86af('0x20')]=function(_0x31d0f6,_0x573a96){if(_0x31d0f6[_0x86af('0x4a')]['id']){delete _0x31d0f6[_0x86af('0x4a')]['id'];}return db[_0x86af('0x27')][_0x86af('0x44')]({'where':{'id':_0x31d0f6['params']['id']}})[_0x86af('0x21')](handleEntityNotFound(_0x573a96,null))[_0x86af('0x21')](saveUpdates(_0x31d0f6[_0x86af('0x4a')],null))[_0x86af('0x21')](respondWithResult(_0x573a96,null))['catch'](handleError(_0x573a96,null));};exports[_0x86af('0x22')]=function(_0x1936e1,_0x239252){return db[_0x86af('0x27')][_0x86af('0x44')]({'where':{'id':_0x1936e1[_0x86af('0x43')]['id']}})[_0x86af('0x21')](handleEntityNotFound(_0x239252,null))[_0x86af('0x21')](removeEntity(_0x239252,null))[_0x86af('0x41')](handleError(_0x239252,null));};exports[_0x86af('0x4b')]=function(_0x474a23,_0x112355,_0xa4ba52){_0x474a23[_0x86af('0x4a')][_0x86af('0x24')]=_0x474a23[_0x86af('0x4c')]['originalname'];_0x474a23[_0x86af('0x4a')]['basename']=_0x474a23[_0x86af('0x4c')][_0x86af('0x4d')];_0x474a23[_0x86af('0x4a')][_0x86af('0x29')]=_0x474a23[_0x86af('0x4c')][_0x86af('0x4e')];return db['Attachment'][_0x86af('0x4b')](_0x474a23[_0x86af('0x4a')])[_0x86af('0x21')](respondWithResult(_0x112355,0xc9))[_0x86af('0x41')](handleError(_0x112355,null));};exports[_0x86af('0x4f')]=function(_0x21c61a,_0x309762,_0x38031d){return db[_0x86af('0x27')]['findOne']({'where':{'id':_0x21c61a[_0x86af('0x43')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x309762,null))['then'](function(_0x5be14a){if(_0x5be14a){var _0x3c3533=_0x5be14a[_0x86af('0x50')]!==null;var _0xe10bfd=path[_0x86af('0x51')](config['root'],'server/files/attachments/');if(_0x3c3533){_0xe10bfd=path[_0x86af('0x51')](_0xe10bfd,'offline-chat/');}var _0x1194b7=path[_0x86af('0x51')](_0xe10bfd,_0x5be14a[_0x86af('0x52')]);return _0x309762[_0x86af('0x4f')](_0x1194b7);}})[_0x86af('0x41')](handleError(_0x309762,null));};