Built motion from commit 746c7d2a.|2.5.35
[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 _0x1fe8=['body','create','file','originalname','filename','mimetype','download','findOne','join','root','server/files/attachments/','offline-chat/','basename','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','Content-Range','apply','save','update','then','stack','name','send','index','map','Attachment','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','intersection','find','clone','get','omit','createdAt','updatedAt'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x1fe8,0x6b));var _0x81fe=function(_0x5f1391,_0x19c132){_0x5f1391=_0x5f1391-0x0;var _0x50ebe3=_0x1fe8[_0x5f1391];return _0x50ebe3;};'use strict';var emlformat=require(_0x81fe('0x0'));var rimraf=require(_0x81fe('0x1'));var zipdir=require(_0x81fe('0x2'));var jsonpatch=require(_0x81fe('0x3'));var rp=require(_0x81fe('0x4'));var moment=require(_0x81fe('0x5'));var BPromise=require(_0x81fe('0x6'));var Mustache=require(_0x81fe('0x7'));var util=require('util');var path=require(_0x81fe('0x8'));var sox=require(_0x81fe('0x9'));var csv=require(_0x81fe('0xa'));var ejs=require(_0x81fe('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x81fe('0xc'));var squel=require(_0x81fe('0xd'));var crypto=require(_0x81fe('0xe'));var jsforce=require(_0x81fe('0xf'));var deskjs=require(_0x81fe('0x10'));var toCsv=require(_0x81fe('0xa'));var querystring=require(_0x81fe('0x11'));var Papa=require(_0x81fe('0x12'));var Redis=require('ioredis');var authService=require(_0x81fe('0x13'));var qs=require(_0x81fe('0x14'));var as=require(_0x81fe('0x15'));var hardwareService=require(_0x81fe('0x16'));var logger=require(_0x81fe('0x17'))(_0x81fe('0x18'));var utils=require(_0x81fe('0x19'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x81fe('0x1a'))['db'];function respondWithStatusCode(_0x133db9,_0x20ab46){_0x20ab46=_0x20ab46||0xcc;return function(_0x12ed09){if(_0x12ed09){return _0x133db9[_0x81fe('0x1b')](_0x20ab46);}return _0x133db9[_0x81fe('0x1c')](_0x20ab46)[_0x81fe('0x1d')]();};}function respondWithResult(_0x130b87,_0x434957){_0x434957=_0x434957||0xc8;return function(_0x199cf5){if(_0x199cf5){return _0x130b87[_0x81fe('0x1c')](_0x434957)[_0x81fe('0x1e')](_0x199cf5);}};}function respondWithFilteredResult(_0x3b6bc0,_0xb47cea){return function(_0x242c32){if(_0x242c32){var _0xcccbbc=typeof _0xb47cea['offset']===_0x81fe('0x1f')&&typeof _0xb47cea[_0x81fe('0x20')]===_0x81fe('0x1f');var _0x1af871=_0x242c32['count'];var _0x1f276f=_0xcccbbc?0x0:_0xb47cea[_0x81fe('0x21')];var _0x3ae6db=_0xcccbbc?_0x242c32[_0x81fe('0x22')]:_0xb47cea[_0x81fe('0x21')]+_0xb47cea[_0x81fe('0x20')];var _0x26ad54;if(_0x3ae6db>=_0x1af871){_0x3ae6db=_0x1af871;_0x26ad54=0xc8;}else{_0x26ad54=0xce;}_0x3b6bc0['status'](_0x26ad54);return _0x3b6bc0['set'](_0x81fe('0x23'),_0x1f276f+'-'+_0x3ae6db+'/'+_0x1af871)[_0x81fe('0x1e')](_0x242c32);}return null;};}function patchUpdates(_0x5d88b4){return function(_0x5adfb4){try{jsonpatch[_0x81fe('0x24')](_0x5adfb4,_0x5d88b4,!![]);}catch(_0x3c9462){return BPromise['reject'](_0x3c9462);}return _0x5adfb4[_0x81fe('0x25')]();};}function saveUpdates(_0x5778e1,_0x4aa2e4){return function(_0x22bcbc){if(_0x22bcbc){return _0x22bcbc[_0x81fe('0x26')](_0x5778e1)[_0x81fe('0x27')](function(_0x2f0d90){return _0x2f0d90;});}return null;};}function removeEntity(_0x5ac3c9,_0xd3b5c4){return function(_0x3f33ef){if(_0x3f33ef){return _0x3f33ef['destroy']()[_0x81fe('0x27')](function(){_0x5ac3c9['status'](0xcc)[_0x81fe('0x1d')]();});}};}function handleEntityNotFound(_0x980b6c,_0x2e0ff1){return function(_0x118a84){if(!_0x118a84){_0x980b6c[_0x81fe('0x1b')](0x194);}return _0x118a84;};}function handleError(_0x21ce6b,_0xac1cf9){_0xac1cf9=_0xac1cf9||0x1f4;return function(_0x4ac2a7){logger['error'](_0x4ac2a7[_0x81fe('0x28')]);if(_0x4ac2a7[_0x81fe('0x29')]){delete _0x4ac2a7[_0x81fe('0x29')];}_0x21ce6b['status'](_0xac1cf9)[_0x81fe('0x2a')](_0x4ac2a7);};}exports[_0x81fe('0x2b')]=function(_0x481c55,_0xaaf44e){var _0x10177a={},_0x2a1955={},_0x4b73a9={'count':0x0,'rows':[]};var _0x43a5b0=_[_0x81fe('0x2c')](db[_0x81fe('0x2d')][_0x81fe('0x2e')],function(_0x3dae16){return{'name':_0x3dae16[_0x81fe('0x2f')],'type':_0x3dae16[_0x81fe('0x30')][_0x81fe('0x31')]};});_0x2a1955[_0x81fe('0x32')]=_['map'](_0x43a5b0,'name');_0x2a1955[_0x81fe('0x33')]=_[_0x81fe('0x34')](_0x481c55[_0x81fe('0x33')]);_0x2a1955[_0x81fe('0x35')]=_['intersection'](_0x2a1955['model'],_0x2a1955[_0x81fe('0x33')]);_0x10177a[_0x81fe('0x36')]=_['intersection'](_0x2a1955[_0x81fe('0x32')],qs[_0x81fe('0x37')](_0x481c55[_0x81fe('0x33')]['fields']));_0x10177a['attributes']=_0x10177a['attributes'][_0x81fe('0x38')]?_0x10177a['attributes']:_0x2a1955[_0x81fe('0x32')];if(!_0x481c55[_0x81fe('0x33')][_0x81fe('0x39')](_0x81fe('0x3a'))){_0x10177a[_0x81fe('0x20')]=qs[_0x81fe('0x20')](_0x481c55['query']['limit']);_0x10177a[_0x81fe('0x21')]=qs[_0x81fe('0x21')](_0x481c55[_0x81fe('0x33')][_0x81fe('0x21')]);}_0x10177a[_0x81fe('0x3b')]=qs[_0x81fe('0x3c')](_0x481c55[_0x81fe('0x33')][_0x81fe('0x3c')]);_0x10177a[_0x81fe('0x3d')]=qs[_0x81fe('0x35')](_[_0x81fe('0x3e')](_0x481c55[_0x81fe('0x33')],_0x2a1955[_0x81fe('0x35')]),_0x43a5b0);if(_0x481c55[_0x81fe('0x33')]['filter']){_0x10177a['where']=_[_0x81fe('0x3f')](_0x10177a[_0x81fe('0x3d')],{'$or':_[_0x81fe('0x2c')](_0x43a5b0,function(_0x535005){if(_0x535005[_0x81fe('0x30')]!==_0x81fe('0x40')){var _0x1df42e={};_0x1df42e[_0x535005[_0x81fe('0x29')]]={'$like':'%'+_0x481c55[_0x81fe('0x33')][_0x81fe('0x41')]+'%'};return _0x1df42e;}})});}_0x10177a=_[_0x81fe('0x3f')]({},_0x10177a,_0x481c55[_0x81fe('0x42')]);var _0x21577f={'where':_0x10177a[_0x81fe('0x3d')]};return db[_0x81fe('0x2d')][_0x81fe('0x22')](_0x21577f)[_0x81fe('0x27')](function(_0x5bb41e){_0x4b73a9['count']=_0x5bb41e;if(_0x481c55['query'][_0x81fe('0x43')]){_0x10177a[_0x81fe('0x44')]=[{'all':!![]}];}return db[_0x81fe('0x2d')][_0x81fe('0x45')](_0x10177a);})[_0x81fe('0x27')](function(_0x235b62){_0x4b73a9[_0x81fe('0x46')]=_0x235b62;return _0x4b73a9;})[_0x81fe('0x27')](respondWithFilteredResult(_0xaaf44e,_0x10177a))[_0x81fe('0x47')](handleError(_0xaaf44e,null));};exports[_0x81fe('0x48')]=function(_0x2acf56,_0x17344f){var _0x315283={'raw':!![],'where':{'id':_0x2acf56[_0x81fe('0x49')]['id']}},_0x3493b1={};_0x3493b1['model']=_[_0x81fe('0x34')](db['Attachment'][_0x81fe('0x2e')]);_0x3493b1[_0x81fe('0x33')]=_[_0x81fe('0x34')](_0x2acf56[_0x81fe('0x33')]);_0x3493b1['filters']=_[_0x81fe('0x4a')](_0x3493b1[_0x81fe('0x32')],_0x3493b1[_0x81fe('0x33')]);_0x315283[_0x81fe('0x36')]=_[_0x81fe('0x4a')](_0x3493b1[_0x81fe('0x32')],qs[_0x81fe('0x37')](_0x2acf56[_0x81fe('0x33')][_0x81fe('0x37')]));_0x315283[_0x81fe('0x36')]=_0x315283[_0x81fe('0x36')][_0x81fe('0x38')]?_0x315283['attributes']:_0x3493b1[_0x81fe('0x32')];if(_0x2acf56[_0x81fe('0x33')][_0x81fe('0x43')]){_0x315283[_0x81fe('0x44')]=[{'all':!![]}];}_0x315283=_[_0x81fe('0x3f')]({},_0x315283,_0x2acf56['options']);return db[_0x81fe('0x2d')][_0x81fe('0x4b')](_0x315283)[_0x81fe('0x27')](handleEntityNotFound(_0x17344f,null))['then'](respondWithResult(_0x17344f,null))['catch'](handleError(_0x17344f,null));};exports[_0x81fe('0x4c')]=function(_0x5bc0f1,_0x3a765a){var _0x170866={'where':{'id':_0x5bc0f1[_0x81fe('0x49')]['id']}},_0x127f75={};_0x127f75['model']=_[_0x81fe('0x34')](db[_0x81fe('0x2d')][_0x81fe('0x2e')]);_0x170866[_0x81fe('0x36')]=_[_0x81fe('0x4a')](_0x127f75[_0x81fe('0x32')],qs[_0x81fe('0x37')](_0x5bc0f1[_0x81fe('0x33')][_0x81fe('0x37')]));_0x170866[_0x81fe('0x36')]=_0x170866[_0x81fe('0x36')]['length']?_0x170866[_0x81fe('0x36')]:_0x127f75[_0x81fe('0x32')];if(_0x5bc0f1[_0x81fe('0x33')][_0x81fe('0x43')]){_0x170866[_0x81fe('0x44')]=[{'all':!![]}];}_0x170866=_[_0x81fe('0x3f')]({},_0x170866,_0x5bc0f1[_0x81fe('0x42')]);return db['Attachment'][_0x81fe('0x4b')](_0x170866)[_0x81fe('0x27')](handleEntityNotFound(_0x3a765a,null))[_0x81fe('0x27')](function(_0xb7f83d){if(_0xb7f83d){var _0x3c77ef=_0xb7f83d[_0x81fe('0x4d')]({'plain':!![]});_0x3c77ef=qs[_0x81fe('0x4e')](_0x3c77ef,['id',_0x81fe('0x4f'),_0x81fe('0x50')]);_0x5bc0f1[_0x81fe('0x51')]=_[_0x81fe('0x4e')](_0x5bc0f1[_0x81fe('0x51')],['id','createdAt',_0x81fe('0x50')]);return db[_0x81fe('0x2d')]['create'](_[_0x81fe('0x3f')](_0x3c77ef,_0x5bc0f1['body']),{'include':_0x5bc0f1['query'][_0x81fe('0x43')]?[{'all':!![]}]:undefined});}})[_0x81fe('0x27')](respondWithResult(_0x3a765a,0xc9))[_0x81fe('0x47')](handleError(_0x3a765a,null));};exports[_0x81fe('0x26')]=function(_0x5d7040,_0x11e59a){if(_0x5d7040[_0x81fe('0x51')]['id']){delete _0x5d7040['body']['id'];}return db[_0x81fe('0x2d')][_0x81fe('0x4b')]({'where':{'id':_0x5d7040[_0x81fe('0x49')]['id']}})[_0x81fe('0x27')](handleEntityNotFound(_0x11e59a,null))[_0x81fe('0x27')](saveUpdates(_0x5d7040[_0x81fe('0x51')],null))['then'](respondWithResult(_0x11e59a,null))['catch'](handleError(_0x11e59a,null));};exports['destroy']=function(_0xe3adbe,_0x26633b){return db['Attachment'][_0x81fe('0x4b')]({'where':{'id':_0xe3adbe[_0x81fe('0x49')]['id']}})[_0x81fe('0x27')](handleEntityNotFound(_0x26633b,null))[_0x81fe('0x27')](removeEntity(_0x26633b,null))[_0x81fe('0x47')](handleError(_0x26633b,null));};exports[_0x81fe('0x52')]=function(_0x181f90,_0xa1a184,_0xa0ab11){_0x181f90[_0x81fe('0x51')][_0x81fe('0x29')]=_0x181f90[_0x81fe('0x53')][_0x81fe('0x54')];_0x181f90[_0x81fe('0x51')]['basename']=_0x181f90[_0x81fe('0x53')][_0x81fe('0x55')];_0x181f90[_0x81fe('0x51')][_0x81fe('0x30')]=_0x181f90[_0x81fe('0x53')][_0x81fe('0x56')];return db[_0x81fe('0x2d')][_0x81fe('0x52')](_0x181f90[_0x81fe('0x51')])[_0x81fe('0x27')](respondWithResult(_0xa1a184,0xc9))['catch'](handleError(_0xa1a184,null));};exports[_0x81fe('0x57')]=function(_0xfcad8b,_0x449bec,_0x129e9b){return db[_0x81fe('0x2d')][_0x81fe('0x58')]({'where':{'id':_0xfcad8b[_0x81fe('0x49')]['id']},'raw':!![]})[_0x81fe('0x27')](handleEntityNotFound(_0x449bec,null))[_0x81fe('0x27')](function(_0x227c31){if(_0x227c31){var _0x16426d=_0x227c31['ChatOfflineMessageId']!==null;var _0x259d02=path[_0x81fe('0x59')](config[_0x81fe('0x5a')],_0x81fe('0x5b'));if(_0x16426d){_0x259d02=path[_0x81fe('0x59')](_0x259d02,_0x81fe('0x5c'));}var _0x8e9a76=path[_0x81fe('0x59')](_0x259d02,_0x227c31[_0x81fe('0x5d')]);return _0x449bec['download'](_0x8e9a76);}})[_0x81fe('0x47')](handleError(_0x449bec,null));};