9c47df622d37ba4218dd157deb0a630b7c01665b
[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 _0x0695=['include','rows','show','params','length','find','catch','clone','omit','createdAt','updatedAt','body','create','file','originalname','basename','filename','mimetype','download','findOne','join','root','eml-format','rimraf','moment','bluebird','util','to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','sendStatus','stack','send','index','Attachment','rawAttributes','fieldName','type','key','model','map','name','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll'];(function(_0x547456,_0x1de17e){var _0xc1fd7b=function(_0x12be35){while(--_0x12be35){_0x547456['push'](_0x547456['shift']());}};_0xc1fd7b(++_0x1de17e);}(_0x0695,0x16e));var _0x5069=function(_0x270a1f,_0x532619){_0x270a1f=_0x270a1f-0x0;var _0x3baab9=_0x0695[_0x270a1f];return _0x3baab9;};'use strict';var emlformat=require(_0x5069('0x0'));var rimraf=require(_0x5069('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5069('0x2'));var BPromise=require(_0x5069('0x3'));var Mustache=require('mustache');var util=require(_0x5069('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0x5069('0x5'));var ejs=require(_0x5069('0x6'));var fs=require('fs');var fs_extra=require(_0x5069('0x7'));var _=require(_0x5069('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5069('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x5069('0x5'));var querystring=require(_0x5069('0xa'));var Papa=require(_0x5069('0xb'));var Redis=require(_0x5069('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x5069('0xd'));var as=require(_0x5069('0xe'));var hardwareService=require(_0x5069('0xf'));var logger=require(_0x5069('0x10'))(_0x5069('0x11'));var utils=require(_0x5069('0x12'));var config=require(_0x5069('0x13'));var licenseUtil=require(_0x5069('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x37bf8a,_0x149896){_0x149896=_0x149896||0xcc;return function(_0xf2ae6d){if(_0xf2ae6d){return _0x37bf8a['sendStatus'](_0x149896);}return _0x37bf8a[_0x5069('0x15')](_0x149896)[_0x5069('0x16')]();};}function respondWithResult(_0x36ebd3,_0x84b2a4){_0x84b2a4=_0x84b2a4||0xc8;return function(_0x1b2f81){if(_0x1b2f81){return _0x36ebd3[_0x5069('0x15')](_0x84b2a4)[_0x5069('0x17')](_0x1b2f81);}};}function respondWithFilteredResult(_0x48ed6c,_0xf1df1b){return function(_0x4ce69d){if(_0x4ce69d){var _0x39e2cb=typeof _0xf1df1b['offset']===_0x5069('0x18')&&typeof _0xf1df1b[_0x5069('0x19')]===_0x5069('0x18');var _0xa50009=_0x4ce69d[_0x5069('0x1a')];var _0x559291=_0x39e2cb?0x0:_0xf1df1b['offset'];var _0x43b46a=_0x39e2cb?_0x4ce69d[_0x5069('0x1a')]:_0xf1df1b[_0x5069('0x1b')]+_0xf1df1b[_0x5069('0x19')];var _0x403009;if(_0x43b46a>=_0xa50009){_0x43b46a=_0xa50009;_0x403009=0xc8;}else{_0x403009=0xce;}_0x48ed6c[_0x5069('0x15')](_0x403009);return _0x48ed6c[_0x5069('0x1c')](_0x5069('0x1d'),_0x559291+'-'+_0x43b46a+'/'+_0xa50009)[_0x5069('0x17')](_0x4ce69d);}return null;};}function patchUpdates(_0x7dd897){return function(_0x1343d6){try{jsonpatch[_0x5069('0x1e')](_0x1343d6,_0x7dd897,!![]);}catch(_0x55eebd){return BPromise[_0x5069('0x1f')](_0x55eebd);}return _0x1343d6['save']();};}function saveUpdates(_0x4723c3,_0x62d5f2){return function(_0x2957ec){if(_0x2957ec){return _0x2957ec[_0x5069('0x20')](_0x4723c3)[_0x5069('0x21')](function(_0x16f976){return _0x16f976;});}return null;};}function removeEntity(_0x25a172,_0x25b9da){return function(_0x570a2a){if(_0x570a2a){return _0x570a2a[_0x5069('0x22')]()[_0x5069('0x21')](function(){_0x25a172[_0x5069('0x15')](0xcc)[_0x5069('0x16')]();});}};}function handleEntityNotFound(_0x4498ec,_0xbf3568){return function(_0x2717dc){if(!_0x2717dc){_0x4498ec[_0x5069('0x23')](0x194);}return _0x2717dc;};}function handleError(_0x3caf56,_0x38a591){_0x38a591=_0x38a591||0x1f4;return function(_0x28a1df){logger['error'](_0x28a1df[_0x5069('0x24')]);if(_0x28a1df['name']){delete _0x28a1df['name'];}_0x3caf56[_0x5069('0x15')](_0x38a591)[_0x5069('0x25')](_0x28a1df);};}exports[_0x5069('0x26')]=function(_0x3df89,_0x237ac4){var _0x13e182={},_0x4fe792={},_0x4ada47={'count':0x0,'rows':[]};var _0x5be8ad=_['map'](db[_0x5069('0x27')][_0x5069('0x28')],function(_0x101e92){return{'name':_0x101e92[_0x5069('0x29')],'type':_0x101e92[_0x5069('0x2a')][_0x5069('0x2b')]};});_0x4fe792[_0x5069('0x2c')]=_[_0x5069('0x2d')](_0x5be8ad,_0x5069('0x2e'));_0x4fe792[_0x5069('0x2f')]=_[_0x5069('0x30')](_0x3df89[_0x5069('0x2f')]);_0x4fe792[_0x5069('0x31')]=_[_0x5069('0x32')](_0x4fe792[_0x5069('0x2c')],_0x4fe792[_0x5069('0x2f')]);_0x13e182[_0x5069('0x33')]=_['intersection'](_0x4fe792[_0x5069('0x2c')],qs[_0x5069('0x34')](_0x3df89['query'][_0x5069('0x34')]));_0x13e182['attributes']=_0x13e182[_0x5069('0x33')]['length']?_0x13e182[_0x5069('0x33')]:_0x4fe792[_0x5069('0x2c')];if(!_0x3df89[_0x5069('0x2f')][_0x5069('0x35')](_0x5069('0x36'))){_0x13e182[_0x5069('0x19')]=qs[_0x5069('0x19')](_0x3df89[_0x5069('0x2f')]['limit']);_0x13e182[_0x5069('0x1b')]=qs[_0x5069('0x1b')](_0x3df89[_0x5069('0x2f')][_0x5069('0x1b')]);}_0x13e182[_0x5069('0x37')]=qs[_0x5069('0x38')](_0x3df89['query'][_0x5069('0x38')]);_0x13e182['where']=qs['filters'](_[_0x5069('0x39')](_0x3df89[_0x5069('0x2f')],_0x4fe792[_0x5069('0x31')]),_0x5be8ad);if(_0x3df89[_0x5069('0x2f')]['filter']){_0x13e182[_0x5069('0x3a')]=_[_0x5069('0x3b')](_0x13e182[_0x5069('0x3a')],{'$or':_[_0x5069('0x2d')](_0x5be8ad,function(_0x29c4a5){if(_0x29c4a5[_0x5069('0x2a')]!==_0x5069('0x3c')){var _0x20579f={};_0x20579f[_0x29c4a5[_0x5069('0x2e')]]={'$like':'%'+_0x3df89[_0x5069('0x2f')][_0x5069('0x3d')]+'%'};return _0x20579f;}})});}_0x13e182=_[_0x5069('0x3b')]({},_0x13e182,_0x3df89[_0x5069('0x3e')]);var _0x318dba={'where':_0x13e182[_0x5069('0x3a')]};return db['Attachment'][_0x5069('0x1a')](_0x318dba)[_0x5069('0x21')](function(_0x4047d4){_0x4ada47[_0x5069('0x1a')]=_0x4047d4;if(_0x3df89[_0x5069('0x2f')][_0x5069('0x3f')]){_0x13e182[_0x5069('0x40')]=[{'all':!![]}];}return db[_0x5069('0x27')]['findAll'](_0x13e182);})[_0x5069('0x21')](function(_0x341822){_0x4ada47[_0x5069('0x41')]=_0x341822;return _0x4ada47;})['then'](respondWithFilteredResult(_0x237ac4,_0x13e182))['catch'](handleError(_0x237ac4,null));};exports[_0x5069('0x42')]=function(_0x2b4caa,_0x389b5b){var _0x11683d={'raw':!![],'where':{'id':_0x2b4caa[_0x5069('0x43')]['id']}},_0x46b08a={};_0x46b08a[_0x5069('0x2c')]=_[_0x5069('0x30')](db[_0x5069('0x27')][_0x5069('0x28')]);_0x46b08a[_0x5069('0x2f')]=_[_0x5069('0x30')](_0x2b4caa[_0x5069('0x2f')]);_0x46b08a[_0x5069('0x31')]=_[_0x5069('0x32')](_0x46b08a[_0x5069('0x2c')],_0x46b08a[_0x5069('0x2f')]);_0x11683d[_0x5069('0x33')]=_[_0x5069('0x32')](_0x46b08a[_0x5069('0x2c')],qs[_0x5069('0x34')](_0x2b4caa[_0x5069('0x2f')][_0x5069('0x34')]));_0x11683d['attributes']=_0x11683d[_0x5069('0x33')][_0x5069('0x44')]?_0x11683d[_0x5069('0x33')]:_0x46b08a[_0x5069('0x2c')];if(_0x2b4caa['query']['includeAll']){_0x11683d['include']=[{'all':!![]}];}_0x11683d=_[_0x5069('0x3b')]({},_0x11683d,_0x2b4caa[_0x5069('0x3e')]);return db['Attachment'][_0x5069('0x45')](_0x11683d)['then'](handleEntityNotFound(_0x389b5b,null))[_0x5069('0x21')](respondWithResult(_0x389b5b,null))[_0x5069('0x46')](handleError(_0x389b5b,null));};exports[_0x5069('0x47')]=function(_0x49c18f,_0x10154f){var _0x384c5f={'where':{'id':_0x49c18f[_0x5069('0x43')]['id']}},_0x32bbe1={};_0x32bbe1[_0x5069('0x2c')]=_[_0x5069('0x30')](db[_0x5069('0x27')][_0x5069('0x28')]);_0x384c5f[_0x5069('0x33')]=_[_0x5069('0x32')](_0x32bbe1[_0x5069('0x2c')],qs[_0x5069('0x34')](_0x49c18f['query']['fields']));_0x384c5f[_0x5069('0x33')]=_0x384c5f[_0x5069('0x33')][_0x5069('0x44')]?_0x384c5f[_0x5069('0x33')]:_0x32bbe1[_0x5069('0x2c')];if(_0x49c18f[_0x5069('0x2f')]['includeAll']){_0x384c5f[_0x5069('0x40')]=[{'all':!![]}];}_0x384c5f=_[_0x5069('0x3b')]({},_0x384c5f,_0x49c18f[_0x5069('0x3e')]);return db['Attachment'][_0x5069('0x45')](_0x384c5f)[_0x5069('0x21')](handleEntityNotFound(_0x10154f,null))['then'](function(_0x55417a){if(_0x55417a){var _0x2fad22=_0x55417a['get']({'plain':!![]});_0x2fad22=qs[_0x5069('0x48')](_0x2fad22,['id',_0x5069('0x49'),_0x5069('0x4a')]);_0x49c18f[_0x5069('0x4b')]=_['omit'](_0x49c18f[_0x5069('0x4b')],['id',_0x5069('0x49'),_0x5069('0x4a')]);return db['Attachment'][_0x5069('0x4c')](_[_0x5069('0x3b')](_0x2fad22,_0x49c18f['body']),{'include':_0x49c18f[_0x5069('0x2f')]['includeAll']?[{'all':!![]}]:undefined});}})[_0x5069('0x21')](respondWithResult(_0x10154f,0xc9))['catch'](handleError(_0x10154f,null));};exports[_0x5069('0x20')]=function(_0x1edee7,_0xefc90a){if(_0x1edee7[_0x5069('0x4b')]['id']){delete _0x1edee7[_0x5069('0x4b')]['id'];}return db[_0x5069('0x27')][_0x5069('0x45')]({'where':{'id':_0x1edee7[_0x5069('0x43')]['id']}})[_0x5069('0x21')](handleEntityNotFound(_0xefc90a,null))[_0x5069('0x21')](saveUpdates(_0x1edee7[_0x5069('0x4b')],null))[_0x5069('0x21')](respondWithResult(_0xefc90a,null))['catch'](handleError(_0xefc90a,null));};exports['destroy']=function(_0x50030f,_0x1cc13e){return db['Attachment'][_0x5069('0x45')]({'where':{'id':_0x50030f[_0x5069('0x43')]['id']}})[_0x5069('0x21')](handleEntityNotFound(_0x1cc13e,null))[_0x5069('0x21')](removeEntity(_0x1cc13e,null))[_0x5069('0x46')](handleError(_0x1cc13e,null));};exports[_0x5069('0x4c')]=function(_0x41b0d6,_0x32315a,_0x1a9343){_0x41b0d6[_0x5069('0x4b')]['name']=_0x41b0d6[_0x5069('0x4d')][_0x5069('0x4e')];_0x41b0d6[_0x5069('0x4b')][_0x5069('0x4f')]=_0x41b0d6[_0x5069('0x4d')][_0x5069('0x50')];_0x41b0d6[_0x5069('0x4b')][_0x5069('0x2a')]=_0x41b0d6['file'][_0x5069('0x51')];return db[_0x5069('0x27')][_0x5069('0x4c')](_0x41b0d6[_0x5069('0x4b')])[_0x5069('0x21')](respondWithResult(_0x32315a,0xc9))[_0x5069('0x46')](handleError(_0x32315a,null));};exports[_0x5069('0x52')]=function(_0x2fb4e3,_0x1475cc,_0x125e1d){return db[_0x5069('0x27')][_0x5069('0x53')]({'where':{'id':_0x2fb4e3[_0x5069('0x43')]['id']},'raw':!![]})[_0x5069('0x21')](handleEntityNotFound(_0x1475cc,null))['then'](function(_0xf41968){if(_0xf41968){var _0x110c90=_0xf41968['ChatOfflineMessageId']!==null;var _0x3e1235=path[_0x5069('0x54')](config[_0x5069('0x55')],'server/files/attachments/');if(_0x110c90){_0x3e1235=path[_0x5069('0x54')](_0x3e1235,'offline-chat/');}var _0x5997d5=path[_0x5069('0x54')](_0x3e1235,_0xf41968[_0x5069('0x4f')]);return _0x1475cc['download'](_0x5997d5);}})['catch'](handleError(_0x1475cc,null));};