612e7b66b68140f1c2089452ad9c24194a4775f1
[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 _0xbae6=['../../config/environment','end','json','count','set','save','destroy','then','status','error','stack','name','send','index','map','Attachment','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','limit','offset','order','sort','pick','filter','where','merge','VIRTUAL','include','findAll','rows','catch','length','includeAll','find','clone','params','options','get','omit','createdAt','updatedAt','body','create','update','file','originalname','basename','filename','download','findOne','join','root','server/files/attachments/','html-pdf','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x1f6a6a,_0x406f02){var _0x2b648d=function(_0x461312){while(--_0x461312){_0x1f6a6a['push'](_0x1f6a6a['shift']());}};_0x2b648d(++_0x406f02);}(_0xbae6,0x98));var _0x6bae=function(_0x5712f8,_0x17156b){_0x5712f8=_0x5712f8-0x0;var _0x14a364=_0xbae6[_0x5712f8];return _0x14a364;};'use strict';var pdf=require(_0x6bae('0x0'));var emlformat=require(_0x6bae('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x6bae('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6bae('0x3'));var moment=require(_0x6bae('0x4'));var BPromise=require(_0x6bae('0x5'));var Mustache=require(_0x6bae('0x6'));var util=require(_0x6bae('0x7'));var path=require(_0x6bae('0x8'));var sox=require(_0x6bae('0x9'));var csv=require(_0x6bae('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6bae('0xb'));var squel=require('squel');var crypto=require(_0x6bae('0xc'));var jsforce=require(_0x6bae('0xd'));var deskjs=require(_0x6bae('0xe'));var toCsv=require(_0x6bae('0xa'));var querystring=require(_0x6bae('0xf'));var Papa=require(_0x6bae('0x10'));var Redis=require(_0x6bae('0x11'));var authService=require(_0x6bae('0x12'));var qs=require(_0x6bae('0x13'));var as=require(_0x6bae('0x14'));var hardwareService=require(_0x6bae('0x15'));var logger=require(_0x6bae('0x16'))(_0x6bae('0x17'));var utils=require('../../config/utils');var config=require(_0x6bae('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x377564,_0x4a35c4){_0x4a35c4=_0x4a35c4||0xcc;return function(_0x4b454d){if(_0x4b454d){return _0x377564['sendStatus'](_0x4a35c4);}return _0x377564['status'](_0x4a35c4)[_0x6bae('0x19')]();};}function respondWithResult(_0x5e61d5,_0x71e75b){_0x71e75b=_0x71e75b||0xc8;return function(_0x5e7162){if(_0x5e7162){return _0x5e61d5['status'](_0x71e75b)[_0x6bae('0x1a')](_0x5e7162);}};}function respondWithFilteredResult(_0x58bcb7,_0x59a60e){return function(_0x3787ac){if(_0x3787ac){var _0x3f17ee=_0x3787ac[_0x6bae('0x1b')],_0x40fa23=_0x59a60e['offset'],_0x49370f=_0x59a60e['offset']+_0x59a60e['limit'],_0x1915c5;if(_0x49370f>=_0x3f17ee){_0x49370f=_0x3f17ee;_0x1915c5=0xc8;}else{_0x1915c5=0xce;}_0x58bcb7['status'](_0x1915c5);return _0x58bcb7[_0x6bae('0x1c')]('Content-Range',_0x40fa23+'-'+_0x49370f+'/'+_0x3f17ee)[_0x6bae('0x1a')](_0x3787ac);}return null;};}function patchUpdates(_0x9f2fa5){return function(_0x1f7497){try{jsonpatch['apply'](_0x1f7497,_0x9f2fa5,!![]);}catch(_0x3dd6f6){return BPromise['reject'](_0x3dd6f6);}return _0x1f7497[_0x6bae('0x1d')]();};}function saveUpdates(_0x17610f,_0x1da588){return function(_0x491cd6){if(_0x491cd6){return _0x491cd6['update'](_0x17610f)['then'](function(_0x3e1ea9){return _0x3e1ea9;});}return null;};}function removeEntity(_0x3edc3b,_0x2a3b66){return function(_0x478285){if(_0x478285){return _0x478285[_0x6bae('0x1e')]()[_0x6bae('0x1f')](function(){_0x3edc3b[_0x6bae('0x20')](0xcc)[_0x6bae('0x19')]();});}};}function handleEntityNotFound(_0x2d0c0e,_0x296053){return function(_0x14d899){if(!_0x14d899){_0x2d0c0e['sendStatus'](0x194);}return _0x14d899;};}function handleError(_0x137355,_0x1520b0){_0x1520b0=_0x1520b0||0x1f4;return function(_0x233031){logger[_0x6bae('0x21')](_0x233031[_0x6bae('0x22')]);if(_0x233031['name']){delete _0x233031[_0x6bae('0x23')];}_0x137355[_0x6bae('0x20')](_0x1520b0)[_0x6bae('0x24')](_0x233031);};}exports[_0x6bae('0x25')]=function(_0x17e35d,_0x43449a){var _0x2d1d2e={},_0x1c832a={},_0x41c21e={'count':0x0,'rows':[]};var _0x2c0907=_[_0x6bae('0x26')](db[_0x6bae('0x27')][_0x6bae('0x28')],function(_0x49e0f9){return{'name':_0x49e0f9[_0x6bae('0x29')],'type':_0x49e0f9[_0x6bae('0x2a')][_0x6bae('0x2b')]};});_0x1c832a['model']=_['map'](_0x2c0907,_0x6bae('0x23'));_0x1c832a[_0x6bae('0x2c')]=_[_0x6bae('0x2d')](_0x17e35d['query']);_0x1c832a[_0x6bae('0x2e')]=_[_0x6bae('0x2f')](_0x1c832a[_0x6bae('0x30')],_0x1c832a[_0x6bae('0x2c')]);_0x2d1d2e[_0x6bae('0x31')]=_[_0x6bae('0x2f')](_0x1c832a[_0x6bae('0x30')],qs[_0x6bae('0x32')](_0x17e35d[_0x6bae('0x2c')][_0x6bae('0x32')]));_0x2d1d2e[_0x6bae('0x31')]=_0x2d1d2e[_0x6bae('0x31')]['length']?_0x2d1d2e[_0x6bae('0x31')]:_0x1c832a[_0x6bae('0x30')];if(!_0x17e35d['query'][_0x6bae('0x33')](_0x6bae('0x34'))){_0x2d1d2e[_0x6bae('0x35')]=qs[_0x6bae('0x35')](_0x17e35d[_0x6bae('0x2c')][_0x6bae('0x35')]);_0x2d1d2e[_0x6bae('0x36')]=qs[_0x6bae('0x36')](_0x17e35d[_0x6bae('0x2c')]['offset']);}_0x2d1d2e[_0x6bae('0x37')]=qs['sort'](_0x17e35d['query'][_0x6bae('0x38')]);_0x2d1d2e['where']=qs[_0x6bae('0x2e')](_[_0x6bae('0x39')](_0x17e35d[_0x6bae('0x2c')],_0x1c832a[_0x6bae('0x2e')]));if(_0x17e35d[_0x6bae('0x2c')][_0x6bae('0x3a')]){_0x2d1d2e[_0x6bae('0x3b')]=_[_0x6bae('0x3c')](_0x2d1d2e[_0x6bae('0x3b')],{'$or':_[_0x6bae('0x26')](_0x2c0907,function(_0x3378ce){if(_0x3378ce[_0x6bae('0x2a')]!==_0x6bae('0x3d')){var _0x1eada0={};_0x1eada0[_0x3378ce['name']]={'$like':'%'+_0x17e35d[_0x6bae('0x2c')][_0x6bae('0x3a')]+'%'};return _0x1eada0;}})});}_0x2d1d2e=_['merge']({},_0x2d1d2e,_0x17e35d['options']);var _0x1deba2={'where':_0x2d1d2e['where']};return db[_0x6bae('0x27')][_0x6bae('0x1b')](_0x1deba2)['then'](function(_0x30a2c3){_0x41c21e[_0x6bae('0x1b')]=_0x30a2c3;if(_0x17e35d[_0x6bae('0x2c')]['includeAll']){_0x2d1d2e[_0x6bae('0x3e')]=[{'all':!![]}];}return db[_0x6bae('0x27')][_0x6bae('0x3f')](_0x2d1d2e);})[_0x6bae('0x1f')](function(_0x5cc309){_0x41c21e[_0x6bae('0x40')]=_0x5cc309;return _0x41c21e;})['then'](respondWithFilteredResult(_0x43449a,_0x2d1d2e))[_0x6bae('0x41')](handleError(_0x43449a,null));};exports['show']=function(_0x27bcc4,_0x20a9a5){var _0x1bd25d={'raw':!![],'where':{'id':_0x27bcc4['params']['id']}},_0x2daf1a={};_0x2daf1a['model']=_[_0x6bae('0x2d')](db[_0x6bae('0x27')][_0x6bae('0x28')]);_0x2daf1a[_0x6bae('0x2c')]=_[_0x6bae('0x2d')](_0x27bcc4[_0x6bae('0x2c')]);_0x2daf1a['filters']=_[_0x6bae('0x2f')](_0x2daf1a[_0x6bae('0x30')],_0x2daf1a[_0x6bae('0x2c')]);_0x1bd25d['attributes']=_['intersection'](_0x2daf1a[_0x6bae('0x30')],qs[_0x6bae('0x32')](_0x27bcc4['query'][_0x6bae('0x32')]));_0x1bd25d['attributes']=_0x1bd25d[_0x6bae('0x31')][_0x6bae('0x42')]?_0x1bd25d[_0x6bae('0x31')]:_0x2daf1a['model'];if(_0x27bcc4[_0x6bae('0x2c')][_0x6bae('0x43')]){_0x1bd25d[_0x6bae('0x3e')]=[{'all':!![]}];}_0x1bd25d=_[_0x6bae('0x3c')]({},_0x1bd25d,_0x27bcc4['options']);return db[_0x6bae('0x27')][_0x6bae('0x44')](_0x1bd25d)['then'](handleEntityNotFound(_0x20a9a5,null))[_0x6bae('0x1f')](respondWithResult(_0x20a9a5,null))[_0x6bae('0x41')](handleError(_0x20a9a5,null));};exports[_0x6bae('0x45')]=function(_0x3e9531,_0x484992){var _0x3512b7={'where':{'id':_0x3e9531[_0x6bae('0x46')]['id']}},_0x521aa8={};_0x521aa8[_0x6bae('0x30')]=_[_0x6bae('0x2d')](db['Attachment']['rawAttributes']);_0x3512b7[_0x6bae('0x31')]=_[_0x6bae('0x2f')](_0x521aa8[_0x6bae('0x30')],qs['fields'](_0x3e9531['query'][_0x6bae('0x32')]));_0x3512b7['attributes']=_0x3512b7['attributes'][_0x6bae('0x42')]?_0x3512b7['attributes']:_0x521aa8['model'];if(_0x3e9531[_0x6bae('0x2c')]['includeAll']){_0x3512b7[_0x6bae('0x3e')]=[{'all':!![]}];}_0x3512b7=_[_0x6bae('0x3c')]({},_0x3512b7,_0x3e9531[_0x6bae('0x47')]);return db[_0x6bae('0x27')][_0x6bae('0x44')](_0x3512b7)['then'](handleEntityNotFound(_0x484992,null))[_0x6bae('0x1f')](function(_0x103c32){if(_0x103c32){var _0x51fe10=_0x103c32[_0x6bae('0x48')]({'plain':!![]});_0x51fe10=qs[_0x6bae('0x49')](_0x51fe10,['id',_0x6bae('0x4a'),_0x6bae('0x4b')]);_0x3e9531[_0x6bae('0x4c')]=_[_0x6bae('0x49')](_0x3e9531['body'],['id',_0x6bae('0x4a'),'updatedAt']);return db[_0x6bae('0x27')][_0x6bae('0x4d')](_[_0x6bae('0x3c')](_0x51fe10,_0x3e9531['body']),{'include':_0x3e9531['query'][_0x6bae('0x43')]?[{'all':!![]}]:undefined});}})[_0x6bae('0x1f')](respondWithResult(_0x484992,0xc9))[_0x6bae('0x41')](handleError(_0x484992,null));};exports[_0x6bae('0x4e')]=function(_0x1e1503,_0x3a27dc){if(_0x1e1503['body']['id']){delete _0x1e1503['body']['id'];}return db[_0x6bae('0x27')]['find']({'where':{'id':_0x1e1503['params']['id']}})[_0x6bae('0x1f')](handleEntityNotFound(_0x3a27dc,null))[_0x6bae('0x1f')](saveUpdates(_0x1e1503[_0x6bae('0x4c')],null))[_0x6bae('0x1f')](respondWithResult(_0x3a27dc,null))['catch'](handleError(_0x3a27dc,null));};exports[_0x6bae('0x1e')]=function(_0x365ef3,_0xf57340){return db[_0x6bae('0x27')][_0x6bae('0x44')]({'where':{'id':_0x365ef3[_0x6bae('0x46')]['id']}})[_0x6bae('0x1f')](handleEntityNotFound(_0xf57340,null))[_0x6bae('0x1f')](removeEntity(_0xf57340,null))[_0x6bae('0x41')](handleError(_0xf57340,null));};exports[_0x6bae('0x4d')]=function(_0x218069,_0x4d2ded,_0x398f60){_0x218069[_0x6bae('0x4c')][_0x6bae('0x23')]=_0x218069[_0x6bae('0x4f')][_0x6bae('0x50')];_0x218069[_0x6bae('0x4c')][_0x6bae('0x51')]=_0x218069['file'][_0x6bae('0x52')];_0x218069['body'][_0x6bae('0x2a')]=_0x218069[_0x6bae('0x4f')]['mimetype'];return db['Attachment'][_0x6bae('0x4d')](_0x218069[_0x6bae('0x4c')])[_0x6bae('0x1f')](respondWithResult(_0x4d2ded,0xc9))['catch'](handleError(_0x4d2ded,null));};exports[_0x6bae('0x53')]=function(_0x4de8b7,_0x19dd3a,_0xf2e346){return db[_0x6bae('0x27')][_0x6bae('0x54')]({'where':{'id':_0x4de8b7[_0x6bae('0x46')]['id']},'raw':!![]})[_0x6bae('0x1f')](handleEntityNotFound(_0x19dd3a,null))['then'](function(_0x54c116){if(_0x54c116){return _0x19dd3a['download'](path[_0x6bae('0x55')](config[_0x6bae('0x56')],_0x6bae('0x57'),_0x54c116[_0x6bae('0x51')]));}})[_0x6bae('0x41')](handleError(_0x19dd3a,null));};