0d19dbfbdb966df74b8606018849c5072ae69d17
[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 _0x7571=['options','count','include','findAll','rows','catch','show','keys','fields','length','includeAll','find','clone','params','get','createdAt','updatedAt','body','create','update','file','originalname','basename','findOne','root','server/files/attachments/','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','json','offset','limit','set','Content-Range','reject','save','then','destroy','error','stack','name','send','map','Attachment','rawAttributes','fieldName','key','model','filters','intersection','query','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL'];(function(_0x4b2863,_0x494899){var _0x567d67=function(_0x751f03){while(--_0x751f03){_0x4b2863['push'](_0x4b2863['shift']());}};_0x567d67(++_0x494899);}(_0x7571,0x6e));var _0x1757=function(_0x755aaa,_0x48853e){_0x755aaa=_0x755aaa-0x0;var _0x658ff1=_0x7571[_0x755aaa];return _0x658ff1;};'use strict';var pdf=require(_0x1757('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x1757('0x1'));var zipdir=require(_0x1757('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1757('0x3'));var moment=require(_0x1757('0x4'));var BPromise=require(_0x1757('0x5'));var Mustache=require(_0x1757('0x6'));var util=require('util');var path=require(_0x1757('0x7'));var sox=require(_0x1757('0x8'));var csv=require(_0x1757('0x9'));var ejs=require(_0x1757('0xa'));var fs=require('fs');var _=require(_0x1757('0xb'));var squel=require(_0x1757('0xc'));var crypto=require(_0x1757('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x1757('0xe'));var toCsv=require(_0x1757('0x9'));var querystring=require(_0x1757('0xf'));var Papa=require('papaparse');var Redis=require(_0x1757('0x10'));var authService=require(_0x1757('0x11'));var qs=require(_0x1757('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1757('0x13'));var logger=require(_0x1757('0x14'))(_0x1757('0x15'));var utils=require(_0x1757('0x16'));var config=require(_0x1757('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x721137,_0x550ab4){_0x550ab4=_0x550ab4||0xcc;return function(_0x35fab3){if(_0x35fab3){return _0x721137[_0x1757('0x18')](_0x550ab4);}return _0x721137[_0x1757('0x19')](_0x550ab4)['end']();};}function respondWithResult(_0x3f8a4b,_0x1a2894){_0x1a2894=_0x1a2894||0xc8;return function(_0x44843d){if(_0x44843d){return _0x3f8a4b[_0x1757('0x19')](_0x1a2894)[_0x1757('0x1a')](_0x44843d);}};}function respondWithFilteredResult(_0x2247a9,_0x122362){return function(_0x384272){if(_0x384272){var _0x4b71d=_0x384272['count'],_0x2a3154=_0x122362[_0x1757('0x1b')],_0xf46e5e=_0x122362[_0x1757('0x1b')]+_0x122362[_0x1757('0x1c')],_0x6b646f;if(_0xf46e5e>=_0x4b71d){_0xf46e5e=_0x4b71d;_0x6b646f=0xc8;}else{_0x6b646f=0xce;}_0x2247a9['status'](_0x6b646f);return _0x2247a9[_0x1757('0x1d')](_0x1757('0x1e'),_0x2a3154+'-'+_0xf46e5e+'/'+_0x4b71d)[_0x1757('0x1a')](_0x384272);}return null;};}function patchUpdates(_0x532cb8){return function(_0x8b047a){try{jsonpatch['apply'](_0x8b047a,_0x532cb8,!![]);}catch(_0x2f452d){return BPromise[_0x1757('0x1f')](_0x2f452d);}return _0x8b047a[_0x1757('0x20')]();};}function saveUpdates(_0x2aafda,_0x6cc98d){return function(_0x293b1e){if(_0x293b1e){return _0x293b1e['update'](_0x2aafda)[_0x1757('0x21')](function(_0xeb216e){return _0xeb216e;});}return null;};}function removeEntity(_0x177be4,_0x593085){return function(_0x1bec06){if(_0x1bec06){return _0x1bec06[_0x1757('0x22')]()[_0x1757('0x21')](function(){_0x177be4[_0x1757('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x440939,_0x3acda1){return function(_0x1dcdb6){if(!_0x1dcdb6){_0x440939[_0x1757('0x18')](0x194);}return _0x1dcdb6;};}function handleError(_0x4ad4df,_0x5062df){_0x5062df=_0x5062df||0x1f4;return function(_0x332462){logger[_0x1757('0x23')](_0x332462[_0x1757('0x24')]);if(_0x332462[_0x1757('0x25')]){delete _0x332462[_0x1757('0x25')];}_0x4ad4df[_0x1757('0x19')](_0x5062df)[_0x1757('0x26')](_0x332462);};}exports['index']=function(_0x29af0a,_0x4cc9f9){var _0x96c26d={},_0x5c8e78={},_0x37b9e9={'count':0x0,'rows':[]};var _0x5e1de8=_[_0x1757('0x27')](db[_0x1757('0x28')][_0x1757('0x29')],function(_0x556ba2){return{'name':_0x556ba2[_0x1757('0x2a')],'type':_0x556ba2['type'][_0x1757('0x2b')]};});_0x5c8e78[_0x1757('0x2c')]=_[_0x1757('0x27')](_0x5e1de8,_0x1757('0x25'));_0x5c8e78['query']=_['keys'](_0x29af0a['query']);_0x5c8e78[_0x1757('0x2d')]=_[_0x1757('0x2e')](_0x5c8e78[_0x1757('0x2c')],_0x5c8e78[_0x1757('0x2f')]);_0x96c26d['attributes']=_[_0x1757('0x2e')](_0x5c8e78[_0x1757('0x2c')],qs['fields'](_0x29af0a[_0x1757('0x2f')]['fields']));_0x96c26d['attributes']=_0x96c26d['attributes']['length']?_0x96c26d[_0x1757('0x30')]:_0x5c8e78[_0x1757('0x2c')];if(!_0x29af0a['query'][_0x1757('0x31')](_0x1757('0x32'))){_0x96c26d[_0x1757('0x1c')]=qs[_0x1757('0x1c')](_0x29af0a['query'][_0x1757('0x1c')]);_0x96c26d[_0x1757('0x1b')]=qs[_0x1757('0x1b')](_0x29af0a[_0x1757('0x2f')][_0x1757('0x1b')]);}_0x96c26d[_0x1757('0x33')]=qs[_0x1757('0x34')](_0x29af0a[_0x1757('0x2f')][_0x1757('0x34')]);_0x96c26d[_0x1757('0x35')]=qs[_0x1757('0x2d')](_[_0x1757('0x36')](_0x29af0a['query'],_0x5c8e78[_0x1757('0x2d')]),_0x5e1de8);if(_0x29af0a[_0x1757('0x2f')]['filter']){_0x96c26d[_0x1757('0x35')]=_[_0x1757('0x37')](_0x96c26d['where'],{'$or':_[_0x1757('0x27')](_0x5e1de8,function(_0x1d8ff1){if(_0x1d8ff1[_0x1757('0x38')]!==_0x1757('0x39')){var _0x42f3d2={};_0x42f3d2[_0x1d8ff1[_0x1757('0x25')]]={'$like':'%'+_0x29af0a['query']['filter']+'%'};return _0x42f3d2;}})});}_0x96c26d=_['merge']({},_0x96c26d,_0x29af0a[_0x1757('0x3a')]);var _0x467efe={'where':_0x96c26d[_0x1757('0x35')]};return db[_0x1757('0x28')][_0x1757('0x3b')](_0x467efe)['then'](function(_0x50c333){_0x37b9e9[_0x1757('0x3b')]=_0x50c333;if(_0x29af0a[_0x1757('0x2f')]['includeAll']){_0x96c26d[_0x1757('0x3c')]=[{'all':!![]}];}return db[_0x1757('0x28')][_0x1757('0x3d')](_0x96c26d);})['then'](function(_0x427510){_0x37b9e9[_0x1757('0x3e')]=_0x427510;return _0x37b9e9;})['then'](respondWithFilteredResult(_0x4cc9f9,_0x96c26d))[_0x1757('0x3f')](handleError(_0x4cc9f9,null));};exports[_0x1757('0x40')]=function(_0x1a93f6,_0xe5efe5){var _0x2131d9={'raw':!![],'where':{'id':_0x1a93f6['params']['id']}},_0x451874={};_0x451874[_0x1757('0x2c')]=_['keys'](db[_0x1757('0x28')]['rawAttributes']);_0x451874[_0x1757('0x2f')]=_[_0x1757('0x41')](_0x1a93f6[_0x1757('0x2f')]);_0x451874['filters']=_[_0x1757('0x2e')](_0x451874['model'],_0x451874[_0x1757('0x2f')]);_0x2131d9[_0x1757('0x30')]=_[_0x1757('0x2e')](_0x451874[_0x1757('0x2c')],qs['fields'](_0x1a93f6[_0x1757('0x2f')][_0x1757('0x42')]));_0x2131d9[_0x1757('0x30')]=_0x2131d9[_0x1757('0x30')][_0x1757('0x43')]?_0x2131d9[_0x1757('0x30')]:_0x451874[_0x1757('0x2c')];if(_0x1a93f6['query'][_0x1757('0x44')]){_0x2131d9[_0x1757('0x3c')]=[{'all':!![]}];}_0x2131d9=_['merge']({},_0x2131d9,_0x1a93f6[_0x1757('0x3a')]);return db[_0x1757('0x28')][_0x1757('0x45')](_0x2131d9)[_0x1757('0x21')](handleEntityNotFound(_0xe5efe5,null))['then'](respondWithResult(_0xe5efe5,null))[_0x1757('0x3f')](handleError(_0xe5efe5,null));};exports[_0x1757('0x46')]=function(_0x2236e5,_0xab7f29){var _0x105df3={'where':{'id':_0x2236e5[_0x1757('0x47')]['id']}},_0x2d3262={};_0x2d3262[_0x1757('0x2c')]=_['keys'](db[_0x1757('0x28')][_0x1757('0x29')]);_0x105df3[_0x1757('0x30')]=_[_0x1757('0x2e')](_0x2d3262['model'],qs[_0x1757('0x42')](_0x2236e5[_0x1757('0x2f')][_0x1757('0x42')]));_0x105df3[_0x1757('0x30')]=_0x105df3['attributes'][_0x1757('0x43')]?_0x105df3[_0x1757('0x30')]:_0x2d3262[_0x1757('0x2c')];if(_0x2236e5['query']['includeAll']){_0x105df3[_0x1757('0x3c')]=[{'all':!![]}];}_0x105df3=_['merge']({},_0x105df3,_0x2236e5[_0x1757('0x3a')]);return db[_0x1757('0x28')][_0x1757('0x45')](_0x105df3)[_0x1757('0x21')](handleEntityNotFound(_0xab7f29,null))['then'](function(_0x2361f4){if(_0x2361f4){var _0x5e3ecc=_0x2361f4[_0x1757('0x48')]({'plain':!![]});_0x5e3ecc=qs['omit'](_0x5e3ecc,['id',_0x1757('0x49'),_0x1757('0x4a')]);_0x2236e5[_0x1757('0x4b')]=_['omit'](_0x2236e5[_0x1757('0x4b')],['id','createdAt',_0x1757('0x4a')]);return db[_0x1757('0x28')][_0x1757('0x4c')](_[_0x1757('0x37')](_0x5e3ecc,_0x2236e5['body']),{'include':_0x2236e5[_0x1757('0x2f')]['includeAll']?[{'all':!![]}]:undefined});}})[_0x1757('0x21')](respondWithResult(_0xab7f29,0xc9))['catch'](handleError(_0xab7f29,null));};exports[_0x1757('0x4d')]=function(_0x3cf561,_0x2a7cde){if(_0x3cf561[_0x1757('0x4b')]['id']){delete _0x3cf561[_0x1757('0x4b')]['id'];}return db[_0x1757('0x28')][_0x1757('0x45')]({'where':{'id':_0x3cf561[_0x1757('0x47')]['id']}})[_0x1757('0x21')](handleEntityNotFound(_0x2a7cde,null))[_0x1757('0x21')](saveUpdates(_0x3cf561[_0x1757('0x4b')],null))['then'](respondWithResult(_0x2a7cde,null))['catch'](handleError(_0x2a7cde,null));};exports[_0x1757('0x22')]=function(_0x2a37e4,_0x438881){return db[_0x1757('0x28')]['find']({'where':{'id':_0x2a37e4['params']['id']}})[_0x1757('0x21')](handleEntityNotFound(_0x438881,null))[_0x1757('0x21')](removeEntity(_0x438881,null))[_0x1757('0x3f')](handleError(_0x438881,null));};exports[_0x1757('0x4c')]=function(_0x36ca2d,_0x1a877a,_0x5846f4){_0x36ca2d['body']['name']=_0x36ca2d[_0x1757('0x4e')][_0x1757('0x4f')];_0x36ca2d[_0x1757('0x4b')][_0x1757('0x50')]=_0x36ca2d['file']['filename'];_0x36ca2d[_0x1757('0x4b')]['type']=_0x36ca2d[_0x1757('0x4e')]['mimetype'];return db[_0x1757('0x28')][_0x1757('0x4c')](_0x36ca2d[_0x1757('0x4b')])[_0x1757('0x21')](respondWithResult(_0x1a877a,0xc9))[_0x1757('0x3f')](handleError(_0x1a877a,null));};exports['download']=function(_0x43af60,_0x563bcb,_0x135f56){return db['Attachment'][_0x1757('0x51')]({'where':{'id':_0x43af60['params']['id']},'raw':!![]})['then'](handleEntityNotFound(_0x563bcb,null))[_0x1757('0x21')](function(_0x178846){if(_0x178846){return _0x563bcb['download'](path['join'](config[_0x1757('0x52')],_0x1757('0x53'),_0x178846[_0x1757('0x50')]));}})[_0x1757('0x3f')](handleError(_0x563bcb,null));};