c5d2308cace491ea1bef0efd7d6ba2a6b1dcc8e6
[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 _0x2980=['Attachment','rawAttributes','fieldName','type','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','limit','order','sort','where','pick','options','includeAll','include','rows','catch','params','find','clone','get','omit','createdAt','updatedAt','body','create','update','file','originalname','filename','mimetype','download','findOne','join','root','server/files/attachments/','basename','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','Content-Range','apply','reject','save','destroy','then','error','name','index'];(function(_0x513f6e,_0x28babb){var _0xcad143=function(_0x178b41){while(--_0x178b41){_0x513f6e['push'](_0x513f6e['shift']());}};_0xcad143(++_0x28babb);}(_0x2980,0x1c7));var _0x0298=function(_0x44dd13,_0x48ff96){_0x44dd13=_0x44dd13-0x0;var _0x425579=_0x2980[_0x44dd13];return _0x425579;};'use strict';var pdf=require(_0x0298('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x0298('0x1'));var zipdir=require(_0x0298('0x2'));var jsonpatch=require(_0x0298('0x3'));var rp=require('request-promise');var moment=require(_0x0298('0x4'));var BPromise=require(_0x0298('0x5'));var Mustache=require(_0x0298('0x6'));var util=require('util');var path=require(_0x0298('0x7'));var sox=require(_0x0298('0x8'));var csv=require(_0x0298('0x9'));var ejs=require(_0x0298('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x0298('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x0298('0xc'));var toCsv=require(_0x0298('0x9'));var querystring=require(_0x0298('0xd'));var Papa=require(_0x0298('0xe'));var Redis=require(_0x0298('0xf'));var authService=require(_0x0298('0x10'));var qs=require(_0x0298('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0298('0x12'));var logger=require('../../config/logger')(_0x0298('0x13'));var utils=require('../../config/utils');var config=require(_0x0298('0x14'));var db=require(_0x0298('0x15'))['db'];function respondWithStatusCode(_0x4b17fc,_0x15043e){_0x15043e=_0x15043e||0xcc;return function(_0x3dd1f9){if(_0x3dd1f9){return _0x4b17fc[_0x0298('0x16')](_0x15043e);}return _0x4b17fc[_0x0298('0x17')](_0x15043e)[_0x0298('0x18')]();};}function respondWithResult(_0x3fcf35,_0x4e04cb){_0x4e04cb=_0x4e04cb||0xc8;return function(_0x2ba588){if(_0x2ba588){return _0x3fcf35[_0x0298('0x17')](_0x4e04cb)[_0x0298('0x19')](_0x2ba588);}};}function respondWithFilteredResult(_0x4955dc,_0x3637ea){return function(_0x13611e){if(_0x13611e){var _0x5767f2=_0x13611e[_0x0298('0x1a')],_0x107b0d=_0x3637ea[_0x0298('0x1b')],_0x12b487=_0x3637ea['offset']+_0x3637ea['limit'],_0x2a2bf1;if(_0x12b487>=_0x5767f2){_0x12b487=_0x5767f2;_0x2a2bf1=0xc8;}else{_0x2a2bf1=0xce;}_0x4955dc[_0x0298('0x17')](_0x2a2bf1);return _0x4955dc['set'](_0x0298('0x1c'),_0x107b0d+'-'+_0x12b487+'/'+_0x5767f2)[_0x0298('0x19')](_0x13611e);}return null;};}function patchUpdates(_0x3378da){return function(_0x51b95a){try{jsonpatch[_0x0298('0x1d')](_0x51b95a,_0x3378da,!![]);}catch(_0x152a1f){return BPromise[_0x0298('0x1e')](_0x152a1f);}return _0x51b95a[_0x0298('0x1f')]();};}function saveUpdates(_0x1fec21,_0x125a62){return function(_0x12a38c){if(_0x12a38c){return _0x12a38c['update'](_0x1fec21)['then'](function(_0x4d6288){return _0x4d6288;});}return null;};}function removeEntity(_0x4a542b,_0x30b3f8){return function(_0x328862){if(_0x328862){return _0x328862[_0x0298('0x20')]()[_0x0298('0x21')](function(){_0x4a542b[_0x0298('0x17')](0xcc)[_0x0298('0x18')]();});}};}function handleEntityNotFound(_0x521247,_0x160684){return function(_0x57e3ea){if(!_0x57e3ea){_0x521247[_0x0298('0x16')](0x194);}return _0x57e3ea;};}function handleError(_0x4ca1fa,_0x269194){_0x269194=_0x269194||0x1f4;return function(_0x51fbd2){logger[_0x0298('0x22')](_0x51fbd2['stack']);if(_0x51fbd2[_0x0298('0x23')]){delete _0x51fbd2[_0x0298('0x23')];}_0x4ca1fa['status'](_0x269194)['send'](_0x51fbd2);};}exports[_0x0298('0x24')]=function(_0x3dd831,_0xd8bb80){var _0x353661={},_0x160bcd={},_0x4e8135={'count':0x0,'rows':[]};var _0x32d852=_['map'](db[_0x0298('0x25')][_0x0298('0x26')],function(_0x2eded1){return{'name':_0x2eded1[_0x0298('0x27')],'type':_0x2eded1[_0x0298('0x28')][_0x0298('0x29')]};});_0x160bcd[_0x0298('0x2a')]=_[_0x0298('0x2b')](_0x32d852,_0x0298('0x23'));_0x160bcd[_0x0298('0x2c')]=_[_0x0298('0x2d')](_0x3dd831[_0x0298('0x2c')]);_0x160bcd[_0x0298('0x2e')]=_['intersection'](_0x160bcd[_0x0298('0x2a')],_0x160bcd[_0x0298('0x2c')]);_0x353661[_0x0298('0x2f')]=_[_0x0298('0x30')](_0x160bcd[_0x0298('0x2a')],qs[_0x0298('0x31')](_0x3dd831[_0x0298('0x2c')][_0x0298('0x31')]));_0x353661[_0x0298('0x2f')]=_0x353661[_0x0298('0x2f')][_0x0298('0x32')]?_0x353661[_0x0298('0x2f')]:_0x160bcd['model'];if(!_0x3dd831[_0x0298('0x2c')][_0x0298('0x33')]('nolimit')){_0x353661[_0x0298('0x34')]=qs[_0x0298('0x34')](_0x3dd831[_0x0298('0x2c')]['limit']);_0x353661[_0x0298('0x1b')]=qs[_0x0298('0x1b')](_0x3dd831['query']['offset']);}_0x353661[_0x0298('0x35')]=qs[_0x0298('0x36')](_0x3dd831[_0x0298('0x2c')][_0x0298('0x36')]);_0x353661[_0x0298('0x37')]=qs[_0x0298('0x2e')](_[_0x0298('0x38')](_0x3dd831[_0x0298('0x2c')],_0x160bcd[_0x0298('0x2e')]),_0x32d852);if(_0x3dd831[_0x0298('0x2c')]['filter']){_0x353661['where']=_['merge'](_0x353661[_0x0298('0x37')],{'$or':_['map'](_0x32d852,function(_0x26c782){if(_0x26c782[_0x0298('0x28')]!=='VIRTUAL'){var _0x1de981={};_0x1de981[_0x26c782['name']]={'$like':'%'+_0x3dd831[_0x0298('0x2c')]['filter']+'%'};return _0x1de981;}})});}_0x353661=_['merge']({},_0x353661,_0x3dd831[_0x0298('0x39')]);var _0xc3df1f={'where':_0x353661[_0x0298('0x37')]};return db['Attachment']['count'](_0xc3df1f)[_0x0298('0x21')](function(_0x220934){_0x4e8135[_0x0298('0x1a')]=_0x220934;if(_0x3dd831[_0x0298('0x2c')][_0x0298('0x3a')]){_0x353661[_0x0298('0x3b')]=[{'all':!![]}];}return db[_0x0298('0x25')]['findAll'](_0x353661);})['then'](function(_0x122f4a){_0x4e8135[_0x0298('0x3c')]=_0x122f4a;return _0x4e8135;})[_0x0298('0x21')](respondWithFilteredResult(_0xd8bb80,_0x353661))[_0x0298('0x3d')](handleError(_0xd8bb80,null));};exports['show']=function(_0x4d5869,_0x2bd4b0){var _0x5515d3={'raw':!![],'where':{'id':_0x4d5869[_0x0298('0x3e')]['id']}},_0x2bce52={};_0x2bce52[_0x0298('0x2a')]=_[_0x0298('0x2d')](db[_0x0298('0x25')][_0x0298('0x26')]);_0x2bce52[_0x0298('0x2c')]=_['keys'](_0x4d5869['query']);_0x2bce52[_0x0298('0x2e')]=_[_0x0298('0x30')](_0x2bce52[_0x0298('0x2a')],_0x2bce52[_0x0298('0x2c')]);_0x5515d3[_0x0298('0x2f')]=_[_0x0298('0x30')](_0x2bce52[_0x0298('0x2a')],qs[_0x0298('0x31')](_0x4d5869[_0x0298('0x2c')]['fields']));_0x5515d3[_0x0298('0x2f')]=_0x5515d3[_0x0298('0x2f')]['length']?_0x5515d3[_0x0298('0x2f')]:_0x2bce52[_0x0298('0x2a')];if(_0x4d5869['query'][_0x0298('0x3a')]){_0x5515d3[_0x0298('0x3b')]=[{'all':!![]}];}_0x5515d3=_['merge']({},_0x5515d3,_0x4d5869['options']);return db[_0x0298('0x25')][_0x0298('0x3f')](_0x5515d3)[_0x0298('0x21')](handleEntityNotFound(_0x2bd4b0,null))['then'](respondWithResult(_0x2bd4b0,null))['catch'](handleError(_0x2bd4b0,null));};exports[_0x0298('0x40')]=function(_0x5a8956,_0x3f177a){var _0x5cdd01={'where':{'id':_0x5a8956['params']['id']}},_0x57b637={};_0x57b637[_0x0298('0x2a')]=_[_0x0298('0x2d')](db['Attachment'][_0x0298('0x26')]);_0x5cdd01[_0x0298('0x2f')]=_[_0x0298('0x30')](_0x57b637[_0x0298('0x2a')],qs[_0x0298('0x31')](_0x5a8956[_0x0298('0x2c')]['fields']));_0x5cdd01[_0x0298('0x2f')]=_0x5cdd01['attributes'][_0x0298('0x32')]?_0x5cdd01[_0x0298('0x2f')]:_0x57b637[_0x0298('0x2a')];if(_0x5a8956[_0x0298('0x2c')][_0x0298('0x3a')]){_0x5cdd01[_0x0298('0x3b')]=[{'all':!![]}];}_0x5cdd01=_['merge']({},_0x5cdd01,_0x5a8956[_0x0298('0x39')]);return db['Attachment'][_0x0298('0x3f')](_0x5cdd01)[_0x0298('0x21')](handleEntityNotFound(_0x3f177a,null))[_0x0298('0x21')](function(_0x595618){if(_0x595618){var _0x30cc9a=_0x595618[_0x0298('0x41')]({'plain':!![]});_0x30cc9a=qs[_0x0298('0x42')](_0x30cc9a,['id',_0x0298('0x43'),_0x0298('0x44')]);_0x5a8956[_0x0298('0x45')]=_[_0x0298('0x42')](_0x5a8956['body'],['id',_0x0298('0x43'),_0x0298('0x44')]);return db[_0x0298('0x25')][_0x0298('0x46')](_['merge'](_0x30cc9a,_0x5a8956['body']),{'include':_0x5a8956['query']['includeAll']?[{'all':!![]}]:undefined});}})[_0x0298('0x21')](respondWithResult(_0x3f177a,0xc9))[_0x0298('0x3d')](handleError(_0x3f177a,null));};exports[_0x0298('0x47')]=function(_0x257ffd,_0x3cc644){if(_0x257ffd['body']['id']){delete _0x257ffd[_0x0298('0x45')]['id'];}return db['Attachment'][_0x0298('0x3f')]({'where':{'id':_0x257ffd[_0x0298('0x3e')]['id']}})[_0x0298('0x21')](handleEntityNotFound(_0x3cc644,null))[_0x0298('0x21')](saveUpdates(_0x257ffd['body'],null))[_0x0298('0x21')](respondWithResult(_0x3cc644,null))[_0x0298('0x3d')](handleError(_0x3cc644,null));};exports['destroy']=function(_0x39cf83,_0x2b845b){return db[_0x0298('0x25')][_0x0298('0x3f')]({'where':{'id':_0x39cf83[_0x0298('0x3e')]['id']}})[_0x0298('0x21')](handleEntityNotFound(_0x2b845b,null))[_0x0298('0x21')](removeEntity(_0x2b845b,null))['catch'](handleError(_0x2b845b,null));};exports[_0x0298('0x46')]=function(_0x2e2157,_0x31c774,_0x5251d1){_0x2e2157['body'][_0x0298('0x23')]=_0x2e2157[_0x0298('0x48')][_0x0298('0x49')];_0x2e2157[_0x0298('0x45')]['basename']=_0x2e2157[_0x0298('0x48')][_0x0298('0x4a')];_0x2e2157['body'][_0x0298('0x28')]=_0x2e2157[_0x0298('0x48')][_0x0298('0x4b')];return db[_0x0298('0x25')][_0x0298('0x46')](_0x2e2157[_0x0298('0x45')])[_0x0298('0x21')](respondWithResult(_0x31c774,0xc9))['catch'](handleError(_0x31c774,null));};exports[_0x0298('0x4c')]=function(_0x21795b,_0x3dd5f9,_0x3b0e23){return db[_0x0298('0x25')][_0x0298('0x4d')]({'where':{'id':_0x21795b[_0x0298('0x3e')]['id']},'raw':!![]})[_0x0298('0x21')](handleEntityNotFound(_0x3dd5f9,null))[_0x0298('0x21')](function(_0x317956){if(_0x317956){return _0x3dd5f9[_0x0298('0x4c')](path[_0x0298('0x4e')](config[_0x0298('0x4f')],_0x0298('0x50'),_0x317956[_0x0298('0x51')]));}})['catch'](handleError(_0x3dd5f9,null));};