24b790402f0c1d5a1d11c2769f965c7bc355c812
[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 _0x43e4=['show','params','options','find','omit','createdAt','updatedAt','body','create','originalname','basename','filename','file','mimetype','download','findOne','root','server/files/attachments/','eml-format','rimraf','zip-dir','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','desk.js','papaparse','../../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','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','error','name','index','map','Attachment','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','catch'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x43e4,0x10e));var _0x443e=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x43e4[_0x122096];return _0x3d1966;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x443e('0x0'));var rimraf=require(_0x443e('0x1'));var zipdir=require(_0x443e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x443e('0x3'));var BPromise=require(_0x443e('0x4'));var Mustache=require('mustache');var util=require(_0x443e('0x5'));var path=require(_0x443e('0x6'));var sox=require(_0x443e('0x7'));var csv=require(_0x443e('0x8'));var ejs=require(_0x443e('0x9'));var fs=require('fs');var _=require(_0x443e('0xa'));var squel=require(_0x443e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x443e('0xc'));var toCsv=require(_0x443e('0x8'));var querystring=require('querystring');var Papa=require(_0x443e('0xd'));var Redis=require('ioredis');var authService=require(_0x443e('0xe'));var qs=require(_0x443e('0xf'));var as=require(_0x443e('0x10'));var hardwareService=require(_0x443e('0x11'));var logger=require(_0x443e('0x12'))(_0x443e('0x13'));var utils=require(_0x443e('0x14'));var config=require(_0x443e('0x15'));var licenseUtil=require(_0x443e('0x16'));var db=require(_0x443e('0x17'))['db'];function respondWithStatusCode(_0x55f495,_0x6bdca4){_0x6bdca4=_0x6bdca4||0xcc;return function(_0x290286){if(_0x290286){return _0x55f495[_0x443e('0x18')](_0x6bdca4);}return _0x55f495[_0x443e('0x19')](_0x6bdca4)[_0x443e('0x1a')]();};}function respondWithResult(_0x49fce3,_0x2753dd){_0x2753dd=_0x2753dd||0xc8;return function(_0xe30faa){if(_0xe30faa){return _0x49fce3[_0x443e('0x19')](_0x2753dd)[_0x443e('0x1b')](_0xe30faa);}};}function respondWithFilteredResult(_0x1b2ffd,_0x382223){return function(_0xecbe22){if(_0xecbe22){var _0x4d3143=_0xecbe22[_0x443e('0x1c')],_0x478f95=_0x382223[_0x443e('0x1d')],_0x2d6866=_0x382223['offset']+_0x382223[_0x443e('0x1e')],_0x3a91c4;if(_0x2d6866>=_0x4d3143){_0x2d6866=_0x4d3143;_0x3a91c4=0xc8;}else{_0x3a91c4=0xce;}_0x1b2ffd[_0x443e('0x19')](_0x3a91c4);return _0x1b2ffd[_0x443e('0x1f')](_0x443e('0x20'),_0x478f95+'-'+_0x2d6866+'/'+_0x4d3143)[_0x443e('0x1b')](_0xecbe22);}return null;};}function patchUpdates(_0x5f471d){return function(_0x16ee17){try{jsonpatch[_0x443e('0x21')](_0x16ee17,_0x5f471d,!![]);}catch(_0x1836fe){return BPromise['reject'](_0x1836fe);}return _0x16ee17[_0x443e('0x22')]();};}function saveUpdates(_0x4271d9,_0x1a6b91){return function(_0x5bee52){if(_0x5bee52){return _0x5bee52[_0x443e('0x23')](_0x4271d9)[_0x443e('0x24')](function(_0x5461fd){return _0x5461fd;});}return null;};}function removeEntity(_0x3315ed,_0xc7afe0){return function(_0xa8b06c){if(_0xa8b06c){return _0xa8b06c[_0x443e('0x25')]()[_0x443e('0x24')](function(){_0x3315ed[_0x443e('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x32864c,_0x5fda13){return function(_0x2a714d){if(!_0x2a714d){_0x32864c['sendStatus'](0x194);}return _0x2a714d;};}function handleError(_0x355a1e,_0x1ee168){_0x1ee168=_0x1ee168||0x1f4;return function(_0x3e68b5){logger[_0x443e('0x26')](_0x3e68b5['stack']);if(_0x3e68b5[_0x443e('0x27')]){delete _0x3e68b5[_0x443e('0x27')];}_0x355a1e['status'](_0x1ee168)['send'](_0x3e68b5);};}exports[_0x443e('0x28')]=function(_0x36a2a9,_0x38b912){var _0x4a6c92={},_0x42708e={},_0x2406cb={'count':0x0,'rows':[]};var _0x4cff4d=_[_0x443e('0x29')](db[_0x443e('0x2a')][_0x443e('0x2b')],function(_0x2ecb7d){return{'name':_0x2ecb7d[_0x443e('0x2c')],'type':_0x2ecb7d[_0x443e('0x2d')]['key']};});_0x42708e[_0x443e('0x2e')]=_[_0x443e('0x29')](_0x4cff4d,_0x443e('0x27'));_0x42708e[_0x443e('0x2f')]=_[_0x443e('0x30')](_0x36a2a9[_0x443e('0x2f')]);_0x42708e[_0x443e('0x31')]=_[_0x443e('0x32')](_0x42708e['model'],_0x42708e[_0x443e('0x2f')]);_0x4a6c92['attributes']=_[_0x443e('0x32')](_0x42708e[_0x443e('0x2e')],qs['fields'](_0x36a2a9[_0x443e('0x2f')][_0x443e('0x33')]));_0x4a6c92[_0x443e('0x34')]=_0x4a6c92['attributes'][_0x443e('0x35')]?_0x4a6c92[_0x443e('0x34')]:_0x42708e[_0x443e('0x2e')];if(!_0x36a2a9[_0x443e('0x2f')][_0x443e('0x36')](_0x443e('0x37'))){_0x4a6c92['limit']=qs[_0x443e('0x1e')](_0x36a2a9[_0x443e('0x2f')][_0x443e('0x1e')]);_0x4a6c92[_0x443e('0x1d')]=qs[_0x443e('0x1d')](_0x36a2a9[_0x443e('0x2f')]['offset']);}_0x4a6c92['order']=qs[_0x443e('0x38')](_0x36a2a9['query'][_0x443e('0x38')]);_0x4a6c92[_0x443e('0x39')]=qs[_0x443e('0x31')](_[_0x443e('0x3a')](_0x36a2a9[_0x443e('0x2f')],_0x42708e[_0x443e('0x31')]),_0x4cff4d);if(_0x36a2a9[_0x443e('0x2f')][_0x443e('0x3b')]){_0x4a6c92[_0x443e('0x39')]=_['merge'](_0x4a6c92['where'],{'$or':_[_0x443e('0x29')](_0x4cff4d,function(_0x2df401){if(_0x2df401[_0x443e('0x2d')]!==_0x443e('0x3c')){var _0x2a0fed={};_0x2a0fed[_0x2df401[_0x443e('0x27')]]={'$like':'%'+_0x36a2a9[_0x443e('0x2f')]['filter']+'%'};return _0x2a0fed;}})});}_0x4a6c92=_[_0x443e('0x3d')]({},_0x4a6c92,_0x36a2a9['options']);var _0x77a927={'where':_0x4a6c92[_0x443e('0x39')]};return db['Attachment'][_0x443e('0x1c')](_0x77a927)[_0x443e('0x24')](function(_0x53571b){_0x2406cb[_0x443e('0x1c')]=_0x53571b;if(_0x36a2a9[_0x443e('0x2f')][_0x443e('0x3e')]){_0x4a6c92[_0x443e('0x3f')]=[{'all':!![]}];}return db['Attachment'][_0x443e('0x40')](_0x4a6c92);})['then'](function(_0x21869c){_0x2406cb['rows']=_0x21869c;return _0x2406cb;})['then'](respondWithFilteredResult(_0x38b912,_0x4a6c92))[_0x443e('0x41')](handleError(_0x38b912,null));};exports[_0x443e('0x42')]=function(_0x3436c4,_0x1a7a25){var _0x4d09f5={'raw':!![],'where':{'id':_0x3436c4[_0x443e('0x43')]['id']}},_0x1ab793={};_0x1ab793['model']=_[_0x443e('0x30')](db['Attachment'][_0x443e('0x2b')]);_0x1ab793[_0x443e('0x2f')]=_[_0x443e('0x30')](_0x3436c4[_0x443e('0x2f')]);_0x1ab793[_0x443e('0x31')]=_['intersection'](_0x1ab793[_0x443e('0x2e')],_0x1ab793[_0x443e('0x2f')]);_0x4d09f5[_0x443e('0x34')]=_[_0x443e('0x32')](_0x1ab793[_0x443e('0x2e')],qs['fields'](_0x3436c4[_0x443e('0x2f')][_0x443e('0x33')]));_0x4d09f5[_0x443e('0x34')]=_0x4d09f5[_0x443e('0x34')]['length']?_0x4d09f5['attributes']:_0x1ab793['model'];if(_0x3436c4[_0x443e('0x2f')][_0x443e('0x3e')]){_0x4d09f5[_0x443e('0x3f')]=[{'all':!![]}];}_0x4d09f5=_[_0x443e('0x3d')]({},_0x4d09f5,_0x3436c4[_0x443e('0x44')]);return db[_0x443e('0x2a')]['find'](_0x4d09f5)['then'](handleEntityNotFound(_0x1a7a25,null))[_0x443e('0x24')](respondWithResult(_0x1a7a25,null))[_0x443e('0x41')](handleError(_0x1a7a25,null));};exports['clone']=function(_0x5a6c79,_0x5cae88){var _0x3e99d8={'where':{'id':_0x5a6c79['params']['id']}},_0x4100d={};_0x4100d[_0x443e('0x2e')]=_[_0x443e('0x30')](db[_0x443e('0x2a')][_0x443e('0x2b')]);_0x3e99d8['attributes']=_[_0x443e('0x32')](_0x4100d[_0x443e('0x2e')],qs[_0x443e('0x33')](_0x5a6c79[_0x443e('0x2f')][_0x443e('0x33')]));_0x3e99d8['attributes']=_0x3e99d8[_0x443e('0x34')][_0x443e('0x35')]?_0x3e99d8[_0x443e('0x34')]:_0x4100d['model'];if(_0x5a6c79[_0x443e('0x2f')][_0x443e('0x3e')]){_0x3e99d8[_0x443e('0x3f')]=[{'all':!![]}];}_0x3e99d8=_['merge']({},_0x3e99d8,_0x5a6c79[_0x443e('0x44')]);return db[_0x443e('0x2a')][_0x443e('0x45')](_0x3e99d8)['then'](handleEntityNotFound(_0x5cae88,null))[_0x443e('0x24')](function(_0x577d95){if(_0x577d95){var _0x1027c2=_0x577d95['get']({'plain':!![]});_0x1027c2=qs[_0x443e('0x46')](_0x1027c2,['id',_0x443e('0x47'),_0x443e('0x48')]);_0x5a6c79[_0x443e('0x49')]=_[_0x443e('0x46')](_0x5a6c79[_0x443e('0x49')],['id',_0x443e('0x47'),_0x443e('0x48')]);return db['Attachment'][_0x443e('0x4a')](_['merge'](_0x1027c2,_0x5a6c79[_0x443e('0x49')]),{'include':_0x5a6c79[_0x443e('0x2f')][_0x443e('0x3e')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x5cae88,0xc9))[_0x443e('0x41')](handleError(_0x5cae88,null));};exports[_0x443e('0x23')]=function(_0x20f0a3,_0x3b9e61){if(_0x20f0a3[_0x443e('0x49')]['id']){delete _0x20f0a3[_0x443e('0x49')]['id'];}return db[_0x443e('0x2a')][_0x443e('0x45')]({'where':{'id':_0x20f0a3['params']['id']}})[_0x443e('0x24')](handleEntityNotFound(_0x3b9e61,null))[_0x443e('0x24')](saveUpdates(_0x20f0a3[_0x443e('0x49')],null))['then'](respondWithResult(_0x3b9e61,null))[_0x443e('0x41')](handleError(_0x3b9e61,null));};exports[_0x443e('0x25')]=function(_0x43014a,_0x5478ca){return db[_0x443e('0x2a')]['find']({'where':{'id':_0x43014a[_0x443e('0x43')]['id']}})[_0x443e('0x24')](handleEntityNotFound(_0x5478ca,null))[_0x443e('0x24')](removeEntity(_0x5478ca,null))[_0x443e('0x41')](handleError(_0x5478ca,null));};exports[_0x443e('0x4a')]=function(_0x43176b,_0xaac13,_0x4523fe){_0x43176b[_0x443e('0x49')]['name']=_0x43176b['file'][_0x443e('0x4b')];_0x43176b['body'][_0x443e('0x4c')]=_0x43176b['file'][_0x443e('0x4d')];_0x43176b['body'][_0x443e('0x2d')]=_0x43176b[_0x443e('0x4e')][_0x443e('0x4f')];return db[_0x443e('0x2a')]['create'](_0x43176b[_0x443e('0x49')])[_0x443e('0x24')](respondWithResult(_0xaac13,0xc9))[_0x443e('0x41')](handleError(_0xaac13,null));};exports[_0x443e('0x50')]=function(_0x1e62c4,_0x3986be,_0x263781){return db[_0x443e('0x2a')][_0x443e('0x51')]({'where':{'id':_0x1e62c4[_0x443e('0x43')]['id']},'raw':!![]})[_0x443e('0x24')](handleEntityNotFound(_0x3986be,null))[_0x443e('0x24')](function(_0x43b021){if(_0x43b021){return _0x3986be[_0x443e('0x50')](path['join'](config[_0x443e('0x52')],_0x443e('0x53'),_0x43b021['basename']));}})[_0x443e('0x41')](handleError(_0x3986be,null));};