Built motion from commit c738b9ac.|2.6.25
[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 _0xc82e=['file','originalname','basename','filename','download','findOne','ChatOfflineMessageId','root','server/files/attachments/','offline-chat/','join','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','count','offset','apply','reject','save','update','then','destroy','error','stack','index','map','Attachment','rawAttributes','fieldName','type','key','name','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show','params','clone','options','find','body','createdAt','updatedAt','create'];(function(_0xff6ae1,_0x5c13e2){var _0x389fa2=function(_0x46f4cc){while(--_0x46f4cc){_0xff6ae1['push'](_0xff6ae1['shift']());}};_0x389fa2(++_0x5c13e2);}(_0xc82e,0xb7));var _0xec82=function(_0x470f5b,_0x150cfc){_0x470f5b=_0x470f5b-0x0;var _0x1dbc39=_0xc82e[_0x470f5b];return _0x1dbc39;};'use strict';var emlformat=require(_0xec82('0x0'));var rimraf=require(_0xec82('0x1'));var zipdir=require(_0xec82('0x2'));var jsonpatch=require(_0xec82('0x3'));var rp=require('request-promise');var moment=require(_0xec82('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xec82('0x5'));var util=require('util');var path=require(_0xec82('0x6'));var sox=require(_0xec82('0x7'));var csv=require(_0xec82('0x8'));var ejs=require(_0xec82('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xec82('0xa'));var squel=require(_0xec82('0xb'));var crypto=require('crypto');var jsforce=require(_0xec82('0xc'));var deskjs=require(_0xec82('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xec82('0xe'));var Redis=require(_0xec82('0xf'));var authService=require(_0xec82('0x10'));var qs=require(_0xec82('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xec82('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xec82('0x13'));var db=require(_0xec82('0x14'))['db'];function respondWithStatusCode(_0x1d9c15,_0x505a24){_0x505a24=_0x505a24||0xcc;return function(_0x5d6ee4){if(_0x5d6ee4){return _0x1d9c15[_0xec82('0x15')](_0x505a24);}return _0x1d9c15['status'](_0x505a24)[_0xec82('0x16')]();};}function respondWithResult(_0x164c68,_0x270805){_0x270805=_0x270805||0xc8;return function(_0x4bc95c){if(_0x4bc95c){return _0x164c68[_0xec82('0x17')](_0x270805)[_0xec82('0x18')](_0x4bc95c);}};}function respondWithFilteredResult(_0x306add,_0x3c56f9){return function(_0x219279){if(_0x219279){var _0x7c21fd=typeof _0x3c56f9['offset']===_0xec82('0x19')&&typeof _0x3c56f9['limit']===_0xec82('0x19');var _0xe4ddc7=_0x219279[_0xec82('0x1a')];var _0x25f699=_0x7c21fd?0x0:_0x3c56f9[_0xec82('0x1b')];var _0x3ad81c=_0x7c21fd?_0x219279[_0xec82('0x1a')]:_0x3c56f9[_0xec82('0x1b')]+_0x3c56f9['limit'];var _0x227cb7;if(_0x3ad81c>=_0xe4ddc7){_0x3ad81c=_0xe4ddc7;_0x227cb7=0xc8;}else{_0x227cb7=0xce;}_0x306add[_0xec82('0x17')](_0x227cb7);return _0x306add['set']('Content-Range',_0x25f699+'-'+_0x3ad81c+'/'+_0xe4ddc7)['json'](_0x219279);}return null;};}function patchUpdates(_0x24f60f){return function(_0x1f263a){try{jsonpatch[_0xec82('0x1c')](_0x1f263a,_0x24f60f,!![]);}catch(_0x28511a){return BPromise[_0xec82('0x1d')](_0x28511a);}return _0x1f263a[_0xec82('0x1e')]();};}function saveUpdates(_0x5d5452,_0x3961b0){return function(_0x3640fa){if(_0x3640fa){return _0x3640fa[_0xec82('0x1f')](_0x5d5452)[_0xec82('0x20')](function(_0x2a3420){return _0x2a3420;});}return null;};}function removeEntity(_0x5e0b0e,_0x1c3196){return function(_0x3d158e){if(_0x3d158e){return _0x3d158e[_0xec82('0x21')]()['then'](function(){_0x5e0b0e[_0xec82('0x17')](0xcc)[_0xec82('0x16')]();});}};}function handleEntityNotFound(_0x5b890c,_0x22f49f){return function(_0x22a1d7){if(!_0x22a1d7){_0x5b890c['sendStatus'](0x194);}return _0x22a1d7;};}function handleError(_0x31a869,_0x3db42e){_0x3db42e=_0x3db42e||0x1f4;return function(_0x1ed3a0){logger[_0xec82('0x22')](_0x1ed3a0[_0xec82('0x23')]);if(_0x1ed3a0['name']){delete _0x1ed3a0['name'];}_0x31a869['status'](_0x3db42e)['send'](_0x1ed3a0);};}exports[_0xec82('0x24')]=function(_0xa8adeb,_0x39181d){var _0x13ed4f={},_0x2e8f12={},_0x190ee0={'count':0x0,'rows':[]};var _0x1af8ca=_[_0xec82('0x25')](db[_0xec82('0x26')][_0xec82('0x27')],function(_0x13ceb5){return{'name':_0x13ceb5[_0xec82('0x28')],'type':_0x13ceb5[_0xec82('0x29')][_0xec82('0x2a')]};});_0x2e8f12['model']=_[_0xec82('0x25')](_0x1af8ca,_0xec82('0x2b'));_0x2e8f12[_0xec82('0x2c')]=_[_0xec82('0x2d')](_0xa8adeb['query']);_0x2e8f12['filters']=_[_0xec82('0x2e')](_0x2e8f12[_0xec82('0x2f')],_0x2e8f12[_0xec82('0x2c')]);_0x13ed4f[_0xec82('0x30')]=_['intersection'](_0x2e8f12[_0xec82('0x2f')],qs[_0xec82('0x31')](_0xa8adeb[_0xec82('0x2c')]['fields']));_0x13ed4f[_0xec82('0x30')]=_0x13ed4f[_0xec82('0x30')][_0xec82('0x32')]?_0x13ed4f[_0xec82('0x30')]:_0x2e8f12['model'];if(!_0xa8adeb[_0xec82('0x2c')][_0xec82('0x33')](_0xec82('0x34'))){_0x13ed4f['limit']=qs[_0xec82('0x35')](_0xa8adeb[_0xec82('0x2c')][_0xec82('0x35')]);_0x13ed4f[_0xec82('0x1b')]=qs['offset'](_0xa8adeb['query'][_0xec82('0x1b')]);}_0x13ed4f[_0xec82('0x36')]=qs[_0xec82('0x37')](_0xa8adeb[_0xec82('0x2c')]['sort']);_0x13ed4f[_0xec82('0x38')]=qs[_0xec82('0x39')](_[_0xec82('0x3a')](_0xa8adeb[_0xec82('0x2c')],_0x2e8f12['filters']),_0x1af8ca);if(_0xa8adeb['query'][_0xec82('0x3b')]){_0x13ed4f[_0xec82('0x38')]=_[_0xec82('0x3c')](_0x13ed4f[_0xec82('0x38')],{'$or':_[_0xec82('0x25')](_0x1af8ca,function(_0x4eab56){if(_0x4eab56['type']!==_0xec82('0x3d')){var _0x556d1d={};_0x556d1d[_0x4eab56['name']]={'$like':'%'+_0xa8adeb[_0xec82('0x2c')][_0xec82('0x3b')]+'%'};return _0x556d1d;}})});}_0x13ed4f=_['merge']({},_0x13ed4f,_0xa8adeb['options']);var _0x12a743={'where':_0x13ed4f[_0xec82('0x38')]};return db[_0xec82('0x26')][_0xec82('0x1a')](_0x12a743)[_0xec82('0x20')](function(_0x5e76ff){_0x190ee0[_0xec82('0x1a')]=_0x5e76ff;if(_0xa8adeb[_0xec82('0x2c')][_0xec82('0x3e')]){_0x13ed4f[_0xec82('0x3f')]=[{'all':!![]}];}return db['Attachment'][_0xec82('0x40')](_0x13ed4f);})[_0xec82('0x20')](function(_0x2e7e65){_0x190ee0['rows']=_0x2e7e65;return _0x190ee0;})[_0xec82('0x20')](respondWithFilteredResult(_0x39181d,_0x13ed4f))[_0xec82('0x41')](handleError(_0x39181d,null));};exports[_0xec82('0x42')]=function(_0x50d8a5,_0x1ca76a){var _0x197613={'raw':!![],'where':{'id':_0x50d8a5[_0xec82('0x43')]['id']}},_0x11fc8b={};_0x11fc8b[_0xec82('0x2f')]=_['keys'](db[_0xec82('0x26')][_0xec82('0x27')]);_0x11fc8b[_0xec82('0x2c')]=_['keys'](_0x50d8a5[_0xec82('0x2c')]);_0x11fc8b[_0xec82('0x39')]=_[_0xec82('0x2e')](_0x11fc8b['model'],_0x11fc8b[_0xec82('0x2c')]);_0x197613[_0xec82('0x30')]=_[_0xec82('0x2e')](_0x11fc8b[_0xec82('0x2f')],qs[_0xec82('0x31')](_0x50d8a5['query'][_0xec82('0x31')]));_0x197613['attributes']=_0x197613[_0xec82('0x30')][_0xec82('0x32')]?_0x197613['attributes']:_0x11fc8b[_0xec82('0x2f')];if(_0x50d8a5['query'][_0xec82('0x3e')]){_0x197613['include']=[{'all':!![]}];}_0x197613=_[_0xec82('0x3c')]({},_0x197613,_0x50d8a5['options']);return db[_0xec82('0x26')]['find'](_0x197613)['then'](handleEntityNotFound(_0x1ca76a,null))[_0xec82('0x20')](respondWithResult(_0x1ca76a,null))['catch'](handleError(_0x1ca76a,null));};exports[_0xec82('0x44')]=function(_0x30626e,_0x4780dc){var _0x5cb3e1={'where':{'id':_0x30626e[_0xec82('0x43')]['id']}},_0xce319c={};_0xce319c[_0xec82('0x2f')]=_[_0xec82('0x2d')](db['Attachment']['rawAttributes']);_0x5cb3e1['attributes']=_[_0xec82('0x2e')](_0xce319c[_0xec82('0x2f')],qs[_0xec82('0x31')](_0x30626e[_0xec82('0x2c')]['fields']));_0x5cb3e1[_0xec82('0x30')]=_0x5cb3e1['attributes'][_0xec82('0x32')]?_0x5cb3e1[_0xec82('0x30')]:_0xce319c['model'];if(_0x30626e[_0xec82('0x2c')][_0xec82('0x3e')]){_0x5cb3e1[_0xec82('0x3f')]=[{'all':!![]}];}_0x5cb3e1=_['merge']({},_0x5cb3e1,_0x30626e[_0xec82('0x45')]);return db['Attachment'][_0xec82('0x46')](_0x5cb3e1)[_0xec82('0x20')](handleEntityNotFound(_0x4780dc,null))['then'](function(_0x48597c){if(_0x48597c){var _0x1b891b=_0x48597c['get']({'plain':!![]});_0x1b891b=qs['omit'](_0x1b891b,['id','createdAt','updatedAt']);_0x30626e[_0xec82('0x47')]=_['omit'](_0x30626e['body'],['id',_0xec82('0x48'),_0xec82('0x49')]);return db[_0xec82('0x26')][_0xec82('0x4a')](_['merge'](_0x1b891b,_0x30626e[_0xec82('0x47')]),{'include':_0x30626e[_0xec82('0x2c')][_0xec82('0x3e')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x4780dc,0xc9))[_0xec82('0x41')](handleError(_0x4780dc,null));};exports[_0xec82('0x1f')]=function(_0xd460ca,_0x51fd71){if(_0xd460ca[_0xec82('0x47')]['id']){delete _0xd460ca[_0xec82('0x47')]['id'];}return db[_0xec82('0x26')][_0xec82('0x46')]({'where':{'id':_0xd460ca[_0xec82('0x43')]['id']}})['then'](handleEntityNotFound(_0x51fd71,null))[_0xec82('0x20')](saveUpdates(_0xd460ca[_0xec82('0x47')],null))['then'](respondWithResult(_0x51fd71,null))[_0xec82('0x41')](handleError(_0x51fd71,null));};exports[_0xec82('0x21')]=function(_0x5dad17,_0x21d222){return db['Attachment']['find']({'where':{'id':_0x5dad17[_0xec82('0x43')]['id']}})[_0xec82('0x20')](handleEntityNotFound(_0x21d222,null))['then'](removeEntity(_0x21d222,null))[_0xec82('0x41')](handleError(_0x21d222,null));};exports['create']=function(_0x83f6ec,_0x2f3cf3,_0x135607){_0x83f6ec[_0xec82('0x47')][_0xec82('0x2b')]=_0x83f6ec[_0xec82('0x4b')][_0xec82('0x4c')];_0x83f6ec[_0xec82('0x47')][_0xec82('0x4d')]=_0x83f6ec['file'][_0xec82('0x4e')];_0x83f6ec[_0xec82('0x47')][_0xec82('0x29')]=_0x83f6ec[_0xec82('0x4b')]['mimetype'];return db[_0xec82('0x26')][_0xec82('0x4a')](_0x83f6ec['body'])[_0xec82('0x20')](respondWithResult(_0x2f3cf3,0xc9))[_0xec82('0x41')](handleError(_0x2f3cf3,null));};exports[_0xec82('0x4f')]=function(_0x228f67,_0x332cf2,_0x33481b){return db['Attachment'][_0xec82('0x50')]({'where':{'id':_0x228f67['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x332cf2,null))['then'](function(_0x1c9eee){if(_0x1c9eee){var _0x4c910a=_0x1c9eee[_0xec82('0x51')]!==null;var _0x14ad9a=path['join'](config[_0xec82('0x52')],_0xec82('0x53'));if(_0x4c910a){_0x14ad9a=path['join'](_0x14ad9a,_0xec82('0x54'));}var _0x6747ca=path[_0xec82('0x55')](_0x14ad9a,_0x1c9eee[_0xec82('0x4d')]);return _0x332cf2[_0xec82('0x4f')](_0x6747ca);}})[_0xec82('0x41')](handleError(_0x332cf2,null));};