Built motion from commit ab870f9e.|2.5.44
[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 _0x66e3=['save','update','then','destroy','end','error','stack','name','send','map','Attachment','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','params','clone','get','omit','createdAt','updatedAt','body','create','find','file','originalname','basename','filename','type','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','download','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','to-csv','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','sendStatus','json','offset','undefined','limit','count','status','set','Content-Range','apply','reject'];(function(_0x1ca29f,_0x318ac5){var _0x576c3b=function(_0x40caab){while(--_0x40caab){_0x1ca29f['push'](_0x1ca29f['shift']());}};_0x576c3b(++_0x318ac5);}(_0x66e3,0xe0));var _0x366e=function(_0xc10d06,_0x591702){_0xc10d06=_0xc10d06-0x0;var _0x1eaa75=_0x66e3[_0xc10d06];return _0x1eaa75;};'use strict';var emlformat=require(_0x366e('0x0'));var rimraf=require(_0x366e('0x1'));var zipdir=require(_0x366e('0x2'));var jsonpatch=require(_0x366e('0x3'));var rp=require(_0x366e('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x366e('0x5'));var util=require('util');var path=require(_0x366e('0x6'));var sox=require('sox');var csv=require(_0x366e('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x366e('0x8'));var squel=require(_0x366e('0x9'));var crypto=require('crypto');var jsforce=require(_0x366e('0xa'));var deskjs=require(_0x366e('0xb'));var toCsv=require(_0x366e('0x7'));var querystring=require(_0x366e('0xc'));var Papa=require('papaparse');var Redis=require(_0x366e('0xd'));var authService=require(_0x366e('0xe'));var qs=require(_0x366e('0xf'));var as=require(_0x366e('0x10'));var hardwareService=require(_0x366e('0x11'));var logger=require('../../config/logger')(_0x366e('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x366e('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4a4c58,_0x205887){_0x205887=_0x205887||0xcc;return function(_0x592f3e){if(_0x592f3e){return _0x4a4c58[_0x366e('0x14')](_0x205887);}return _0x4a4c58['status'](_0x205887)['end']();};}function respondWithResult(_0x32a465,_0x2f4254){_0x2f4254=_0x2f4254||0xc8;return function(_0x5c64e7){if(_0x5c64e7){return _0x32a465['status'](_0x2f4254)[_0x366e('0x15')](_0x5c64e7);}};}function respondWithFilteredResult(_0x4ca37f,_0x1637ca){return function(_0x4683f4){if(_0x4683f4){var _0x207d02=typeof _0x1637ca[_0x366e('0x16')]===_0x366e('0x17')&&typeof _0x1637ca[_0x366e('0x18')]===_0x366e('0x17');var _0x3f476f=_0x4683f4[_0x366e('0x19')];var _0x4e1fd7=_0x207d02?0x0:_0x1637ca['offset'];var _0x318ca7=_0x207d02?_0x4683f4[_0x366e('0x19')]:_0x1637ca['offset']+_0x1637ca[_0x366e('0x18')];var _0x4ebb23;if(_0x318ca7>=_0x3f476f){_0x318ca7=_0x3f476f;_0x4ebb23=0xc8;}else{_0x4ebb23=0xce;}_0x4ca37f[_0x366e('0x1a')](_0x4ebb23);return _0x4ca37f[_0x366e('0x1b')](_0x366e('0x1c'),_0x4e1fd7+'-'+_0x318ca7+'/'+_0x3f476f)[_0x366e('0x15')](_0x4683f4);}return null;};}function patchUpdates(_0x27ab0f){return function(_0x80c0ff){try{jsonpatch[_0x366e('0x1d')](_0x80c0ff,_0x27ab0f,!![]);}catch(_0x520ed0){return BPromise[_0x366e('0x1e')](_0x520ed0);}return _0x80c0ff[_0x366e('0x1f')]();};}function saveUpdates(_0x3207b1,_0xe1d1c0){return function(_0xc0a7bf){if(_0xc0a7bf){return _0xc0a7bf[_0x366e('0x20')](_0x3207b1)[_0x366e('0x21')](function(_0x1db028){return _0x1db028;});}return null;};}function removeEntity(_0x2219ee,_0x3a037b){return function(_0x41f7f1){if(_0x41f7f1){return _0x41f7f1[_0x366e('0x22')]()['then'](function(){_0x2219ee['status'](0xcc)[_0x366e('0x23')]();});}};}function handleEntityNotFound(_0x5f043c,_0x49eae1){return function(_0x29f1f9){if(!_0x29f1f9){_0x5f043c[_0x366e('0x14')](0x194);}return _0x29f1f9;};}function handleError(_0x4e88a8,_0x205250){_0x205250=_0x205250||0x1f4;return function(_0x43bed1){logger[_0x366e('0x24')](_0x43bed1[_0x366e('0x25')]);if(_0x43bed1[_0x366e('0x26')]){delete _0x43bed1[_0x366e('0x26')];}_0x4e88a8[_0x366e('0x1a')](_0x205250)[_0x366e('0x27')](_0x43bed1);};}exports['index']=function(_0x2584e6,_0x319063){var _0x1da35a={},_0x70d65d={},_0x5236da={'count':0x0,'rows':[]};var _0x13002b=_[_0x366e('0x28')](db[_0x366e('0x29')][_0x366e('0x2a')],function(_0x4fe6bf){return{'name':_0x4fe6bf[_0x366e('0x2b')],'type':_0x4fe6bf['type'][_0x366e('0x2c')]};});_0x70d65d[_0x366e('0x2d')]=_[_0x366e('0x28')](_0x13002b,_0x366e('0x26'));_0x70d65d['query']=_[_0x366e('0x2e')](_0x2584e6[_0x366e('0x2f')]);_0x70d65d[_0x366e('0x30')]=_[_0x366e('0x31')](_0x70d65d[_0x366e('0x2d')],_0x70d65d['query']);_0x1da35a[_0x366e('0x32')]=_[_0x366e('0x31')](_0x70d65d[_0x366e('0x2d')],qs['fields'](_0x2584e6['query'][_0x366e('0x33')]));_0x1da35a[_0x366e('0x32')]=_0x1da35a[_0x366e('0x32')][_0x366e('0x34')]?_0x1da35a['attributes']:_0x70d65d['model'];if(!_0x2584e6[_0x366e('0x2f')][_0x366e('0x35')](_0x366e('0x36'))){_0x1da35a['limit']=qs[_0x366e('0x18')](_0x2584e6[_0x366e('0x2f')][_0x366e('0x18')]);_0x1da35a[_0x366e('0x16')]=qs[_0x366e('0x16')](_0x2584e6['query'][_0x366e('0x16')]);}_0x1da35a['order']=qs[_0x366e('0x37')](_0x2584e6['query'][_0x366e('0x37')]);_0x1da35a[_0x366e('0x38')]=qs[_0x366e('0x30')](_['pick'](_0x2584e6[_0x366e('0x2f')],_0x70d65d['filters']),_0x13002b);if(_0x2584e6['query'][_0x366e('0x39')]){_0x1da35a['where']=_[_0x366e('0x3a')](_0x1da35a[_0x366e('0x38')],{'$or':_[_0x366e('0x28')](_0x13002b,function(_0x9da0d2){if(_0x9da0d2['type']!==_0x366e('0x3b')){var _0x5db490={};_0x5db490[_0x9da0d2[_0x366e('0x26')]]={'$like':'%'+_0x2584e6['query']['filter']+'%'};return _0x5db490;}})});}_0x1da35a=_[_0x366e('0x3a')]({},_0x1da35a,_0x2584e6[_0x366e('0x3c')]);var _0x2d5884={'where':_0x1da35a[_0x366e('0x38')]};return db['Attachment']['count'](_0x2d5884)[_0x366e('0x21')](function(_0x466327){_0x5236da['count']=_0x466327;if(_0x2584e6[_0x366e('0x2f')][_0x366e('0x3d')]){_0x1da35a[_0x366e('0x3e')]=[{'all':!![]}];}return db[_0x366e('0x29')]['findAll'](_0x1da35a);})[_0x366e('0x21')](function(_0xc14a07){_0x5236da[_0x366e('0x3f')]=_0xc14a07;return _0x5236da;})[_0x366e('0x21')](respondWithFilteredResult(_0x319063,_0x1da35a))[_0x366e('0x40')](handleError(_0x319063,null));};exports['show']=function(_0x529db8,_0x4cbc12){var _0x4b84c0={'raw':!![],'where':{'id':_0x529db8[_0x366e('0x41')]['id']}},_0x8ca88={};_0x8ca88[_0x366e('0x2d')]=_[_0x366e('0x2e')](db[_0x366e('0x29')]['rawAttributes']);_0x8ca88[_0x366e('0x2f')]=_[_0x366e('0x2e')](_0x529db8[_0x366e('0x2f')]);_0x8ca88['filters']=_[_0x366e('0x31')](_0x8ca88['model'],_0x8ca88[_0x366e('0x2f')]);_0x4b84c0[_0x366e('0x32')]=_[_0x366e('0x31')](_0x8ca88[_0x366e('0x2d')],qs[_0x366e('0x33')](_0x529db8[_0x366e('0x2f')]['fields']));_0x4b84c0[_0x366e('0x32')]=_0x4b84c0[_0x366e('0x32')][_0x366e('0x34')]?_0x4b84c0['attributes']:_0x8ca88[_0x366e('0x2d')];if(_0x529db8[_0x366e('0x2f')][_0x366e('0x3d')]){_0x4b84c0[_0x366e('0x3e')]=[{'all':!![]}];}_0x4b84c0=_[_0x366e('0x3a')]({},_0x4b84c0,_0x529db8[_0x366e('0x3c')]);return db[_0x366e('0x29')]['find'](_0x4b84c0)[_0x366e('0x21')](handleEntityNotFound(_0x4cbc12,null))[_0x366e('0x21')](respondWithResult(_0x4cbc12,null))['catch'](handleError(_0x4cbc12,null));};exports[_0x366e('0x42')]=function(_0x4d687b,_0xb05b5c){var _0x3b73e4={'where':{'id':_0x4d687b[_0x366e('0x41')]['id']}},_0x29eb97={};_0x29eb97[_0x366e('0x2d')]=_[_0x366e('0x2e')](db[_0x366e('0x29')][_0x366e('0x2a')]);_0x3b73e4['attributes']=_[_0x366e('0x31')](_0x29eb97[_0x366e('0x2d')],qs['fields'](_0x4d687b[_0x366e('0x2f')]['fields']));_0x3b73e4[_0x366e('0x32')]=_0x3b73e4[_0x366e('0x32')][_0x366e('0x34')]?_0x3b73e4[_0x366e('0x32')]:_0x29eb97[_0x366e('0x2d')];if(_0x4d687b[_0x366e('0x2f')]['includeAll']){_0x3b73e4[_0x366e('0x3e')]=[{'all':!![]}];}_0x3b73e4=_[_0x366e('0x3a')]({},_0x3b73e4,_0x4d687b[_0x366e('0x3c')]);return db[_0x366e('0x29')]['find'](_0x3b73e4)[_0x366e('0x21')](handleEntityNotFound(_0xb05b5c,null))['then'](function(_0x9bb79e){if(_0x9bb79e){var _0x1d4a2b=_0x9bb79e[_0x366e('0x43')]({'plain':!![]});_0x1d4a2b=qs[_0x366e('0x44')](_0x1d4a2b,['id',_0x366e('0x45'),_0x366e('0x46')]);_0x4d687b[_0x366e('0x47')]=_[_0x366e('0x44')](_0x4d687b['body'],['id',_0x366e('0x45'),_0x366e('0x46')]);return db['Attachment'][_0x366e('0x48')](_[_0x366e('0x3a')](_0x1d4a2b,_0x4d687b[_0x366e('0x47')]),{'include':_0x4d687b[_0x366e('0x2f')][_0x366e('0x3d')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0xb05b5c,0xc9))[_0x366e('0x40')](handleError(_0xb05b5c,null));};exports[_0x366e('0x20')]=function(_0xb4e60c,_0x2cf1f7){if(_0xb4e60c['body']['id']){delete _0xb4e60c[_0x366e('0x47')]['id'];}return db[_0x366e('0x29')][_0x366e('0x49')]({'where':{'id':_0xb4e60c[_0x366e('0x41')]['id']}})['then'](handleEntityNotFound(_0x2cf1f7,null))[_0x366e('0x21')](saveUpdates(_0xb4e60c[_0x366e('0x47')],null))[_0x366e('0x21')](respondWithResult(_0x2cf1f7,null))[_0x366e('0x40')](handleError(_0x2cf1f7,null));};exports[_0x366e('0x22')]=function(_0x5ec971,_0x52e6ad){return db['Attachment'][_0x366e('0x49')]({'where':{'id':_0x5ec971['params']['id']}})[_0x366e('0x21')](handleEntityNotFound(_0x52e6ad,null))[_0x366e('0x21')](removeEntity(_0x52e6ad,null))[_0x366e('0x40')](handleError(_0x52e6ad,null));};exports[_0x366e('0x48')]=function(_0x9ae871,_0x458914,_0x159e29){_0x9ae871[_0x366e('0x47')]['name']=_0x9ae871[_0x366e('0x4a')][_0x366e('0x4b')];_0x9ae871['body'][_0x366e('0x4c')]=_0x9ae871[_0x366e('0x4a')][_0x366e('0x4d')];_0x9ae871['body'][_0x366e('0x4e')]=_0x9ae871['file']['mimetype'];return db[_0x366e('0x29')]['create'](_0x9ae871[_0x366e('0x47')])[_0x366e('0x21')](respondWithResult(_0x458914,0xc9))[_0x366e('0x40')](handleError(_0x458914,null));};exports['download']=function(_0x561a55,_0x58449f,_0x368ae5){return db[_0x366e('0x29')][_0x366e('0x4f')]({'where':{'id':_0x561a55[_0x366e('0x41')]['id']},'raw':!![]})[_0x366e('0x21')](handleEntityNotFound(_0x58449f,null))[_0x366e('0x21')](function(_0x1aec2c){if(_0x1aec2c){var _0x5ced4f=_0x1aec2c[_0x366e('0x50')]!==null;var _0x5ecfe5=path[_0x366e('0x51')](config[_0x366e('0x52')],_0x366e('0x53'));if(_0x5ced4f){_0x5ecfe5=path[_0x366e('0x51')](_0x5ecfe5,'offline-chat/');}var _0xa96812=path[_0x366e('0x51')](_0x5ecfe5,_0x1aec2c[_0x366e('0x4c')]);return _0x58449f[_0x366e('0x54')](_0xa96812);}})[_0x366e('0x40')](handleError(_0x58449f,null));};