873d26df29a2f1f27237f73ab01ae82554067d68
[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 _0x58e9=['then','destroy','error','stack','name','send','index','map','Attachment','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','includeAll','find','params','get','createdAt','updatedAt','body','omit','create','catch','file','originalname','filename','mimetype','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','basename','download','eml-format','bluebird','mustache','util','sox','ejs','fs-extra','lodash','crypto','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','reject','save','update'];(function(_0x2a1c1c,_0x2c664e){var _0xbf4766=function(_0x1b951e){while(--_0x1b951e){_0x2a1c1c['push'](_0x2a1c1c['shift']());}};_0xbf4766(++_0x2c664e);}(_0x58e9,0x89));var _0x958e=function(_0x59c57d,_0x3da491){_0x59c57d=_0x59c57d-0x0;var _0x27066c=_0x58e9[_0x59c57d];return _0x27066c;};'use strict';var emlformat=require(_0x958e('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x958e('0x1'));var Mustache=require(_0x958e('0x2'));var util=require(_0x958e('0x3'));var path=require('path');var sox=require(_0x958e('0x4'));var csv=require('to-csv');var ejs=require(_0x958e('0x5'));var fs=require('fs');var fs_extra=require(_0x958e('0x6'));var _=require(_0x958e('0x7'));var squel=require('squel');var crypto=require(_0x958e('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x958e('0x9'));var toCsv=require(_0x958e('0xa'));var querystring=require('querystring');var Papa=require(_0x958e('0xb'));var Redis=require(_0x958e('0xc'));var authService=require(_0x958e('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x958e('0xe'));var hardwareService=require(_0x958e('0xf'));var logger=require(_0x958e('0x10'))(_0x958e('0x11'));var utils=require('../../config/utils');var config=require(_0x958e('0x12'));var licenseUtil=require(_0x958e('0x13'));var db=require(_0x958e('0x14'))['db'];function respondWithStatusCode(_0x12f075,_0x2b4bfe){_0x2b4bfe=_0x2b4bfe||0xcc;return function(_0x5ee6dd){if(_0x5ee6dd){return _0x12f075[_0x958e('0x15')](_0x2b4bfe);}return _0x12f075['status'](_0x2b4bfe)[_0x958e('0x16')]();};}function respondWithResult(_0x2f4177,_0x27d54f){_0x27d54f=_0x27d54f||0xc8;return function(_0x3e0cbb){if(_0x3e0cbb){return _0x2f4177[_0x958e('0x17')](_0x27d54f)[_0x958e('0x18')](_0x3e0cbb);}};}function respondWithFilteredResult(_0x2d889c,_0x15746d){return function(_0x3222a1){if(_0x3222a1){var _0x1fc5c2=typeof _0x15746d[_0x958e('0x19')]===_0x958e('0x1a')&&typeof _0x15746d['limit']===_0x958e('0x1a');var _0x49bebd=_0x3222a1[_0x958e('0x1b')];var _0x49307a=_0x1fc5c2?0x0:_0x15746d['offset'];var _0x1d1388=_0x1fc5c2?_0x3222a1[_0x958e('0x1b')]:_0x15746d[_0x958e('0x19')]+_0x15746d[_0x958e('0x1c')];var _0x2fb2bf;if(_0x1d1388>=_0x49bebd){_0x1d1388=_0x49bebd;_0x2fb2bf=0xc8;}else{_0x2fb2bf=0xce;}_0x2d889c[_0x958e('0x17')](_0x2fb2bf);return _0x2d889c[_0x958e('0x1d')]('Content-Range',_0x49307a+'-'+_0x1d1388+'/'+_0x49bebd)[_0x958e('0x18')](_0x3222a1);}return null;};}function patchUpdates(_0x5c3066){return function(_0x145982){try{jsonpatch['apply'](_0x145982,_0x5c3066,!![]);}catch(_0x29b2d1){return BPromise[_0x958e('0x1e')](_0x29b2d1);}return _0x145982[_0x958e('0x1f')]();};}function saveUpdates(_0x31ef1b,_0x202c60){return function(_0x664846){if(_0x664846){return _0x664846[_0x958e('0x20')](_0x31ef1b)[_0x958e('0x21')](function(_0x292272){return _0x292272;});}return null;};}function removeEntity(_0x372036,_0x2ed97b){return function(_0x1eca71){if(_0x1eca71){return _0x1eca71[_0x958e('0x22')]()[_0x958e('0x21')](function(){_0x372036[_0x958e('0x17')](0xcc)[_0x958e('0x16')]();});}};}function handleEntityNotFound(_0x5346cd,_0x48cb71){return function(_0x17ad6c){if(!_0x17ad6c){_0x5346cd['sendStatus'](0x194);}return _0x17ad6c;};}function handleError(_0xdb8b37,_0x518252){_0x518252=_0x518252||0x1f4;return function(_0x4e6e2c){logger[_0x958e('0x23')](_0x4e6e2c[_0x958e('0x24')]);if(_0x4e6e2c[_0x958e('0x25')]){delete _0x4e6e2c[_0x958e('0x25')];}_0xdb8b37[_0x958e('0x17')](_0x518252)[_0x958e('0x26')](_0x4e6e2c);};}exports[_0x958e('0x27')]=function(_0x56c05c,_0x23f4bf){var _0x32da9c={},_0x34ca39={},_0x453959={'count':0x0,'rows':[]};var _0x437382=_[_0x958e('0x28')](db[_0x958e('0x29')][_0x958e('0x2a')],function(_0x32d63d){return{'name':_0x32d63d['fieldName'],'type':_0x32d63d[_0x958e('0x2b')]['key']};});_0x34ca39[_0x958e('0x2c')]=_[_0x958e('0x28')](_0x437382,'name');_0x34ca39[_0x958e('0x2d')]=_[_0x958e('0x2e')](_0x56c05c[_0x958e('0x2d')]);_0x34ca39[_0x958e('0x2f')]=_[_0x958e('0x30')](_0x34ca39[_0x958e('0x2c')],_0x34ca39[_0x958e('0x2d')]);_0x32da9c['attributes']=_[_0x958e('0x30')](_0x34ca39[_0x958e('0x2c')],qs[_0x958e('0x31')](_0x56c05c[_0x958e('0x2d')][_0x958e('0x31')]));_0x32da9c[_0x958e('0x32')]=_0x32da9c['attributes'][_0x958e('0x33')]?_0x32da9c[_0x958e('0x32')]:_0x34ca39[_0x958e('0x2c')];if(!_0x56c05c[_0x958e('0x2d')][_0x958e('0x34')](_0x958e('0x35'))){_0x32da9c[_0x958e('0x1c')]=qs[_0x958e('0x1c')](_0x56c05c['query'][_0x958e('0x1c')]);_0x32da9c[_0x958e('0x19')]=qs['offset'](_0x56c05c[_0x958e('0x2d')][_0x958e('0x19')]);}_0x32da9c[_0x958e('0x36')]=qs['sort'](_0x56c05c[_0x958e('0x2d')]['sort']);_0x32da9c['where']=qs[_0x958e('0x2f')](_[_0x958e('0x37')](_0x56c05c[_0x958e('0x2d')],_0x34ca39[_0x958e('0x2f')]),_0x437382);if(_0x56c05c['query'][_0x958e('0x38')]){_0x32da9c[_0x958e('0x39')]=_[_0x958e('0x3a')](_0x32da9c[_0x958e('0x39')],{'$or':_[_0x958e('0x28')](_0x437382,function(_0x44d87c){if(_0x44d87c['type']!==_0x958e('0x3b')){var _0x4ece46={};_0x4ece46[_0x44d87c[_0x958e('0x25')]]={'$like':'%'+_0x56c05c[_0x958e('0x2d')][_0x958e('0x38')]+'%'};return _0x4ece46;}})});}_0x32da9c=_['merge']({},_0x32da9c,_0x56c05c[_0x958e('0x3c')]);var _0x4367b2={'where':_0x32da9c[_0x958e('0x39')]};return db['Attachment'][_0x958e('0x1b')](_0x4367b2)[_0x958e('0x21')](function(_0x3cfc6a){_0x453959['count']=_0x3cfc6a;if(_0x56c05c[_0x958e('0x2d')]['includeAll']){_0x32da9c[_0x958e('0x3d')]=[{'all':!![]}];}return db[_0x958e('0x29')][_0x958e('0x3e')](_0x32da9c);})[_0x958e('0x21')](function(_0x5c7903){_0x453959[_0x958e('0x3f')]=_0x5c7903;return _0x453959;})[_0x958e('0x21')](respondWithFilteredResult(_0x23f4bf,_0x32da9c))['catch'](handleError(_0x23f4bf,null));};exports['show']=function(_0x2f650f,_0x4c2ea1){var _0x261a6f={'raw':!![],'where':{'id':_0x2f650f['params']['id']}},_0x562994={};_0x562994[_0x958e('0x2c')]=_[_0x958e('0x2e')](db['Attachment'][_0x958e('0x2a')]);_0x562994[_0x958e('0x2d')]=_['keys'](_0x2f650f[_0x958e('0x2d')]);_0x562994[_0x958e('0x2f')]=_['intersection'](_0x562994[_0x958e('0x2c')],_0x562994[_0x958e('0x2d')]);_0x261a6f[_0x958e('0x32')]=_['intersection'](_0x562994[_0x958e('0x2c')],qs[_0x958e('0x31')](_0x2f650f[_0x958e('0x2d')]['fields']));_0x261a6f['attributes']=_0x261a6f[_0x958e('0x32')][_0x958e('0x33')]?_0x261a6f[_0x958e('0x32')]:_0x562994[_0x958e('0x2c')];if(_0x2f650f[_0x958e('0x2d')][_0x958e('0x40')]){_0x261a6f[_0x958e('0x3d')]=[{'all':!![]}];}_0x261a6f=_[_0x958e('0x3a')]({},_0x261a6f,_0x2f650f[_0x958e('0x3c')]);return db[_0x958e('0x29')][_0x958e('0x41')](_0x261a6f)['then'](handleEntityNotFound(_0x4c2ea1,null))[_0x958e('0x21')](respondWithResult(_0x4c2ea1,null))['catch'](handleError(_0x4c2ea1,null));};exports['clone']=function(_0x48dea9,_0x413323){var _0x3c6b19={'where':{'id':_0x48dea9[_0x958e('0x42')]['id']}},_0x200820={};_0x200820[_0x958e('0x2c')]=_[_0x958e('0x2e')](db[_0x958e('0x29')][_0x958e('0x2a')]);_0x3c6b19[_0x958e('0x32')]=_[_0x958e('0x30')](_0x200820['model'],qs[_0x958e('0x31')](_0x48dea9['query'][_0x958e('0x31')]));_0x3c6b19[_0x958e('0x32')]=_0x3c6b19['attributes'][_0x958e('0x33')]?_0x3c6b19['attributes']:_0x200820['model'];if(_0x48dea9[_0x958e('0x2d')][_0x958e('0x40')]){_0x3c6b19[_0x958e('0x3d')]=[{'all':!![]}];}_0x3c6b19=_[_0x958e('0x3a')]({},_0x3c6b19,_0x48dea9[_0x958e('0x3c')]);return db[_0x958e('0x29')][_0x958e('0x41')](_0x3c6b19)['then'](handleEntityNotFound(_0x413323,null))[_0x958e('0x21')](function(_0x1545b2){if(_0x1545b2){var _0x45018a=_0x1545b2[_0x958e('0x43')]({'plain':!![]});_0x45018a=qs['omit'](_0x45018a,['id',_0x958e('0x44'),_0x958e('0x45')]);_0x48dea9[_0x958e('0x46')]=_[_0x958e('0x47')](_0x48dea9[_0x958e('0x46')],['id',_0x958e('0x44'),_0x958e('0x45')]);return db[_0x958e('0x29')][_0x958e('0x48')](_[_0x958e('0x3a')](_0x45018a,_0x48dea9[_0x958e('0x46')]),{'include':_0x48dea9[_0x958e('0x2d')][_0x958e('0x40')]?[{'all':!![]}]:undefined});}})[_0x958e('0x21')](respondWithResult(_0x413323,0xc9))[_0x958e('0x49')](handleError(_0x413323,null));};exports[_0x958e('0x20')]=function(_0x56b247,_0x44fc7d){if(_0x56b247[_0x958e('0x46')]['id']){delete _0x56b247[_0x958e('0x46')]['id'];}return db['Attachment'][_0x958e('0x41')]({'where':{'id':_0x56b247['params']['id']}})['then'](handleEntityNotFound(_0x44fc7d,null))['then'](saveUpdates(_0x56b247[_0x958e('0x46')],null))[_0x958e('0x21')](respondWithResult(_0x44fc7d,null))[_0x958e('0x49')](handleError(_0x44fc7d,null));};exports[_0x958e('0x22')]=function(_0x5531c2,_0x5a73ef){return db[_0x958e('0x29')][_0x958e('0x41')]({'where':{'id':_0x5531c2[_0x958e('0x42')]['id']}})[_0x958e('0x21')](handleEntityNotFound(_0x5a73ef,null))[_0x958e('0x21')](removeEntity(_0x5a73ef,null))[_0x958e('0x49')](handleError(_0x5a73ef,null));};exports['create']=function(_0x690e9d,_0x52c072,_0x1de6ac){_0x690e9d['body']['name']=_0x690e9d[_0x958e('0x4a')][_0x958e('0x4b')];_0x690e9d[_0x958e('0x46')]['basename']=_0x690e9d[_0x958e('0x4a')][_0x958e('0x4c')];_0x690e9d['body']['type']=_0x690e9d[_0x958e('0x4a')][_0x958e('0x4d')];return db[_0x958e('0x29')][_0x958e('0x48')](_0x690e9d[_0x958e('0x46')])['then'](respondWithResult(_0x52c072,0xc9))['catch'](handleError(_0x52c072,null));};exports['download']=function(_0x295832,_0x1b4c69,_0x5948fc){return db[_0x958e('0x29')]['findOne']({'where':{'id':_0x295832['params']['id']},'raw':!![]})[_0x958e('0x21')](handleEntityNotFound(_0x1b4c69,null))[_0x958e('0x21')](function(_0x3f4a3a){if(_0x3f4a3a){var _0x23cd17=_0x3f4a3a[_0x958e('0x4e')]!==null;var _0x4aa0c3=path[_0x958e('0x4f')](config[_0x958e('0x50')],_0x958e('0x51'));if(_0x23cd17){_0x4aa0c3=path['join'](_0x4aa0c3,_0x958e('0x52'));}var _0x35323b=path[_0x958e('0x4f')](_0x4aa0c3,_0x3f4a3a[_0x958e('0x53')]);return _0x1b4c69[_0x958e('0x54')](_0x35323b);}})[_0x958e('0x49')](handleError(_0x1b4c69,null));};