6c5465b30f47649243641735caa406881b54ff4a
[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 _0x0910=['findOne','join','root','server/files/attachments/','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','error','stack','name','index','map','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','show','params','Attachment','rawAttributes','find','clone','omit','createdAt','updatedAt','body','catch','create','file','originalname','filename','mimetype','download'];(function(_0x534658,_0xb4d925){var _0x5e64d4=function(_0x5506fa){while(--_0x5506fa){_0x534658['push'](_0x534658['shift']());}};_0x5e64d4(++_0xb4d925);}(_0x0910,0xbc));var _0x0091=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0910[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0091('0x0'));var rimraf=require(_0x0091('0x1'));var zipdir=require(_0x0091('0x2'));var jsonpatch=require(_0x0091('0x3'));var rp=require(_0x0091('0x4'));var moment=require(_0x0091('0x5'));var BPromise=require(_0x0091('0x6'));var Mustache=require(_0x0091('0x7'));var util=require(_0x0091('0x8'));var path=require(_0x0091('0x9'));var sox=require(_0x0091('0xa'));var csv=require('to-csv');var ejs=require(_0x0091('0xb'));var fs=require('fs');var _=require(_0x0091('0xc'));var squel=require(_0x0091('0xd'));var crypto=require(_0x0091('0xe'));var jsforce=require(_0x0091('0xf'));var deskjs=require(_0x0091('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0091('0x11'));var Redis=require(_0x0091('0x12'));var authService=require(_0x0091('0x13'));var qs=require(_0x0091('0x14'));var as=require(_0x0091('0x15'));var hardwareService=require(_0x0091('0x16'));var logger=require(_0x0091('0x17'))(_0x0091('0x18'));var utils=require(_0x0091('0x19'));var config=require(_0x0091('0x1a'));var licenseUtil=require(_0x0091('0x1b'));var db=require(_0x0091('0x1c'))['db'];function respondWithStatusCode(_0xe6fec0,_0x35d048){_0x35d048=_0x35d048||0xcc;return function(_0x2bf23d){if(_0x2bf23d){return _0xe6fec0[_0x0091('0x1d')](_0x35d048);}return _0xe6fec0[_0x0091('0x1e')](_0x35d048)[_0x0091('0x1f')]();};}function respondWithResult(_0x230531,_0x3e298f){_0x3e298f=_0x3e298f||0xc8;return function(_0x148213){if(_0x148213){return _0x230531[_0x0091('0x1e')](_0x3e298f)['json'](_0x148213);}};}function respondWithFilteredResult(_0x21635f,_0x174506){return function(_0x17d345){if(_0x17d345){var _0x540da7=_0x17d345[_0x0091('0x20')],_0x40d413=_0x174506[_0x0091('0x21')],_0x421f02=_0x174506[_0x0091('0x21')]+_0x174506[_0x0091('0x22')],_0x581d9;if(_0x421f02>=_0x540da7){_0x421f02=_0x540da7;_0x581d9=0xc8;}else{_0x581d9=0xce;}_0x21635f[_0x0091('0x1e')](_0x581d9);return _0x21635f[_0x0091('0x23')](_0x0091('0x24'),_0x40d413+'-'+_0x421f02+'/'+_0x540da7)[_0x0091('0x25')](_0x17d345);}return null;};}function patchUpdates(_0x490b3d){return function(_0x1e2c03){try{jsonpatch[_0x0091('0x26')](_0x1e2c03,_0x490b3d,!![]);}catch(_0x55532e){return BPromise[_0x0091('0x27')](_0x55532e);}return _0x1e2c03[_0x0091('0x28')]();};}function saveUpdates(_0x3f55a3,_0x1cdace){return function(_0x1e048c){if(_0x1e048c){return _0x1e048c[_0x0091('0x29')](_0x3f55a3)[_0x0091('0x2a')](function(_0x4a8d66){return _0x4a8d66;});}return null;};}function removeEntity(_0x176c90,_0x1b96a4){return function(_0x2f6252){if(_0x2f6252){return _0x2f6252['destroy']()[_0x0091('0x2a')](function(){_0x176c90['status'](0xcc)[_0x0091('0x1f')]();});}};}function handleEntityNotFound(_0x3b8e0c,_0x2e463d){return function(_0x3f85b8){if(!_0x3f85b8){_0x3b8e0c[_0x0091('0x1d')](0x194);}return _0x3f85b8;};}function handleError(_0x345982,_0x1868c1){_0x1868c1=_0x1868c1||0x1f4;return function(_0x523f8f){logger[_0x0091('0x2b')](_0x523f8f[_0x0091('0x2c')]);if(_0x523f8f[_0x0091('0x2d')]){delete _0x523f8f[_0x0091('0x2d')];}_0x345982[_0x0091('0x1e')](_0x1868c1)['send'](_0x523f8f);};}exports[_0x0091('0x2e')]=function(_0x234b76,_0x202a6e){var _0x18a7b6={},_0x489a4d={},_0x404f48={'count':0x0,'rows':[]};var _0x193c8a=_[_0x0091('0x2f')](db['Attachment']['rawAttributes'],function(_0x42b281){return{'name':_0x42b281[_0x0091('0x30')],'type':_0x42b281[_0x0091('0x31')][_0x0091('0x32')]};});_0x489a4d[_0x0091('0x33')]=_[_0x0091('0x2f')](_0x193c8a,'name');_0x489a4d['query']=_[_0x0091('0x34')](_0x234b76[_0x0091('0x35')]);_0x489a4d[_0x0091('0x36')]=_[_0x0091('0x37')](_0x489a4d[_0x0091('0x33')],_0x489a4d[_0x0091('0x35')]);_0x18a7b6[_0x0091('0x38')]=_[_0x0091('0x37')](_0x489a4d[_0x0091('0x33')],qs['fields'](_0x234b76[_0x0091('0x35')][_0x0091('0x39')]));_0x18a7b6['attributes']=_0x18a7b6[_0x0091('0x38')][_0x0091('0x3a')]?_0x18a7b6[_0x0091('0x38')]:_0x489a4d[_0x0091('0x33')];if(!_0x234b76[_0x0091('0x35')][_0x0091('0x3b')](_0x0091('0x3c'))){_0x18a7b6['limit']=qs[_0x0091('0x22')](_0x234b76[_0x0091('0x35')][_0x0091('0x22')]);_0x18a7b6['offset']=qs['offset'](_0x234b76[_0x0091('0x35')][_0x0091('0x21')]);}_0x18a7b6[_0x0091('0x3d')]=qs['sort'](_0x234b76[_0x0091('0x35')]['sort']);_0x18a7b6['where']=qs['filters'](_[_0x0091('0x3e')](_0x234b76[_0x0091('0x35')],_0x489a4d[_0x0091('0x36')]),_0x193c8a);if(_0x234b76['query'][_0x0091('0x3f')]){_0x18a7b6[_0x0091('0x40')]=_[_0x0091('0x41')](_0x18a7b6[_0x0091('0x40')],{'$or':_[_0x0091('0x2f')](_0x193c8a,function(_0x4f90f2){if(_0x4f90f2['type']!==_0x0091('0x42')){var _0x55a6f0={};_0x55a6f0[_0x4f90f2[_0x0091('0x2d')]]={'$like':'%'+_0x234b76[_0x0091('0x35')][_0x0091('0x3f')]+'%'};return _0x55a6f0;}})});}_0x18a7b6=_[_0x0091('0x41')]({},_0x18a7b6,_0x234b76[_0x0091('0x43')]);var _0x3f06da={'where':_0x18a7b6[_0x0091('0x40')]};return db['Attachment'][_0x0091('0x20')](_0x3f06da)[_0x0091('0x2a')](function(_0x365320){_0x404f48['count']=_0x365320;if(_0x234b76['query'][_0x0091('0x44')]){_0x18a7b6[_0x0091('0x45')]=[{'all':!![]}];}return db['Attachment'][_0x0091('0x46')](_0x18a7b6);})[_0x0091('0x2a')](function(_0x305802){_0x404f48['rows']=_0x305802;return _0x404f48;})[_0x0091('0x2a')](respondWithFilteredResult(_0x202a6e,_0x18a7b6))['catch'](handleError(_0x202a6e,null));};exports[_0x0091('0x47')]=function(_0x1ad806,_0xf99a46){var _0x260e0b={'raw':!![],'where':{'id':_0x1ad806[_0x0091('0x48')]['id']}},_0x5e994b={};_0x5e994b[_0x0091('0x33')]=_[_0x0091('0x34')](db[_0x0091('0x49')][_0x0091('0x4a')]);_0x5e994b[_0x0091('0x35')]=_[_0x0091('0x34')](_0x1ad806['query']);_0x5e994b[_0x0091('0x36')]=_[_0x0091('0x37')](_0x5e994b[_0x0091('0x33')],_0x5e994b[_0x0091('0x35')]);_0x260e0b[_0x0091('0x38')]=_[_0x0091('0x37')](_0x5e994b[_0x0091('0x33')],qs[_0x0091('0x39')](_0x1ad806[_0x0091('0x35')][_0x0091('0x39')]));_0x260e0b['attributes']=_0x260e0b[_0x0091('0x38')][_0x0091('0x3a')]?_0x260e0b['attributes']:_0x5e994b[_0x0091('0x33')];if(_0x1ad806[_0x0091('0x35')][_0x0091('0x44')]){_0x260e0b[_0x0091('0x45')]=[{'all':!![]}];}_0x260e0b=_['merge']({},_0x260e0b,_0x1ad806[_0x0091('0x43')]);return db[_0x0091('0x49')][_0x0091('0x4b')](_0x260e0b)[_0x0091('0x2a')](handleEntityNotFound(_0xf99a46,null))[_0x0091('0x2a')](respondWithResult(_0xf99a46,null))['catch'](handleError(_0xf99a46,null));};exports[_0x0091('0x4c')]=function(_0x49b239,_0x1d5c6a){var _0xc36335={'where':{'id':_0x49b239[_0x0091('0x48')]['id']}},_0x222602={};_0x222602[_0x0091('0x33')]=_[_0x0091('0x34')](db[_0x0091('0x49')][_0x0091('0x4a')]);_0xc36335[_0x0091('0x38')]=_['intersection'](_0x222602[_0x0091('0x33')],qs['fields'](_0x49b239[_0x0091('0x35')]['fields']));_0xc36335[_0x0091('0x38')]=_0xc36335['attributes']['length']?_0xc36335[_0x0091('0x38')]:_0x222602[_0x0091('0x33')];if(_0x49b239[_0x0091('0x35')][_0x0091('0x44')]){_0xc36335[_0x0091('0x45')]=[{'all':!![]}];}_0xc36335=_[_0x0091('0x41')]({},_0xc36335,_0x49b239['options']);return db[_0x0091('0x49')]['find'](_0xc36335)[_0x0091('0x2a')](handleEntityNotFound(_0x1d5c6a,null))['then'](function(_0x5b3eb7){if(_0x5b3eb7){var _0x171ca0=_0x5b3eb7['get']({'plain':!![]});_0x171ca0=qs[_0x0091('0x4d')](_0x171ca0,['id','createdAt','updatedAt']);_0x49b239['body']=_[_0x0091('0x4d')](_0x49b239['body'],['id',_0x0091('0x4e'),_0x0091('0x4f')]);return db[_0x0091('0x49')]['create'](_[_0x0091('0x41')](_0x171ca0,_0x49b239[_0x0091('0x50')]),{'include':_0x49b239['query'][_0x0091('0x44')]?[{'all':!![]}]:undefined});}})[_0x0091('0x2a')](respondWithResult(_0x1d5c6a,0xc9))['catch'](handleError(_0x1d5c6a,null));};exports['update']=function(_0x37a290,_0x2955d8){if(_0x37a290[_0x0091('0x50')]['id']){delete _0x37a290[_0x0091('0x50')]['id'];}return db[_0x0091('0x49')][_0x0091('0x4b')]({'where':{'id':_0x37a290[_0x0091('0x48')]['id']}})['then'](handleEntityNotFound(_0x2955d8,null))[_0x0091('0x2a')](saveUpdates(_0x37a290['body'],null))[_0x0091('0x2a')](respondWithResult(_0x2955d8,null))[_0x0091('0x51')](handleError(_0x2955d8,null));};exports['destroy']=function(_0x23bb6d,_0x571742){return db[_0x0091('0x49')][_0x0091('0x4b')]({'where':{'id':_0x23bb6d[_0x0091('0x48')]['id']}})[_0x0091('0x2a')](handleEntityNotFound(_0x571742,null))[_0x0091('0x2a')](removeEntity(_0x571742,null))['catch'](handleError(_0x571742,null));};exports[_0x0091('0x52')]=function(_0x314452,_0x40fd53,_0xf87735){_0x314452['body'][_0x0091('0x2d')]=_0x314452[_0x0091('0x53')][_0x0091('0x54')];_0x314452[_0x0091('0x50')]['basename']=_0x314452[_0x0091('0x53')][_0x0091('0x55')];_0x314452[_0x0091('0x50')][_0x0091('0x31')]=_0x314452['file'][_0x0091('0x56')];return db[_0x0091('0x49')]['create'](_0x314452[_0x0091('0x50')])[_0x0091('0x2a')](respondWithResult(_0x40fd53,0xc9))['catch'](handleError(_0x40fd53,null));};exports[_0x0091('0x57')]=function(_0x2d17cd,_0xcbc722,_0x159275){return db[_0x0091('0x49')][_0x0091('0x58')]({'where':{'id':_0x2d17cd[_0x0091('0x48')]['id']},'raw':!![]})[_0x0091('0x2a')](handleEntityNotFound(_0xcbc722,null))[_0x0091('0x2a')](function(_0x14781d){if(_0x14781d){return _0xcbc722[_0x0091('0x57')](path[_0x0091('0x59')](config[_0x0091('0x5a')],_0x0091('0x5b'),_0x14781d['basename']));}})[_0x0091('0x51')](handleError(_0xcbc722,null));};