Built motion from commit 00bf23f6.|2.6.16
[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 _0x7e6b=['reject','save','update','destroy','then','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','length','hasOwnProperty','nolimit','sort','where','merge','VIRTUAL','filter','options','Attachment','includeAll','include','findAll','rows','catch','show','params','find','clone','fields','get','omit','createdAt','body','updatedAt','create','file','originalname','basename','mimetype','download','findOne','ChatOfflineMessageId','join','root','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply'];(function(_0x3054be,_0x1bdc8b){var _0x3df150=function(_0x56cfbf){while(--_0x56cfbf){_0x3054be['push'](_0x3054be['shift']());}};_0x3df150(++_0x1bdc8b);}(_0x7e6b,0xf1));var _0xb7e6=function(_0x3bb688,_0x366c76){_0x3bb688=_0x3bb688-0x0;var _0x3cf101=_0x7e6b[_0x3bb688];return _0x3cf101;};'use strict';var emlformat=require(_0xb7e6('0x0'));var rimraf=require(_0xb7e6('0x1'));var zipdir=require(_0xb7e6('0x2'));var jsonpatch=require(_0xb7e6('0x3'));var rp=require(_0xb7e6('0x4'));var moment=require(_0xb7e6('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xb7e6('0x6'));var util=require(_0xb7e6('0x7'));var path=require(_0xb7e6('0x8'));var sox=require(_0xb7e6('0x9'));var csv=require(_0xb7e6('0xa'));var ejs=require(_0xb7e6('0xb'));var fs=require('fs');var fs_extra=require(_0xb7e6('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xb7e6('0xd'));var jsforce=require(_0xb7e6('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb7e6('0xf'));var Papa=require('papaparse');var Redis=require(_0xb7e6('0x10'));var authService=require(_0xb7e6('0x11'));var qs=require(_0xb7e6('0x12'));var as=require(_0xb7e6('0x13'));var hardwareService=require(_0xb7e6('0x14'));var logger=require(_0xb7e6('0x15'))(_0xb7e6('0x16'));var utils=require(_0xb7e6('0x17'));var config=require(_0xb7e6('0x18'));var licenseUtil=require(_0xb7e6('0x19'));var db=require(_0xb7e6('0x1a'))['db'];function respondWithStatusCode(_0x295367,_0x1c96e6){_0x1c96e6=_0x1c96e6||0xcc;return function(_0x13d386){if(_0x13d386){return _0x295367[_0xb7e6('0x1b')](_0x1c96e6);}return _0x295367[_0xb7e6('0x1c')](_0x1c96e6)[_0xb7e6('0x1d')]();};}function respondWithResult(_0x266dbc,_0x4e57ef){_0x4e57ef=_0x4e57ef||0xc8;return function(_0x14be64){if(_0x14be64){return _0x266dbc[_0xb7e6('0x1c')](_0x4e57ef)['json'](_0x14be64);}};}function respondWithFilteredResult(_0x267340,_0x274f7f){return function(_0x25dd5e){if(_0x25dd5e){var _0x3dd038=typeof _0x274f7f[_0xb7e6('0x1e')]==='undefined'&&typeof _0x274f7f['limit']===_0xb7e6('0x1f');var _0x3166cb=_0x25dd5e[_0xb7e6('0x20')];var _0x5433bd=_0x3dd038?0x0:_0x274f7f[_0xb7e6('0x1e')];var _0x5e5cda=_0x3dd038?_0x25dd5e[_0xb7e6('0x20')]:_0x274f7f[_0xb7e6('0x1e')]+_0x274f7f[_0xb7e6('0x21')];var _0x38b478;if(_0x5e5cda>=_0x3166cb){_0x5e5cda=_0x3166cb;_0x38b478=0xc8;}else{_0x38b478=0xce;}_0x267340[_0xb7e6('0x1c')](_0x38b478);return _0x267340[_0xb7e6('0x22')](_0xb7e6('0x23'),_0x5433bd+'-'+_0x5e5cda+'/'+_0x3166cb)[_0xb7e6('0x24')](_0x25dd5e);}return null;};}function patchUpdates(_0x2d3f3a){return function(_0x40d0a0){try{jsonpatch[_0xb7e6('0x25')](_0x40d0a0,_0x2d3f3a,!![]);}catch(_0x35486c){return BPromise[_0xb7e6('0x26')](_0x35486c);}return _0x40d0a0[_0xb7e6('0x27')]();};}function saveUpdates(_0x1d6328,_0x76c130){return function(_0xe5ea87){if(_0xe5ea87){return _0xe5ea87[_0xb7e6('0x28')](_0x1d6328)['then'](function(_0x1dadd2){return _0x1dadd2;});}return null;};}function removeEntity(_0x41a3e8,_0x278c71){return function(_0x27e647){if(_0x27e647){return _0x27e647[_0xb7e6('0x29')]()[_0xb7e6('0x2a')](function(){_0x41a3e8[_0xb7e6('0x1c')](0xcc)[_0xb7e6('0x1d')]();});}};}function handleEntityNotFound(_0x1e2b2b,_0x189092){return function(_0x59948f){if(!_0x59948f){_0x1e2b2b[_0xb7e6('0x1b')](0x194);}return _0x59948f;};}function handleError(_0x22e0f5,_0x516a39){_0x516a39=_0x516a39||0x1f4;return function(_0x3b9774){logger['error'](_0x3b9774[_0xb7e6('0x2b')]);if(_0x3b9774[_0xb7e6('0x2c')]){delete _0x3b9774[_0xb7e6('0x2c')];}_0x22e0f5[_0xb7e6('0x1c')](_0x516a39)[_0xb7e6('0x2d')](_0x3b9774);};}exports[_0xb7e6('0x2e')]=function(_0xdb6943,_0x5b42b9){var _0x38d2f3={},_0x5d15fc={},_0x4e7a4b={'count':0x0,'rows':[]};var _0x43847f=_[_0xb7e6('0x2f')](db['Attachment'][_0xb7e6('0x30')],function(_0x16ff3d){return{'name':_0x16ff3d[_0xb7e6('0x31')],'type':_0x16ff3d[_0xb7e6('0x32')][_0xb7e6('0x33')]};});_0x5d15fc[_0xb7e6('0x34')]=_['map'](_0x43847f,_0xb7e6('0x2c'));_0x5d15fc['query']=_[_0xb7e6('0x35')](_0xdb6943[_0xb7e6('0x36')]);_0x5d15fc[_0xb7e6('0x37')]=_['intersection'](_0x5d15fc[_0xb7e6('0x34')],_0x5d15fc[_0xb7e6('0x36')]);_0x38d2f3[_0xb7e6('0x38')]=_[_0xb7e6('0x39')](_0x5d15fc[_0xb7e6('0x34')],qs['fields'](_0xdb6943[_0xb7e6('0x36')]['fields']));_0x38d2f3['attributes']=_0x38d2f3[_0xb7e6('0x38')][_0xb7e6('0x3a')]?_0x38d2f3[_0xb7e6('0x38')]:_0x5d15fc[_0xb7e6('0x34')];if(!_0xdb6943[_0xb7e6('0x36')][_0xb7e6('0x3b')](_0xb7e6('0x3c'))){_0x38d2f3[_0xb7e6('0x21')]=qs[_0xb7e6('0x21')](_0xdb6943['query'][_0xb7e6('0x21')]);_0x38d2f3[_0xb7e6('0x1e')]=qs['offset'](_0xdb6943[_0xb7e6('0x36')]['offset']);}_0x38d2f3['order']=qs['sort'](_0xdb6943['query'][_0xb7e6('0x3d')]);_0x38d2f3[_0xb7e6('0x3e')]=qs['filters'](_['pick'](_0xdb6943[_0xb7e6('0x36')],_0x5d15fc['filters']),_0x43847f);if(_0xdb6943['query']['filter']){_0x38d2f3[_0xb7e6('0x3e')]=_[_0xb7e6('0x3f')](_0x38d2f3[_0xb7e6('0x3e')],{'$or':_[_0xb7e6('0x2f')](_0x43847f,function(_0x5a6b72){if(_0x5a6b72[_0xb7e6('0x32')]!==_0xb7e6('0x40')){var _0x1b8905={};_0x1b8905[_0x5a6b72[_0xb7e6('0x2c')]]={'$like':'%'+_0xdb6943[_0xb7e6('0x36')][_0xb7e6('0x41')]+'%'};return _0x1b8905;}})});}_0x38d2f3=_[_0xb7e6('0x3f')]({},_0x38d2f3,_0xdb6943[_0xb7e6('0x42')]);var _0x22ac6e={'where':_0x38d2f3['where']};return db[_0xb7e6('0x43')][_0xb7e6('0x20')](_0x22ac6e)['then'](function(_0xfca5cc){_0x4e7a4b[_0xb7e6('0x20')]=_0xfca5cc;if(_0xdb6943[_0xb7e6('0x36')][_0xb7e6('0x44')]){_0x38d2f3[_0xb7e6('0x45')]=[{'all':!![]}];}return db[_0xb7e6('0x43')][_0xb7e6('0x46')](_0x38d2f3);})['then'](function(_0x132e65){_0x4e7a4b[_0xb7e6('0x47')]=_0x132e65;return _0x4e7a4b;})['then'](respondWithFilteredResult(_0x5b42b9,_0x38d2f3))[_0xb7e6('0x48')](handleError(_0x5b42b9,null));};exports[_0xb7e6('0x49')]=function(_0x15c51b,_0x31f694){var _0x3c2d43={'raw':!![],'where':{'id':_0x15c51b[_0xb7e6('0x4a')]['id']}},_0x1465f1={};_0x1465f1[_0xb7e6('0x34')]=_['keys'](db[_0xb7e6('0x43')][_0xb7e6('0x30')]);_0x1465f1['query']=_[_0xb7e6('0x35')](_0x15c51b[_0xb7e6('0x36')]);_0x1465f1[_0xb7e6('0x37')]=_[_0xb7e6('0x39')](_0x1465f1[_0xb7e6('0x34')],_0x1465f1[_0xb7e6('0x36')]);_0x3c2d43[_0xb7e6('0x38')]=_['intersection'](_0x1465f1[_0xb7e6('0x34')],qs['fields'](_0x15c51b['query']['fields']));_0x3c2d43[_0xb7e6('0x38')]=_0x3c2d43[_0xb7e6('0x38')][_0xb7e6('0x3a')]?_0x3c2d43['attributes']:_0x1465f1['model'];if(_0x15c51b[_0xb7e6('0x36')][_0xb7e6('0x44')]){_0x3c2d43[_0xb7e6('0x45')]=[{'all':!![]}];}_0x3c2d43=_[_0xb7e6('0x3f')]({},_0x3c2d43,_0x15c51b[_0xb7e6('0x42')]);return db[_0xb7e6('0x43')][_0xb7e6('0x4b')](_0x3c2d43)['then'](handleEntityNotFound(_0x31f694,null))[_0xb7e6('0x2a')](respondWithResult(_0x31f694,null))[_0xb7e6('0x48')](handleError(_0x31f694,null));};exports[_0xb7e6('0x4c')]=function(_0x30a41e,_0x463ca1){var _0x1b9b20={'where':{'id':_0x30a41e['params']['id']}},_0x28b3f2={};_0x28b3f2[_0xb7e6('0x34')]=_[_0xb7e6('0x35')](db[_0xb7e6('0x43')][_0xb7e6('0x30')]);_0x1b9b20['attributes']=_[_0xb7e6('0x39')](_0x28b3f2[_0xb7e6('0x34')],qs[_0xb7e6('0x4d')](_0x30a41e[_0xb7e6('0x36')]['fields']));_0x1b9b20[_0xb7e6('0x38')]=_0x1b9b20[_0xb7e6('0x38')]['length']?_0x1b9b20[_0xb7e6('0x38')]:_0x28b3f2[_0xb7e6('0x34')];if(_0x30a41e[_0xb7e6('0x36')]['includeAll']){_0x1b9b20[_0xb7e6('0x45')]=[{'all':!![]}];}_0x1b9b20=_['merge']({},_0x1b9b20,_0x30a41e[_0xb7e6('0x42')]);return db[_0xb7e6('0x43')][_0xb7e6('0x4b')](_0x1b9b20)['then'](handleEntityNotFound(_0x463ca1,null))['then'](function(_0x18e9d3){if(_0x18e9d3){var _0x57f818=_0x18e9d3[_0xb7e6('0x4e')]({'plain':!![]});_0x57f818=qs[_0xb7e6('0x4f')](_0x57f818,['id',_0xb7e6('0x50'),'updatedAt']);_0x30a41e[_0xb7e6('0x51')]=_[_0xb7e6('0x4f')](_0x30a41e[_0xb7e6('0x51')],['id',_0xb7e6('0x50'),_0xb7e6('0x52')]);return db[_0xb7e6('0x43')][_0xb7e6('0x53')](_[_0xb7e6('0x3f')](_0x57f818,_0x30a41e[_0xb7e6('0x51')]),{'include':_0x30a41e['query'][_0xb7e6('0x44')]?[{'all':!![]}]:undefined});}})[_0xb7e6('0x2a')](respondWithResult(_0x463ca1,0xc9))[_0xb7e6('0x48')](handleError(_0x463ca1,null));};exports[_0xb7e6('0x28')]=function(_0x3b2482,_0x1d4113){if(_0x3b2482[_0xb7e6('0x51')]['id']){delete _0x3b2482[_0xb7e6('0x51')]['id'];}return db[_0xb7e6('0x43')][_0xb7e6('0x4b')]({'where':{'id':_0x3b2482[_0xb7e6('0x4a')]['id']}})[_0xb7e6('0x2a')](handleEntityNotFound(_0x1d4113,null))[_0xb7e6('0x2a')](saveUpdates(_0x3b2482['body'],null))[_0xb7e6('0x2a')](respondWithResult(_0x1d4113,null))[_0xb7e6('0x48')](handleError(_0x1d4113,null));};exports['destroy']=function(_0xfd220c,_0x51d020){return db[_0xb7e6('0x43')][_0xb7e6('0x4b')]({'where':{'id':_0xfd220c[_0xb7e6('0x4a')]['id']}})[_0xb7e6('0x2a')](handleEntityNotFound(_0x51d020,null))[_0xb7e6('0x2a')](removeEntity(_0x51d020,null))[_0xb7e6('0x48')](handleError(_0x51d020,null));};exports[_0xb7e6('0x53')]=function(_0x356afd,_0x5c5ccb,_0x26245e){_0x356afd['body'][_0xb7e6('0x2c')]=_0x356afd[_0xb7e6('0x54')][_0xb7e6('0x55')];_0x356afd[_0xb7e6('0x51')][_0xb7e6('0x56')]=_0x356afd[_0xb7e6('0x54')]['filename'];_0x356afd[_0xb7e6('0x51')][_0xb7e6('0x32')]=_0x356afd[_0xb7e6('0x54')][_0xb7e6('0x57')];return db[_0xb7e6('0x43')][_0xb7e6('0x53')](_0x356afd[_0xb7e6('0x51')])[_0xb7e6('0x2a')](respondWithResult(_0x5c5ccb,0xc9))[_0xb7e6('0x48')](handleError(_0x5c5ccb,null));};exports[_0xb7e6('0x58')]=function(_0x2cf568,_0x4d2ecb,_0x5cce7f){return db[_0xb7e6('0x43')][_0xb7e6('0x59')]({'where':{'id':_0x2cf568[_0xb7e6('0x4a')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x4d2ecb,null))[_0xb7e6('0x2a')](function(_0x1cd4f0){if(_0x1cd4f0){var _0xf43222=_0x1cd4f0[_0xb7e6('0x5a')]!==null;var _0x512a36=path[_0xb7e6('0x5b')](config[_0xb7e6('0x5c')],'server/files/attachments/');if(_0xf43222){_0x512a36=path['join'](_0x512a36,'offline-chat/');}var _0x3e1760=path[_0xb7e6('0x5b')](_0x512a36,_0x1cd4f0[_0xb7e6('0x56')]);return _0x4d2ecb[_0xb7e6('0x58')](_0x3e1760);}})[_0xb7e6('0x48')](handleError(_0x4d2ecb,null));};