Built motion from commit 97153652.|2.6.26
[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 _0xa2b2=['filter','merge','options','count','includeAll','include','findAll','rows','catch','show','params','find','clone','get','omit','createdAt','updatedAt','body','create','file','filename','mimetype','download','findOne','ChatOfflineMessageId','root','join','basename','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','apply','reject','update','then','destroy','error','stack','name','send','index','Attachment','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','type','VIRTUAL'];(function(_0x14a1b0,_0x93f367){var _0x5252d4=function(_0x463800){while(--_0x463800){_0x14a1b0['push'](_0x14a1b0['shift']());}};_0x5252d4(++_0x93f367);}(_0xa2b2,0x1f2));var _0x2a2b=function(_0x94156,_0x2d1dab){_0x94156=_0x94156-0x0;var _0x68b485=_0xa2b2[_0x94156];return _0x68b485;};'use strict';var emlformat=require(_0x2a2b('0x0'));var rimraf=require(_0x2a2b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2a2b('0x2'));var rp=require(_0x2a2b('0x3'));var moment=require(_0x2a2b('0x4'));var BPromise=require(_0x2a2b('0x5'));var Mustache=require(_0x2a2b('0x6'));var util=require(_0x2a2b('0x7'));var path=require(_0x2a2b('0x8'));var sox=require(_0x2a2b('0x9'));var csv=require('to-csv');var ejs=require(_0x2a2b('0xa'));var fs=require('fs');var fs_extra=require(_0x2a2b('0xb'));var _=require(_0x2a2b('0xc'));var squel=require(_0x2a2b('0xd'));var crypto=require(_0x2a2b('0xe'));var jsforce=require(_0x2a2b('0xf'));var deskjs=require(_0x2a2b('0x10'));var toCsv=require(_0x2a2b('0x11'));var querystring=require(_0x2a2b('0x12'));var Papa=require('papaparse');var Redis=require(_0x2a2b('0x13'));var authService=require(_0x2a2b('0x14'));var qs=require(_0x2a2b('0x15'));var as=require(_0x2a2b('0x16'));var hardwareService=require(_0x2a2b('0x17'));var logger=require('../../config/logger')('api');var utils=require(_0x2a2b('0x18'));var config=require(_0x2a2b('0x19'));var licenseUtil=require(_0x2a2b('0x1a'));var db=require(_0x2a2b('0x1b'))['db'];function respondWithStatusCode(_0x622668,_0x4d75dd){_0x4d75dd=_0x4d75dd||0xcc;return function(_0x4b7e0d){if(_0x4b7e0d){return _0x622668[_0x2a2b('0x1c')](_0x4d75dd);}return _0x622668[_0x2a2b('0x1d')](_0x4d75dd)[_0x2a2b('0x1e')]();};}function respondWithResult(_0x3dbf1c,_0x108505){_0x108505=_0x108505||0xc8;return function(_0x342c25){if(_0x342c25){return _0x3dbf1c[_0x2a2b('0x1d')](_0x108505)[_0x2a2b('0x1f')](_0x342c25);}};}function respondWithFilteredResult(_0x8cc51e,_0x257631){return function(_0x5d770f){if(_0x5d770f){var _0x2e0757=typeof _0x257631[_0x2a2b('0x20')]===_0x2a2b('0x21')&&typeof _0x257631['limit']===_0x2a2b('0x21');var _0x4d79f6=_0x5d770f['count'];var _0x1c2d2a=_0x2e0757?0x0:_0x257631[_0x2a2b('0x20')];var _0x313cb1=_0x2e0757?_0x5d770f['count']:_0x257631[_0x2a2b('0x20')]+_0x257631[_0x2a2b('0x22')];var _0x327f19;if(_0x313cb1>=_0x4d79f6){_0x313cb1=_0x4d79f6;_0x327f19=0xc8;}else{_0x327f19=0xce;}_0x8cc51e[_0x2a2b('0x1d')](_0x327f19);return _0x8cc51e[_0x2a2b('0x23')]('Content-Range',_0x1c2d2a+'-'+_0x313cb1+'/'+_0x4d79f6)['json'](_0x5d770f);}return null;};}function patchUpdates(_0x49d162){return function(_0x444960){try{jsonpatch[_0x2a2b('0x24')](_0x444960,_0x49d162,!![]);}catch(_0x523a47){return BPromise[_0x2a2b('0x25')](_0x523a47);}return _0x444960['save']();};}function saveUpdates(_0x4e0370,_0x2b3f0a){return function(_0x177e27){if(_0x177e27){return _0x177e27[_0x2a2b('0x26')](_0x4e0370)[_0x2a2b('0x27')](function(_0x2b7f83){return _0x2b7f83;});}return null;};}function removeEntity(_0x4ac6f9,_0x55044c){return function(_0x5998eb){if(_0x5998eb){return _0x5998eb[_0x2a2b('0x28')]()[_0x2a2b('0x27')](function(){_0x4ac6f9['status'](0xcc)[_0x2a2b('0x1e')]();});}};}function handleEntityNotFound(_0x1b79e7,_0x3e493e){return function(_0x2ea85){if(!_0x2ea85){_0x1b79e7[_0x2a2b('0x1c')](0x194);}return _0x2ea85;};}function handleError(_0x5d7d5e,_0x375065){_0x375065=_0x375065||0x1f4;return function(_0x502fc1){logger[_0x2a2b('0x29')](_0x502fc1[_0x2a2b('0x2a')]);if(_0x502fc1[_0x2a2b('0x2b')]){delete _0x502fc1['name'];}_0x5d7d5e[_0x2a2b('0x1d')](_0x375065)[_0x2a2b('0x2c')](_0x502fc1);};}exports[_0x2a2b('0x2d')]=function(_0x475ec1,_0x5e681d){var _0x47ea3c={},_0xc4c450={},_0x523f6e={'count':0x0,'rows':[]};var _0x3a1443=_['map'](db[_0x2a2b('0x2e')][_0x2a2b('0x2f')],function(_0x141bad){return{'name':_0x141bad[_0x2a2b('0x30')],'type':_0x141bad['type'][_0x2a2b('0x31')]};});_0xc4c450[_0x2a2b('0x32')]=_[_0x2a2b('0x33')](_0x3a1443,_0x2a2b('0x2b'));_0xc4c450[_0x2a2b('0x34')]=_[_0x2a2b('0x35')](_0x475ec1['query']);_0xc4c450[_0x2a2b('0x36')]=_[_0x2a2b('0x37')](_0xc4c450['model'],_0xc4c450[_0x2a2b('0x34')]);_0x47ea3c['attributes']=_[_0x2a2b('0x37')](_0xc4c450[_0x2a2b('0x32')],qs['fields'](_0x475ec1[_0x2a2b('0x34')][_0x2a2b('0x38')]));_0x47ea3c[_0x2a2b('0x39')]=_0x47ea3c['attributes'][_0x2a2b('0x3a')]?_0x47ea3c[_0x2a2b('0x39')]:_0xc4c450[_0x2a2b('0x32')];if(!_0x475ec1[_0x2a2b('0x34')][_0x2a2b('0x3b')](_0x2a2b('0x3c'))){_0x47ea3c[_0x2a2b('0x22')]=qs[_0x2a2b('0x22')](_0x475ec1[_0x2a2b('0x34')][_0x2a2b('0x22')]);_0x47ea3c[_0x2a2b('0x20')]=qs[_0x2a2b('0x20')](_0x475ec1[_0x2a2b('0x34')]['offset']);}_0x47ea3c['order']=qs['sort'](_0x475ec1[_0x2a2b('0x34')][_0x2a2b('0x3d')]);_0x47ea3c[_0x2a2b('0x3e')]=qs[_0x2a2b('0x36')](_[_0x2a2b('0x3f')](_0x475ec1[_0x2a2b('0x34')],_0xc4c450[_0x2a2b('0x36')]),_0x3a1443);if(_0x475ec1['query']['filter']){_0x47ea3c['where']=_['merge'](_0x47ea3c[_0x2a2b('0x3e')],{'$or':_[_0x2a2b('0x33')](_0x3a1443,function(_0x3fa88a){if(_0x3fa88a[_0x2a2b('0x40')]!==_0x2a2b('0x41')){var _0x186b6e={};_0x186b6e[_0x3fa88a['name']]={'$like':'%'+_0x475ec1[_0x2a2b('0x34')][_0x2a2b('0x42')]+'%'};return _0x186b6e;}})});}_0x47ea3c=_[_0x2a2b('0x43')]({},_0x47ea3c,_0x475ec1[_0x2a2b('0x44')]);var _0x22d095={'where':_0x47ea3c[_0x2a2b('0x3e')]};return db[_0x2a2b('0x2e')][_0x2a2b('0x45')](_0x22d095)['then'](function(_0x56d24){_0x523f6e[_0x2a2b('0x45')]=_0x56d24;if(_0x475ec1['query'][_0x2a2b('0x46')]){_0x47ea3c[_0x2a2b('0x47')]=[{'all':!![]}];}return db[_0x2a2b('0x2e')][_0x2a2b('0x48')](_0x47ea3c);})['then'](function(_0x264b9b){_0x523f6e[_0x2a2b('0x49')]=_0x264b9b;return _0x523f6e;})[_0x2a2b('0x27')](respondWithFilteredResult(_0x5e681d,_0x47ea3c))[_0x2a2b('0x4a')](handleError(_0x5e681d,null));};exports[_0x2a2b('0x4b')]=function(_0x21e842,_0x2baa88){var _0x14d667={'raw':!![],'where':{'id':_0x21e842[_0x2a2b('0x4c')]['id']}},_0x1bf4c4={};_0x1bf4c4[_0x2a2b('0x32')]=_[_0x2a2b('0x35')](db[_0x2a2b('0x2e')][_0x2a2b('0x2f')]);_0x1bf4c4['query']=_['keys'](_0x21e842[_0x2a2b('0x34')]);_0x1bf4c4['filters']=_[_0x2a2b('0x37')](_0x1bf4c4['model'],_0x1bf4c4['query']);_0x14d667[_0x2a2b('0x39')]=_[_0x2a2b('0x37')](_0x1bf4c4['model'],qs[_0x2a2b('0x38')](_0x21e842['query'][_0x2a2b('0x38')]));_0x14d667[_0x2a2b('0x39')]=_0x14d667['attributes'][_0x2a2b('0x3a')]?_0x14d667[_0x2a2b('0x39')]:_0x1bf4c4[_0x2a2b('0x32')];if(_0x21e842[_0x2a2b('0x34')][_0x2a2b('0x46')]){_0x14d667[_0x2a2b('0x47')]=[{'all':!![]}];}_0x14d667=_[_0x2a2b('0x43')]({},_0x14d667,_0x21e842[_0x2a2b('0x44')]);return db[_0x2a2b('0x2e')][_0x2a2b('0x4d')](_0x14d667)[_0x2a2b('0x27')](handleEntityNotFound(_0x2baa88,null))[_0x2a2b('0x27')](respondWithResult(_0x2baa88,null))[_0x2a2b('0x4a')](handleError(_0x2baa88,null));};exports[_0x2a2b('0x4e')]=function(_0x311b32,_0x170d14){var _0x3cca7e={'where':{'id':_0x311b32[_0x2a2b('0x4c')]['id']}},_0x4d994e={};_0x4d994e[_0x2a2b('0x32')]=_['keys'](db['Attachment'][_0x2a2b('0x2f')]);_0x3cca7e[_0x2a2b('0x39')]=_[_0x2a2b('0x37')](_0x4d994e[_0x2a2b('0x32')],qs['fields'](_0x311b32[_0x2a2b('0x34')][_0x2a2b('0x38')]));_0x3cca7e['attributes']=_0x3cca7e[_0x2a2b('0x39')][_0x2a2b('0x3a')]?_0x3cca7e[_0x2a2b('0x39')]:_0x4d994e[_0x2a2b('0x32')];if(_0x311b32[_0x2a2b('0x34')][_0x2a2b('0x46')]){_0x3cca7e[_0x2a2b('0x47')]=[{'all':!![]}];}_0x3cca7e=_[_0x2a2b('0x43')]({},_0x3cca7e,_0x311b32[_0x2a2b('0x44')]);return db['Attachment'][_0x2a2b('0x4d')](_0x3cca7e)[_0x2a2b('0x27')](handleEntityNotFound(_0x170d14,null))[_0x2a2b('0x27')](function(_0x301afd){if(_0x301afd){var _0x351234=_0x301afd[_0x2a2b('0x4f')]({'plain':!![]});_0x351234=qs[_0x2a2b('0x50')](_0x351234,['id',_0x2a2b('0x51'),_0x2a2b('0x52')]);_0x311b32[_0x2a2b('0x53')]=_['omit'](_0x311b32['body'],['id','createdAt',_0x2a2b('0x52')]);return db[_0x2a2b('0x2e')][_0x2a2b('0x54')](_['merge'](_0x351234,_0x311b32['body']),{'include':_0x311b32[_0x2a2b('0x34')]['includeAll']?[{'all':!![]}]:undefined});}})[_0x2a2b('0x27')](respondWithResult(_0x170d14,0xc9))[_0x2a2b('0x4a')](handleError(_0x170d14,null));};exports[_0x2a2b('0x26')]=function(_0x46d0f1,_0x29076d){if(_0x46d0f1[_0x2a2b('0x53')]['id']){delete _0x46d0f1['body']['id'];}return db[_0x2a2b('0x2e')][_0x2a2b('0x4d')]({'where':{'id':_0x46d0f1[_0x2a2b('0x4c')]['id']}})[_0x2a2b('0x27')](handleEntityNotFound(_0x29076d,null))[_0x2a2b('0x27')](saveUpdates(_0x46d0f1['body'],null))[_0x2a2b('0x27')](respondWithResult(_0x29076d,null))['catch'](handleError(_0x29076d,null));};exports[_0x2a2b('0x28')]=function(_0x2550b6,_0x327449){return db[_0x2a2b('0x2e')][_0x2a2b('0x4d')]({'where':{'id':_0x2550b6[_0x2a2b('0x4c')]['id']}})[_0x2a2b('0x27')](handleEntityNotFound(_0x327449,null))['then'](removeEntity(_0x327449,null))[_0x2a2b('0x4a')](handleError(_0x327449,null));};exports[_0x2a2b('0x54')]=function(_0x24167a,_0x4434ee,_0x357edb){_0x24167a[_0x2a2b('0x53')][_0x2a2b('0x2b')]=_0x24167a['file']['originalname'];_0x24167a[_0x2a2b('0x53')]['basename']=_0x24167a[_0x2a2b('0x55')][_0x2a2b('0x56')];_0x24167a['body']['type']=_0x24167a[_0x2a2b('0x55')][_0x2a2b('0x57')];return db['Attachment']['create'](_0x24167a['body'])[_0x2a2b('0x27')](respondWithResult(_0x4434ee,0xc9))['catch'](handleError(_0x4434ee,null));};exports[_0x2a2b('0x58')]=function(_0x5254cf,_0x402eb1,_0x29d0c1){return db['Attachment'][_0x2a2b('0x59')]({'where':{'id':_0x5254cf[_0x2a2b('0x4c')]['id']},'raw':!![]})[_0x2a2b('0x27')](handleEntityNotFound(_0x402eb1,null))[_0x2a2b('0x27')](function(_0x19b83d){if(_0x19b83d){var _0x35391a=_0x19b83d[_0x2a2b('0x5a')]!==null;var _0x508d31=path['join'](config[_0x2a2b('0x5b')],'server/files/attachments/');if(_0x35391a){_0x508d31=path[_0x2a2b('0x5c')](_0x508d31,'offline-chat/');}var _0x155f70=path[_0x2a2b('0x5c')](_0x508d31,_0x19b83d[_0x2a2b('0x5d')]);return _0x402eb1[_0x2a2b('0x58')](_0x155f70);}})[_0x2a2b('0x4a')](handleError(_0x402eb1,null));};