Built motion from commit (unavailable).|2.5.31
[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 _0x1743=['render','merge','body','contact','message','agent','account','map','rawAttributes','type','key','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','VIRTUAL','options','Attachment','count','includeAll','include','findAll','rows','catch','params','keys','find','clone','get','omit','createdAt','updatedAt','create','file','originalname','basename','filename','mimetype','download','findOne','root','server/files/attachments/','join','offline-chat/','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send'];(function(_0x383739,_0x7775f2){var _0x545366=function(_0x53a8f2){while(--_0x53a8f2){_0x383739['push'](_0x383739['shift']());}};_0x545366(++_0x7775f2);}(_0x1743,0x1b1));var _0x3174=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1743[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x3174('0x0'));var rimraf=require(_0x3174('0x1'));var zipdir=require(_0x3174('0x2'));var jsonpatch=require(_0x3174('0x3'));var rp=require(_0x3174('0x4'));var moment=require(_0x3174('0x5'));var BPromise=require(_0x3174('0x6'));var Mustache=require('mustache');var util=require(_0x3174('0x7'));var path=require(_0x3174('0x8'));var sox=require(_0x3174('0x9'));var csv=require('to-csv');var ejs=require(_0x3174('0xa'));var fs=require('fs');var fs_extra=require(_0x3174('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x3174('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x3174('0xd'));var toCsv=require(_0x3174('0xe'));var querystring=require(_0x3174('0xf'));var Papa=require('papaparse');var Redis=require(_0x3174('0x10'));var authService=require(_0x3174('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3174('0x12'));var logger=require(_0x3174('0x13'))(_0x3174('0x14'));var utils=require(_0x3174('0x15'));var config=require(_0x3174('0x16'));var licenseUtil=require(_0x3174('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x599a7f,_0xa0e732){_0xa0e732=_0xa0e732||0xcc;return function(_0x4d1a19){if(_0x4d1a19){return _0x599a7f['sendStatus'](_0xa0e732);}return _0x599a7f[_0x3174('0x18')](_0xa0e732)[_0x3174('0x19')]();};}function respondWithResult(_0x20b9e7,_0x533434){_0x533434=_0x533434||0xc8;return function(_0x443ff7){if(_0x443ff7){return _0x20b9e7['status'](_0x533434)[_0x3174('0x1a')](_0x443ff7);}};}function respondWithFilteredResult(_0x4cd5db,_0x3c8a9d){return function(_0x393653){if(_0x393653){var _0x4ff2ff=typeof _0x3c8a9d[_0x3174('0x1b')]===_0x3174('0x1c')&&typeof _0x3c8a9d[_0x3174('0x1d')]==='undefined';var _0x1f5458=_0x393653['count'];var _0x4e37d4=_0x4ff2ff?0x0:_0x3c8a9d[_0x3174('0x1b')];var _0x2da6fb=_0x4ff2ff?_0x393653['count']:_0x3c8a9d[_0x3174('0x1b')]+_0x3c8a9d[_0x3174('0x1d')];var _0xcb65ae;if(_0x2da6fb>=_0x1f5458){_0x2da6fb=_0x1f5458;_0xcb65ae=0xc8;}else{_0xcb65ae=0xce;}_0x4cd5db[_0x3174('0x18')](_0xcb65ae);return _0x4cd5db[_0x3174('0x1e')](_0x3174('0x1f'),_0x4e37d4+'-'+_0x2da6fb+'/'+_0x1f5458)[_0x3174('0x1a')](_0x393653);}return null;};}function patchUpdates(_0x4da4a6){return function(_0xa4440b){try{jsonpatch[_0x3174('0x20')](_0xa4440b,_0x4da4a6,!![]);}catch(_0x5ae4a5){return BPromise[_0x3174('0x21')](_0x5ae4a5);}return _0xa4440b[_0x3174('0x22')]();};}function saveUpdates(_0x3c101b,_0x3a6df4){return function(_0x253963){if(_0x253963){return _0x253963[_0x3174('0x23')](_0x3c101b)[_0x3174('0x24')](function(_0x31f2f4){return _0x31f2f4;});}return null;};}function removeEntity(_0x5be416,_0x1bf120){return function(_0x58f413){if(_0x58f413){return _0x58f413[_0x3174('0x25')]()['then'](function(){_0x5be416[_0x3174('0x18')](0xcc)[_0x3174('0x19')]();});}};}function handleEntityNotFound(_0x5899cf,_0x3cd9bc){return function(_0x57d52e){if(!_0x57d52e){_0x5899cf['sendStatus'](0x194);}return _0x57d52e;};}function handleError(_0x3de86f,_0x10d0d7){_0x10d0d7=_0x10d0d7||0x1f4;return function(_0x2b9282){logger[_0x3174('0x26')](_0x2b9282[_0x3174('0x27')]);if(_0x2b9282[_0x3174('0x28')]){delete _0x2b9282[_0x3174('0x28')];}_0x3de86f['status'](_0x10d0d7)[_0x3174('0x29')](_0x2b9282);};}function getMustacheRender(_0x3d6a30,_0x45f4b0){return Mustache[_0x3174('0x2a')](_0x3d6a30,_[_0x3174('0x2b')](_0x45f4b0[_0x3174('0x2c')],{'contact':_0x45f4b0[_0x3174('0x2d')],'message':_0x45f4b0[_0x3174('0x2e')],'agent':_0x45f4b0[_0x3174('0x2f')],'interaction':_0x45f4b0['interaction'],'account':_0x45f4b0[_0x3174('0x30')]}))||'';}exports['index']=function(_0x5502b4,_0x440c26){var _0x16096a={},_0x521949={},_0x5ac1f0={'count':0x0,'rows':[]};var _0x5c2f63=_[_0x3174('0x31')](db['Attachment'][_0x3174('0x32')],function(_0x5bde9b){return{'name':_0x5bde9b['fieldName'],'type':_0x5bde9b[_0x3174('0x33')][_0x3174('0x34')]};});_0x521949['model']=_[_0x3174('0x31')](_0x5c2f63,'name');_0x521949[_0x3174('0x35')]=_['keys'](_0x5502b4['query']);_0x521949[_0x3174('0x36')]=_[_0x3174('0x37')](_0x521949['model'],_0x521949[_0x3174('0x35')]);_0x16096a['attributes']=_[_0x3174('0x37')](_0x521949[_0x3174('0x38')],qs[_0x3174('0x39')](_0x5502b4[_0x3174('0x35')]['fields']));_0x16096a[_0x3174('0x3a')]=_0x16096a[_0x3174('0x3a')][_0x3174('0x3b')]?_0x16096a[_0x3174('0x3a')]:_0x521949['model'];if(!_0x5502b4[_0x3174('0x35')][_0x3174('0x3c')](_0x3174('0x3d'))){_0x16096a[_0x3174('0x1d')]=qs[_0x3174('0x1d')](_0x5502b4[_0x3174('0x35')][_0x3174('0x1d')]);_0x16096a[_0x3174('0x1b')]=qs[_0x3174('0x1b')](_0x5502b4[_0x3174('0x35')][_0x3174('0x1b')]);}_0x16096a['order']=qs[_0x3174('0x3e')](_0x5502b4[_0x3174('0x35')][_0x3174('0x3e')]);_0x16096a['where']=qs[_0x3174('0x36')](_[_0x3174('0x3f')](_0x5502b4[_0x3174('0x35')],_0x521949[_0x3174('0x36')]),_0x5c2f63);if(_0x5502b4[_0x3174('0x35')][_0x3174('0x40')]){_0x16096a[_0x3174('0x41')]=_['merge'](_0x16096a['where'],{'$or':_['map'](_0x5c2f63,function(_0x5bd7bf){if(_0x5bd7bf[_0x3174('0x33')]!==_0x3174('0x42')){var _0x5b16eb={};_0x5b16eb[_0x5bd7bf[_0x3174('0x28')]]={'$like':'%'+_0x5502b4['query'][_0x3174('0x40')]+'%'};return _0x5b16eb;}})});}_0x16096a=_[_0x3174('0x2b')]({},_0x16096a,_0x5502b4[_0x3174('0x43')]);var _0x4b1276={'where':_0x16096a[_0x3174('0x41')]};return db[_0x3174('0x44')][_0x3174('0x45')](_0x4b1276)[_0x3174('0x24')](function(_0x1a31b5){_0x5ac1f0[_0x3174('0x45')]=_0x1a31b5;if(_0x5502b4[_0x3174('0x35')][_0x3174('0x46')]){_0x16096a[_0x3174('0x47')]=[{'all':!![]}];}return db[_0x3174('0x44')][_0x3174('0x48')](_0x16096a);})[_0x3174('0x24')](function(_0x227e2e){_0x5ac1f0[_0x3174('0x49')]=_0x227e2e;return _0x5ac1f0;})[_0x3174('0x24')](respondWithFilteredResult(_0x440c26,_0x16096a))[_0x3174('0x4a')](handleError(_0x440c26,null));};exports['show']=function(_0x4fec05,_0x3b8920){var _0x5846ac={'raw':!![],'where':{'id':_0x4fec05[_0x3174('0x4b')]['id']}},_0x23c849={};_0x23c849[_0x3174('0x38')]=_[_0x3174('0x4c')](db[_0x3174('0x44')][_0x3174('0x32')]);_0x23c849[_0x3174('0x35')]=_[_0x3174('0x4c')](_0x4fec05[_0x3174('0x35')]);_0x23c849[_0x3174('0x36')]=_['intersection'](_0x23c849[_0x3174('0x38')],_0x23c849[_0x3174('0x35')]);_0x5846ac[_0x3174('0x3a')]=_[_0x3174('0x37')](_0x23c849['model'],qs[_0x3174('0x39')](_0x4fec05[_0x3174('0x35')]['fields']));_0x5846ac[_0x3174('0x3a')]=_0x5846ac[_0x3174('0x3a')][_0x3174('0x3b')]?_0x5846ac['attributes']:_0x23c849[_0x3174('0x38')];if(_0x4fec05[_0x3174('0x35')][_0x3174('0x46')]){_0x5846ac[_0x3174('0x47')]=[{'all':!![]}];}_0x5846ac=_[_0x3174('0x2b')]({},_0x5846ac,_0x4fec05['options']);return db['Attachment'][_0x3174('0x4d')](_0x5846ac)[_0x3174('0x24')](handleEntityNotFound(_0x3b8920,null))[_0x3174('0x24')](respondWithResult(_0x3b8920,null))[_0x3174('0x4a')](handleError(_0x3b8920,null));};exports[_0x3174('0x4e')]=function(_0x2d6704,_0x4f78bc){var _0x1ad4b0={'where':{'id':_0x2d6704['params']['id']}},_0x5d3c76={};_0x5d3c76[_0x3174('0x38')]=_['keys'](db['Attachment'][_0x3174('0x32')]);_0x1ad4b0[_0x3174('0x3a')]=_['intersection'](_0x5d3c76[_0x3174('0x38')],qs[_0x3174('0x39')](_0x2d6704[_0x3174('0x35')][_0x3174('0x39')]));_0x1ad4b0[_0x3174('0x3a')]=_0x1ad4b0[_0x3174('0x3a')]['length']?_0x1ad4b0[_0x3174('0x3a')]:_0x5d3c76[_0x3174('0x38')];if(_0x2d6704[_0x3174('0x35')][_0x3174('0x46')]){_0x1ad4b0[_0x3174('0x47')]=[{'all':!![]}];}_0x1ad4b0=_[_0x3174('0x2b')]({},_0x1ad4b0,_0x2d6704['options']);return db['Attachment'][_0x3174('0x4d')](_0x1ad4b0)[_0x3174('0x24')](handleEntityNotFound(_0x4f78bc,null))['then'](function(_0x3eaec6){if(_0x3eaec6){var _0x1c3454=_0x3eaec6[_0x3174('0x4f')]({'plain':!![]});_0x1c3454=qs[_0x3174('0x50')](_0x1c3454,['id','createdAt','updatedAt']);_0x2d6704[_0x3174('0x2c')]=_[_0x3174('0x50')](_0x2d6704['body'],['id',_0x3174('0x51'),_0x3174('0x52')]);return db[_0x3174('0x44')][_0x3174('0x53')](_[_0x3174('0x2b')](_0x1c3454,_0x2d6704['body']),{'include':_0x2d6704[_0x3174('0x35')][_0x3174('0x46')]?[{'all':!![]}]:undefined});}})[_0x3174('0x24')](respondWithResult(_0x4f78bc,0xc9))[_0x3174('0x4a')](handleError(_0x4f78bc,null));};exports['update']=function(_0x3522b5,_0x3c456c){if(_0x3522b5[_0x3174('0x2c')]['id']){delete _0x3522b5[_0x3174('0x2c')]['id'];}return db[_0x3174('0x44')][_0x3174('0x4d')]({'where':{'id':_0x3522b5['params']['id']}})[_0x3174('0x24')](handleEntityNotFound(_0x3c456c,null))[_0x3174('0x24')](saveUpdates(_0x3522b5[_0x3174('0x2c')],null))[_0x3174('0x24')](respondWithResult(_0x3c456c,null))[_0x3174('0x4a')](handleError(_0x3c456c,null));};exports[_0x3174('0x25')]=function(_0x738f31,_0x280b13){return db[_0x3174('0x44')][_0x3174('0x4d')]({'where':{'id':_0x738f31['params']['id']}})['then'](handleEntityNotFound(_0x280b13,null))[_0x3174('0x24')](removeEntity(_0x280b13,null))['catch'](handleError(_0x280b13,null));};exports['create']=function(_0xe180,_0x587ca5,_0x42cdd6){_0xe180[_0x3174('0x2c')]['name']=_0xe180[_0x3174('0x54')][_0x3174('0x55')];_0xe180[_0x3174('0x2c')][_0x3174('0x56')]=_0xe180[_0x3174('0x54')][_0x3174('0x57')];_0xe180[_0x3174('0x2c')][_0x3174('0x33')]=_0xe180[_0x3174('0x54')][_0x3174('0x58')];return db[_0x3174('0x44')]['create'](_0xe180[_0x3174('0x2c')])[_0x3174('0x24')](respondWithResult(_0x587ca5,0xc9))[_0x3174('0x4a')](handleError(_0x587ca5,null));};exports[_0x3174('0x59')]=function(_0x154afd,_0x5ae31d,_0x589a43){return db[_0x3174('0x44')][_0x3174('0x5a')]({'where':{'id':_0x154afd[_0x3174('0x4b')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x5ae31d,null))[_0x3174('0x24')](function(_0x535ad8){if(_0x535ad8){var _0x392b46=_0x535ad8['ChatOfflineMessageId']!==null;var _0x1d4901=path['join'](config[_0x3174('0x5b')],_0x3174('0x5c'));if(_0x392b46){_0x1d4901=path[_0x3174('0x5d')](_0x1d4901,_0x3174('0x5e'));}var _0x5f1844=path[_0x3174('0x5d')](_0x1d4901,_0x535ad8[_0x3174('0x56')]);return _0x5ae31d[_0x3174('0x59')](_0x5f1844);}})[_0x3174('0x4a')](handleError(_0x5ae31d,null));};