Built motion from commit 9c91e9f5.|2.6.29
[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 _0x9769=['query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','show','find','params','get','omit','updatedAt','body','create','file','originalname','filename','download','findOne','ChatOfflineMessageId','join','offline-chat/','basename','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','status','end','offset','undefined','count','limit','set','apply','reject','update','then','destroy','sendStatus','stack','name','send','map','Attachment','rawAttributes','fieldName','model'];(function(_0x477598,_0x4dab5c){var _0x4c7ffb=function(_0x1be044){while(--_0x1be044){_0x477598['push'](_0x477598['shift']());}};_0x4c7ffb(++_0x4dab5c);}(_0x9769,0x78));var _0x9976=function(_0x484028,_0x59a664){_0x484028=_0x484028-0x0;var _0x72c871=_0x9769[_0x484028];return _0x72c871;};'use strict';var emlformat=require(_0x9976('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9976('0x1'));var jsonpatch=require(_0x9976('0x2'));var rp=require(_0x9976('0x3'));var moment=require(_0x9976('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9976('0x5'));var util=require(_0x9976('0x6'));var path=require(_0x9976('0x7'));var sox=require(_0x9976('0x8'));var csv=require(_0x9976('0x9'));var ejs=require(_0x9976('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9976('0xb'));var crypto=require('crypto');var jsforce=require(_0x9976('0xc'));var deskjs=require(_0x9976('0xd'));var toCsv=require(_0x9976('0x9'));var querystring=require(_0x9976('0xe'));var Papa=require(_0x9976('0xf'));var Redis=require(_0x9976('0x10'));var authService=require(_0x9976('0x11'));var qs=require(_0x9976('0x12'));var as=require(_0x9976('0x13'));var hardwareService=require(_0x9976('0x14'));var logger=require(_0x9976('0x15'))(_0x9976('0x16'));var utils=require(_0x9976('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9976('0x18'))['db'];function respondWithStatusCode(_0x327005,_0x4fffb4){_0x4fffb4=_0x4fffb4||0xcc;return function(_0x72d76c){if(_0x72d76c){return _0x327005['sendStatus'](_0x4fffb4);}return _0x327005[_0x9976('0x19')](_0x4fffb4)[_0x9976('0x1a')]();};}function respondWithResult(_0x5050d0,_0x46c58f){_0x46c58f=_0x46c58f||0xc8;return function(_0x334f5b){if(_0x334f5b){return _0x5050d0['status'](_0x46c58f)['json'](_0x334f5b);}};}function respondWithFilteredResult(_0x52cc09,_0x59f0fd){return function(_0x2de4ae){if(_0x2de4ae){var _0x427678=typeof _0x59f0fd[_0x9976('0x1b')]===_0x9976('0x1c')&&typeof _0x59f0fd['limit']===_0x9976('0x1c');var _0x16553e=_0x2de4ae[_0x9976('0x1d')];var _0x125ef7=_0x427678?0x0:_0x59f0fd[_0x9976('0x1b')];var _0x46fee5=_0x427678?_0x2de4ae[_0x9976('0x1d')]:_0x59f0fd[_0x9976('0x1b')]+_0x59f0fd[_0x9976('0x1e')];var _0x37ac4c;if(_0x46fee5>=_0x16553e){_0x46fee5=_0x16553e;_0x37ac4c=0xc8;}else{_0x37ac4c=0xce;}_0x52cc09[_0x9976('0x19')](_0x37ac4c);return _0x52cc09[_0x9976('0x1f')]('Content-Range',_0x125ef7+'-'+_0x46fee5+'/'+_0x16553e)['json'](_0x2de4ae);}return null;};}function patchUpdates(_0x54b553){return function(_0x20ac84){try{jsonpatch[_0x9976('0x20')](_0x20ac84,_0x54b553,!![]);}catch(_0x140c6c){return BPromise[_0x9976('0x21')](_0x140c6c);}return _0x20ac84['save']();};}function saveUpdates(_0x58e176,_0x2fc265){return function(_0x51f950){if(_0x51f950){return _0x51f950[_0x9976('0x22')](_0x58e176)[_0x9976('0x23')](function(_0x13fb68){return _0x13fb68;});}return null;};}function removeEntity(_0xe102b0,_0x20cd32){return function(_0x17216c){if(_0x17216c){return _0x17216c[_0x9976('0x24')]()['then'](function(){_0xe102b0['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4aab29,_0xc913b4){return function(_0x532333){if(!_0x532333){_0x4aab29[_0x9976('0x25')](0x194);}return _0x532333;};}function handleError(_0x527625,_0x1801b2){_0x1801b2=_0x1801b2||0x1f4;return function(_0x221d9d){logger['error'](_0x221d9d[_0x9976('0x26')]);if(_0x221d9d[_0x9976('0x27')]){delete _0x221d9d[_0x9976('0x27')];}_0x527625[_0x9976('0x19')](_0x1801b2)[_0x9976('0x28')](_0x221d9d);};}exports['index']=function(_0x22183e,_0x21549f){var _0x1c4f0f={},_0x42e010={},_0x20d0db={'count':0x0,'rows':[]};var _0x1ab8fa=_[_0x9976('0x29')](db[_0x9976('0x2a')][_0x9976('0x2b')],function(_0x2d5e90){return{'name':_0x2d5e90[_0x9976('0x2c')],'type':_0x2d5e90['type']['key']};});_0x42e010[_0x9976('0x2d')]=_[_0x9976('0x29')](_0x1ab8fa,_0x9976('0x27'));_0x42e010[_0x9976('0x2e')]=_[_0x9976('0x2f')](_0x22183e[_0x9976('0x2e')]);_0x42e010[_0x9976('0x30')]=_['intersection'](_0x42e010[_0x9976('0x2d')],_0x42e010[_0x9976('0x2e')]);_0x1c4f0f[_0x9976('0x31')]=_[_0x9976('0x32')](_0x42e010[_0x9976('0x2d')],qs[_0x9976('0x33')](_0x22183e[_0x9976('0x2e')][_0x9976('0x33')]));_0x1c4f0f['attributes']=_0x1c4f0f[_0x9976('0x31')][_0x9976('0x34')]?_0x1c4f0f[_0x9976('0x31')]:_0x42e010[_0x9976('0x2d')];if(!_0x22183e[_0x9976('0x2e')][_0x9976('0x35')]('nolimit')){_0x1c4f0f[_0x9976('0x1e')]=qs[_0x9976('0x1e')](_0x22183e[_0x9976('0x2e')][_0x9976('0x1e')]);_0x1c4f0f['offset']=qs[_0x9976('0x1b')](_0x22183e[_0x9976('0x2e')][_0x9976('0x1b')]);}_0x1c4f0f[_0x9976('0x36')]=qs[_0x9976('0x37')](_0x22183e[_0x9976('0x2e')][_0x9976('0x37')]);_0x1c4f0f['where']=qs['filters'](_['pick'](_0x22183e[_0x9976('0x2e')],_0x42e010[_0x9976('0x30')]),_0x1ab8fa);if(_0x22183e[_0x9976('0x2e')][_0x9976('0x38')]){_0x1c4f0f[_0x9976('0x39')]=_[_0x9976('0x3a')](_0x1c4f0f['where'],{'$or':_[_0x9976('0x29')](_0x1ab8fa,function(_0x3f18b8){if(_0x3f18b8[_0x9976('0x3b')]!==_0x9976('0x3c')){var _0x191800={};_0x191800[_0x3f18b8[_0x9976('0x27')]]={'$like':'%'+_0x22183e[_0x9976('0x2e')][_0x9976('0x38')]+'%'};return _0x191800;}})});}_0x1c4f0f=_[_0x9976('0x3a')]({},_0x1c4f0f,_0x22183e[_0x9976('0x3d')]);var _0x114ad4={'where':_0x1c4f0f['where']};return db[_0x9976('0x2a')][_0x9976('0x1d')](_0x114ad4)['then'](function(_0x1af145){_0x20d0db[_0x9976('0x1d')]=_0x1af145;if(_0x22183e[_0x9976('0x2e')][_0x9976('0x3e')]){_0x1c4f0f[_0x9976('0x3f')]=[{'all':!![]}];}return db[_0x9976('0x2a')][_0x9976('0x40')](_0x1c4f0f);})['then'](function(_0xd32e7){_0x20d0db['rows']=_0xd32e7;return _0x20d0db;})[_0x9976('0x23')](respondWithFilteredResult(_0x21549f,_0x1c4f0f))[_0x9976('0x41')](handleError(_0x21549f,null));};exports[_0x9976('0x42')]=function(_0x10fd32,_0x56e8f2){var _0xa7e10b={'raw':!![],'where':{'id':_0x10fd32['params']['id']}},_0x1d35f0={};_0x1d35f0[_0x9976('0x2d')]=_[_0x9976('0x2f')](db[_0x9976('0x2a')][_0x9976('0x2b')]);_0x1d35f0[_0x9976('0x2e')]=_[_0x9976('0x2f')](_0x10fd32[_0x9976('0x2e')]);_0x1d35f0[_0x9976('0x30')]=_['intersection'](_0x1d35f0[_0x9976('0x2d')],_0x1d35f0[_0x9976('0x2e')]);_0xa7e10b[_0x9976('0x31')]=_[_0x9976('0x32')](_0x1d35f0[_0x9976('0x2d')],qs[_0x9976('0x33')](_0x10fd32['query'][_0x9976('0x33')]));_0xa7e10b[_0x9976('0x31')]=_0xa7e10b[_0x9976('0x31')][_0x9976('0x34')]?_0xa7e10b[_0x9976('0x31')]:_0x1d35f0[_0x9976('0x2d')];if(_0x10fd32[_0x9976('0x2e')][_0x9976('0x3e')]){_0xa7e10b[_0x9976('0x3f')]=[{'all':!![]}];}_0xa7e10b=_[_0x9976('0x3a')]({},_0xa7e10b,_0x10fd32[_0x9976('0x3d')]);return db[_0x9976('0x2a')][_0x9976('0x43')](_0xa7e10b)[_0x9976('0x23')](handleEntityNotFound(_0x56e8f2,null))[_0x9976('0x23')](respondWithResult(_0x56e8f2,null))['catch'](handleError(_0x56e8f2,null));};exports['clone']=function(_0x165155,_0x1e6c6a){var _0x2f8712={'where':{'id':_0x165155[_0x9976('0x44')]['id']}},_0x574185={};_0x574185['model']=_['keys'](db['Attachment']['rawAttributes']);_0x2f8712[_0x9976('0x31')]=_['intersection'](_0x574185[_0x9976('0x2d')],qs[_0x9976('0x33')](_0x165155[_0x9976('0x2e')][_0x9976('0x33')]));_0x2f8712['attributes']=_0x2f8712[_0x9976('0x31')][_0x9976('0x34')]?_0x2f8712[_0x9976('0x31')]:_0x574185[_0x9976('0x2d')];if(_0x165155['query'][_0x9976('0x3e')]){_0x2f8712['include']=[{'all':!![]}];}_0x2f8712=_[_0x9976('0x3a')]({},_0x2f8712,_0x165155['options']);return db['Attachment'][_0x9976('0x43')](_0x2f8712)[_0x9976('0x23')](handleEntityNotFound(_0x1e6c6a,null))[_0x9976('0x23')](function(_0x5138f6){if(_0x5138f6){var _0x6ad545=_0x5138f6[_0x9976('0x45')]({'plain':!![]});_0x6ad545=qs[_0x9976('0x46')](_0x6ad545,['id','createdAt',_0x9976('0x47')]);_0x165155['body']=_[_0x9976('0x46')](_0x165155[_0x9976('0x48')],['id','createdAt',_0x9976('0x47')]);return db['Attachment'][_0x9976('0x49')](_['merge'](_0x6ad545,_0x165155['body']),{'include':_0x165155[_0x9976('0x2e')][_0x9976('0x3e')]?[{'all':!![]}]:undefined});}})[_0x9976('0x23')](respondWithResult(_0x1e6c6a,0xc9))[_0x9976('0x41')](handleError(_0x1e6c6a,null));};exports['update']=function(_0x1fb201,_0x50d374){if(_0x1fb201[_0x9976('0x48')]['id']){delete _0x1fb201[_0x9976('0x48')]['id'];}return db[_0x9976('0x2a')][_0x9976('0x43')]({'where':{'id':_0x1fb201[_0x9976('0x44')]['id']}})[_0x9976('0x23')](handleEntityNotFound(_0x50d374,null))['then'](saveUpdates(_0x1fb201['body'],null))['then'](respondWithResult(_0x50d374,null))[_0x9976('0x41')](handleError(_0x50d374,null));};exports[_0x9976('0x24')]=function(_0x1ebabe,_0x58fcd7){return db[_0x9976('0x2a')][_0x9976('0x43')]({'where':{'id':_0x1ebabe[_0x9976('0x44')]['id']}})[_0x9976('0x23')](handleEntityNotFound(_0x58fcd7,null))[_0x9976('0x23')](removeEntity(_0x58fcd7,null))[_0x9976('0x41')](handleError(_0x58fcd7,null));};exports[_0x9976('0x49')]=function(_0x1779a1,_0x4db6df,_0x451b0f){_0x1779a1[_0x9976('0x48')]['name']=_0x1779a1[_0x9976('0x4a')][_0x9976('0x4b')];_0x1779a1[_0x9976('0x48')]['basename']=_0x1779a1[_0x9976('0x4a')][_0x9976('0x4c')];_0x1779a1[_0x9976('0x48')][_0x9976('0x3b')]=_0x1779a1[_0x9976('0x4a')]['mimetype'];return db[_0x9976('0x2a')][_0x9976('0x49')](_0x1779a1[_0x9976('0x48')])[_0x9976('0x23')](respondWithResult(_0x4db6df,0xc9))['catch'](handleError(_0x4db6df,null));};exports[_0x9976('0x4d')]=function(_0x5a1b8e,_0x3dc32a,_0x9d2f04){return db['Attachment'][_0x9976('0x4e')]({'where':{'id':_0x5a1b8e['params']['id']},'raw':!![]})[_0x9976('0x23')](handleEntityNotFound(_0x3dc32a,null))[_0x9976('0x23')](function(_0x1a58bb){if(_0x1a58bb){var _0x18af62=_0x1a58bb[_0x9976('0x4f')]!==null;var _0x34124e=path[_0x9976('0x50')](config['root'],'server/files/attachments/');if(_0x18af62){_0x34124e=path[_0x9976('0x50')](_0x34124e,_0x9976('0x51'));}var _0x1aa29c=path[_0x9976('0x50')](_0x34124e,_0x1a58bb[_0x9976('0x52')]);return _0x3dc32a[_0x9976('0x4d')](_0x1aa29c);}})[_0x9976('0x41')](handleError(_0x3dc32a,null));};