Built motion from commit 377f727e.|2.6.28
[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 _0xec58=['where','pick','filter','VIRTUAL','findAll','rows','catch','include','merge','options','find','includeAll','get','omit','createdAt','updatedAt','body','create','params','file','originalname','mimetype','download','findOne','join','root','offline-chat/','basename','eml-format','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','destroy','then','error','name','index','map','Attachment','rawAttributes','fieldName','type','key','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort'];(function(_0x6d6a66,_0x2924af){var _0x11eb6e=function(_0x52e55a){while(--_0x52e55a){_0x6d6a66['push'](_0x6d6a66['shift']());}};_0x11eb6e(++_0x2924af);}(_0xec58,0x6f));var _0x8ec5=function(_0x59b9d3,_0x384472){_0x59b9d3=_0x59b9d3-0x0;var _0x171163=_0xec58[_0x59b9d3];return _0x171163;};'use strict';var emlformat=require(_0x8ec5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8ec5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x8ec5('0x2'));var BPromise=require(_0x8ec5('0x3'));var Mustache=require(_0x8ec5('0x4'));var util=require(_0x8ec5('0x5'));var path=require(_0x8ec5('0x6'));var sox=require(_0x8ec5('0x7'));var csv=require(_0x8ec5('0x8'));var ejs=require(_0x8ec5('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8ec5('0xa'));var crypto=require(_0x8ec5('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x8ec5('0xc'));var toCsv=require(_0x8ec5('0x8'));var querystring=require(_0x8ec5('0xd'));var Papa=require('papaparse');var Redis=require(_0x8ec5('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x8ec5('0xf'));var as=require(_0x8ec5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x8ec5('0x11'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x8ec5('0x12'))['db'];function respondWithStatusCode(_0x49d7d7,_0x1656b2){_0x1656b2=_0x1656b2||0xcc;return function(_0x148c16){if(_0x148c16){return _0x49d7d7[_0x8ec5('0x13')](_0x1656b2);}return _0x49d7d7[_0x8ec5('0x14')](_0x1656b2)[_0x8ec5('0x15')]();};}function respondWithResult(_0x225eec,_0x11449c){_0x11449c=_0x11449c||0xc8;return function(_0x2e0507){if(_0x2e0507){return _0x225eec[_0x8ec5('0x14')](_0x11449c)[_0x8ec5('0x16')](_0x2e0507);}};}function respondWithFilteredResult(_0x398d38,_0x2ceb4f){return function(_0x111623){if(_0x111623){var _0x510026=typeof _0x2ceb4f['offset']===_0x8ec5('0x17')&&typeof _0x2ceb4f[_0x8ec5('0x18')]===_0x8ec5('0x17');var _0x29fdd2=_0x111623[_0x8ec5('0x19')];var _0x3a73fa=_0x510026?0x0:_0x2ceb4f['offset'];var _0x50c2fe=_0x510026?_0x111623[_0x8ec5('0x19')]:_0x2ceb4f[_0x8ec5('0x1a')]+_0x2ceb4f[_0x8ec5('0x18')];var _0x592338;if(_0x50c2fe>=_0x29fdd2){_0x50c2fe=_0x29fdd2;_0x592338=0xc8;}else{_0x592338=0xce;}_0x398d38[_0x8ec5('0x14')](_0x592338);return _0x398d38[_0x8ec5('0x1b')](_0x8ec5('0x1c'),_0x3a73fa+'-'+_0x50c2fe+'/'+_0x29fdd2)[_0x8ec5('0x16')](_0x111623);}return null;};}function patchUpdates(_0x554089){return function(_0x42e916){try{jsonpatch[_0x8ec5('0x1d')](_0x42e916,_0x554089,!![]);}catch(_0x388e11){return BPromise['reject'](_0x388e11);}return _0x42e916[_0x8ec5('0x1e')]();};}function saveUpdates(_0x8ad7dd,_0x5dc927){return function(_0x1133f3){if(_0x1133f3){return _0x1133f3[_0x8ec5('0x1f')](_0x8ad7dd)['then'](function(_0x37e746){return _0x37e746;});}return null;};}function removeEntity(_0x5526ae,_0x4494f6){return function(_0x3c3f94){if(_0x3c3f94){return _0x3c3f94[_0x8ec5('0x20')]()[_0x8ec5('0x21')](function(){_0x5526ae[_0x8ec5('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x319fe5,_0xcc182a){return function(_0x695619){if(!_0x695619){_0x319fe5['sendStatus'](0x194);}return _0x695619;};}function handleError(_0x469f05,_0x2de84c){_0x2de84c=_0x2de84c||0x1f4;return function(_0x31c709){logger[_0x8ec5('0x22')](_0x31c709['stack']);if(_0x31c709[_0x8ec5('0x23')]){delete _0x31c709[_0x8ec5('0x23')];}_0x469f05[_0x8ec5('0x14')](_0x2de84c)['send'](_0x31c709);};}exports[_0x8ec5('0x24')]=function(_0x471624,_0x5c799f){var _0x334f31={},_0x476804={},_0x5545dc={'count':0x0,'rows':[]};var _0x35a84f=_[_0x8ec5('0x25')](db[_0x8ec5('0x26')][_0x8ec5('0x27')],function(_0x145003){return{'name':_0x145003[_0x8ec5('0x28')],'type':_0x145003[_0x8ec5('0x29')][_0x8ec5('0x2a')]};});_0x476804['model']=_[_0x8ec5('0x25')](_0x35a84f,_0x8ec5('0x23'));_0x476804[_0x8ec5('0x2b')]=_[_0x8ec5('0x2c')](_0x471624['query']);_0x476804[_0x8ec5('0x2d')]=_['intersection'](_0x476804[_0x8ec5('0x2e')],_0x476804[_0x8ec5('0x2b')]);_0x334f31[_0x8ec5('0x2f')]=_[_0x8ec5('0x30')](_0x476804[_0x8ec5('0x2e')],qs[_0x8ec5('0x31')](_0x471624[_0x8ec5('0x2b')][_0x8ec5('0x31')]));_0x334f31[_0x8ec5('0x2f')]=_0x334f31[_0x8ec5('0x2f')][_0x8ec5('0x32')]?_0x334f31[_0x8ec5('0x2f')]:_0x476804['model'];if(!_0x471624[_0x8ec5('0x2b')][_0x8ec5('0x33')](_0x8ec5('0x34'))){_0x334f31[_0x8ec5('0x18')]=qs[_0x8ec5('0x18')](_0x471624[_0x8ec5('0x2b')][_0x8ec5('0x18')]);_0x334f31[_0x8ec5('0x1a')]=qs[_0x8ec5('0x1a')](_0x471624[_0x8ec5('0x2b')]['offset']);}_0x334f31[_0x8ec5('0x35')]=qs['sort'](_0x471624[_0x8ec5('0x2b')][_0x8ec5('0x36')]);_0x334f31[_0x8ec5('0x37')]=qs[_0x8ec5('0x2d')](_[_0x8ec5('0x38')](_0x471624[_0x8ec5('0x2b')],_0x476804[_0x8ec5('0x2d')]),_0x35a84f);if(_0x471624['query'][_0x8ec5('0x39')]){_0x334f31[_0x8ec5('0x37')]=_['merge'](_0x334f31[_0x8ec5('0x37')],{'$or':_[_0x8ec5('0x25')](_0x35a84f,function(_0x4d8dd9){if(_0x4d8dd9[_0x8ec5('0x29')]!==_0x8ec5('0x3a')){var _0x22375c={};_0x22375c[_0x4d8dd9[_0x8ec5('0x23')]]={'$like':'%'+_0x471624['query']['filter']+'%'};return _0x22375c;}})});}_0x334f31=_['merge']({},_0x334f31,_0x471624['options']);var _0x3a3484={'where':_0x334f31[_0x8ec5('0x37')]};return db[_0x8ec5('0x26')][_0x8ec5('0x19')](_0x3a3484)[_0x8ec5('0x21')](function(_0x2af444){_0x5545dc['count']=_0x2af444;if(_0x471624[_0x8ec5('0x2b')]['includeAll']){_0x334f31['include']=[{'all':!![]}];}return db['Attachment'][_0x8ec5('0x3b')](_0x334f31);})[_0x8ec5('0x21')](function(_0xffe4f5){_0x5545dc[_0x8ec5('0x3c')]=_0xffe4f5;return _0x5545dc;})[_0x8ec5('0x21')](respondWithFilteredResult(_0x5c799f,_0x334f31))[_0x8ec5('0x3d')](handleError(_0x5c799f,null));};exports['show']=function(_0x5bd822,_0x4fd812){var _0x6a3b4={'raw':!![],'where':{'id':_0x5bd822['params']['id']}},_0x55764d={};_0x55764d[_0x8ec5('0x2e')]=_['keys'](db[_0x8ec5('0x26')][_0x8ec5('0x27')]);_0x55764d[_0x8ec5('0x2b')]=_[_0x8ec5('0x2c')](_0x5bd822[_0x8ec5('0x2b')]);_0x55764d['filters']=_['intersection'](_0x55764d[_0x8ec5('0x2e')],_0x55764d[_0x8ec5('0x2b')]);_0x6a3b4[_0x8ec5('0x2f')]=_[_0x8ec5('0x30')](_0x55764d[_0x8ec5('0x2e')],qs[_0x8ec5('0x31')](_0x5bd822[_0x8ec5('0x2b')][_0x8ec5('0x31')]));_0x6a3b4['attributes']=_0x6a3b4[_0x8ec5('0x2f')][_0x8ec5('0x32')]?_0x6a3b4[_0x8ec5('0x2f')]:_0x55764d[_0x8ec5('0x2e')];if(_0x5bd822[_0x8ec5('0x2b')]['includeAll']){_0x6a3b4[_0x8ec5('0x3e')]=[{'all':!![]}];}_0x6a3b4=_[_0x8ec5('0x3f')]({},_0x6a3b4,_0x5bd822[_0x8ec5('0x40')]);return db[_0x8ec5('0x26')][_0x8ec5('0x41')](_0x6a3b4)[_0x8ec5('0x21')](handleEntityNotFound(_0x4fd812,null))['then'](respondWithResult(_0x4fd812,null))['catch'](handleError(_0x4fd812,null));};exports['clone']=function(_0x29b9a7,_0xbe9c86){var _0xff074f={'where':{'id':_0x29b9a7['params']['id']}},_0x352df5={};_0x352df5['model']=_[_0x8ec5('0x2c')](db['Attachment'][_0x8ec5('0x27')]);_0xff074f[_0x8ec5('0x2f')]=_[_0x8ec5('0x30')](_0x352df5[_0x8ec5('0x2e')],qs['fields'](_0x29b9a7[_0x8ec5('0x2b')][_0x8ec5('0x31')]));_0xff074f['attributes']=_0xff074f[_0x8ec5('0x2f')][_0x8ec5('0x32')]?_0xff074f[_0x8ec5('0x2f')]:_0x352df5['model'];if(_0x29b9a7['query'][_0x8ec5('0x42')]){_0xff074f['include']=[{'all':!![]}];}_0xff074f=_[_0x8ec5('0x3f')]({},_0xff074f,_0x29b9a7[_0x8ec5('0x40')]);return db[_0x8ec5('0x26')]['find'](_0xff074f)['then'](handleEntityNotFound(_0xbe9c86,null))[_0x8ec5('0x21')](function(_0x4940ce){if(_0x4940ce){var _0x186ce2=_0x4940ce[_0x8ec5('0x43')]({'plain':!![]});_0x186ce2=qs[_0x8ec5('0x44')](_0x186ce2,['id',_0x8ec5('0x45'),_0x8ec5('0x46')]);_0x29b9a7['body']=_[_0x8ec5('0x44')](_0x29b9a7[_0x8ec5('0x47')],['id',_0x8ec5('0x45'),_0x8ec5('0x46')]);return db[_0x8ec5('0x26')][_0x8ec5('0x48')](_['merge'](_0x186ce2,_0x29b9a7[_0x8ec5('0x47')]),{'include':_0x29b9a7[_0x8ec5('0x2b')][_0x8ec5('0x42')]?[{'all':!![]}]:undefined});}})[_0x8ec5('0x21')](respondWithResult(_0xbe9c86,0xc9))[_0x8ec5('0x3d')](handleError(_0xbe9c86,null));};exports[_0x8ec5('0x1f')]=function(_0x1e9617,_0x804c73){if(_0x1e9617[_0x8ec5('0x47')]['id']){delete _0x1e9617[_0x8ec5('0x47')]['id'];}return db[_0x8ec5('0x26')][_0x8ec5('0x41')]({'where':{'id':_0x1e9617[_0x8ec5('0x49')]['id']}})[_0x8ec5('0x21')](handleEntityNotFound(_0x804c73,null))[_0x8ec5('0x21')](saveUpdates(_0x1e9617[_0x8ec5('0x47')],null))[_0x8ec5('0x21')](respondWithResult(_0x804c73,null))['catch'](handleError(_0x804c73,null));};exports['destroy']=function(_0x34b0c1,_0x464f46){return db[_0x8ec5('0x26')][_0x8ec5('0x41')]({'where':{'id':_0x34b0c1[_0x8ec5('0x49')]['id']}})['then'](handleEntityNotFound(_0x464f46,null))[_0x8ec5('0x21')](removeEntity(_0x464f46,null))[_0x8ec5('0x3d')](handleError(_0x464f46,null));};exports[_0x8ec5('0x48')]=function(_0x403d92,_0x4b4324,_0x5cea8a){_0x403d92[_0x8ec5('0x47')][_0x8ec5('0x23')]=_0x403d92[_0x8ec5('0x4a')][_0x8ec5('0x4b')];_0x403d92[_0x8ec5('0x47')]['basename']=_0x403d92[_0x8ec5('0x4a')]['filename'];_0x403d92[_0x8ec5('0x47')][_0x8ec5('0x29')]=_0x403d92[_0x8ec5('0x4a')][_0x8ec5('0x4c')];return db[_0x8ec5('0x26')]['create'](_0x403d92[_0x8ec5('0x47')])[_0x8ec5('0x21')](respondWithResult(_0x4b4324,0xc9))[_0x8ec5('0x3d')](handleError(_0x4b4324,null));};exports[_0x8ec5('0x4d')]=function(_0x761384,_0x56c28f,_0xa48844){return db['Attachment'][_0x8ec5('0x4e')]({'where':{'id':_0x761384[_0x8ec5('0x49')]['id']},'raw':!![]})[_0x8ec5('0x21')](handleEntityNotFound(_0x56c28f,null))[_0x8ec5('0x21')](function(_0xec39ef){if(_0xec39ef){var _0x8557f5=_0xec39ef['ChatOfflineMessageId']!==null;var _0x5af917=path[_0x8ec5('0x4f')](config[_0x8ec5('0x50')],'server/files/attachments/');if(_0x8557f5){_0x5af917=path['join'](_0x5af917,_0x8ec5('0x51'));}var _0x2e74b3=path[_0x8ec5('0x4f')](_0x5af917,_0xec39ef[_0x8ec5('0x52')]);return _0x56c28f['download'](_0x2e74b3);}})[_0x8ec5('0x3d')](handleError(_0x56c28f,null));};