Built motion from commit 85328c08.|2.5.50
[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 _0x4667=['filter','options','includeAll','include','findAll','rows','catch','show','params','find','clone','get','omit','updatedAt','body','createdAt','create','originalname','basename','file','filename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','request-promise','bluebird','mustache','util','sox','to-csv','fs-extra','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','offset','undefined','count','limit','status','set','Content-Range','json','reject','save','update','then','destroy','name','send','index','map','Attachment','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL'];(function(_0x321399,_0x32957f){var _0x29b4a2=function(_0x2bf04f){while(--_0x2bf04f){_0x321399['push'](_0x321399['shift']());}};_0x29b4a2(++_0x32957f);}(_0x4667,0x12b));var _0x7466=function(_0x483cbe,_0x1832da){_0x483cbe=_0x483cbe-0x0;var _0x191c71=_0x4667[_0x483cbe];return _0x191c71;};'use strict';var emlformat=require(_0x7466('0x0'));var rimraf=require(_0x7466('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7466('0x2'));var moment=require('moment');var BPromise=require(_0x7466('0x3'));var Mustache=require(_0x7466('0x4'));var util=require(_0x7466('0x5'));var path=require('path');var sox=require(_0x7466('0x6'));var csv=require(_0x7466('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7466('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x7466('0x9'));var jsforce=require(_0x7466('0xa'));var deskjs=require(_0x7466('0xb'));var toCsv=require(_0x7466('0x7'));var querystring=require('querystring');var Papa=require(_0x7466('0xc'));var Redis=require('ioredis');var authService=require(_0x7466('0xd'));var qs=require(_0x7466('0xe'));var as=require(_0x7466('0xf'));var hardwareService=require(_0x7466('0x10'));var logger=require(_0x7466('0x11'))(_0x7466('0x12'));var utils=require(_0x7466('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x7466('0x14'));var db=require(_0x7466('0x15'))['db'];function respondWithStatusCode(_0x434485,_0x4fef86){_0x4fef86=_0x4fef86||0xcc;return function(_0x7dcbf8){if(_0x7dcbf8){return _0x434485[_0x7466('0x16')](_0x4fef86);}return _0x434485['status'](_0x4fef86)[_0x7466('0x17')]();};}function respondWithResult(_0x3ad738,_0x4e437a){_0x4e437a=_0x4e437a||0xc8;return function(_0x163237){if(_0x163237){return _0x3ad738['status'](_0x4e437a)['json'](_0x163237);}};}function respondWithFilteredResult(_0x59593a,_0x4e5c7b){return function(_0x1d674a){if(_0x1d674a){var _0x4a1ff4=typeof _0x4e5c7b[_0x7466('0x18')]===_0x7466('0x19')&&typeof _0x4e5c7b['limit']===_0x7466('0x19');var _0x18878a=_0x1d674a[_0x7466('0x1a')];var _0x1110db=_0x4a1ff4?0x0:_0x4e5c7b[_0x7466('0x18')];var _0x16b646=_0x4a1ff4?_0x1d674a[_0x7466('0x1a')]:_0x4e5c7b[_0x7466('0x18')]+_0x4e5c7b[_0x7466('0x1b')];var _0x514bae;if(_0x16b646>=_0x18878a){_0x16b646=_0x18878a;_0x514bae=0xc8;}else{_0x514bae=0xce;}_0x59593a[_0x7466('0x1c')](_0x514bae);return _0x59593a[_0x7466('0x1d')](_0x7466('0x1e'),_0x1110db+'-'+_0x16b646+'/'+_0x18878a)[_0x7466('0x1f')](_0x1d674a);}return null;};}function patchUpdates(_0x571ac2){return function(_0x1fe6a3){try{jsonpatch['apply'](_0x1fe6a3,_0x571ac2,!![]);}catch(_0x343ec8){return BPromise[_0x7466('0x20')](_0x343ec8);}return _0x1fe6a3[_0x7466('0x21')]();};}function saveUpdates(_0x56be55,_0x4ad0a0){return function(_0x522593){if(_0x522593){return _0x522593[_0x7466('0x22')](_0x56be55)[_0x7466('0x23')](function(_0x1a2762){return _0x1a2762;});}return null;};}function removeEntity(_0x1ca31f,_0x532960){return function(_0x29be30){if(_0x29be30){return _0x29be30[_0x7466('0x24')]()[_0x7466('0x23')](function(){_0x1ca31f[_0x7466('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5b1b93,_0x5a31ea){return function(_0x428719){if(!_0x428719){_0x5b1b93[_0x7466('0x16')](0x194);}return _0x428719;};}function handleError(_0x597087,_0x58c71e){_0x58c71e=_0x58c71e||0x1f4;return function(_0x3cbdaf){logger['error'](_0x3cbdaf['stack']);if(_0x3cbdaf[_0x7466('0x25')]){delete _0x3cbdaf[_0x7466('0x25')];}_0x597087[_0x7466('0x1c')](_0x58c71e)[_0x7466('0x26')](_0x3cbdaf);};}exports[_0x7466('0x27')]=function(_0x3c19b5,_0x1ff047){var _0x3006a6={},_0x377352={},_0x1e509c={'count':0x0,'rows':[]};var _0x58966a=_[_0x7466('0x28')](db[_0x7466('0x29')][_0x7466('0x2a')],function(_0x15fc25){return{'name':_0x15fc25[_0x7466('0x2b')],'type':_0x15fc25['type'][_0x7466('0x2c')]};});_0x377352[_0x7466('0x2d')]=_[_0x7466('0x28')](_0x58966a,_0x7466('0x25'));_0x377352[_0x7466('0x2e')]=_[_0x7466('0x2f')](_0x3c19b5[_0x7466('0x2e')]);_0x377352[_0x7466('0x30')]=_[_0x7466('0x31')](_0x377352[_0x7466('0x2d')],_0x377352['query']);_0x3006a6['attributes']=_[_0x7466('0x31')](_0x377352[_0x7466('0x2d')],qs['fields'](_0x3c19b5[_0x7466('0x2e')][_0x7466('0x32')]));_0x3006a6[_0x7466('0x33')]=_0x3006a6[_0x7466('0x33')][_0x7466('0x34')]?_0x3006a6[_0x7466('0x33')]:_0x377352[_0x7466('0x2d')];if(!_0x3c19b5[_0x7466('0x2e')][_0x7466('0x35')](_0x7466('0x36'))){_0x3006a6[_0x7466('0x1b')]=qs[_0x7466('0x1b')](_0x3c19b5['query'][_0x7466('0x1b')]);_0x3006a6['offset']=qs[_0x7466('0x18')](_0x3c19b5[_0x7466('0x2e')]['offset']);}_0x3006a6['order']=qs[_0x7466('0x37')](_0x3c19b5[_0x7466('0x2e')][_0x7466('0x37')]);_0x3006a6[_0x7466('0x38')]=qs[_0x7466('0x30')](_[_0x7466('0x39')](_0x3c19b5[_0x7466('0x2e')],_0x377352[_0x7466('0x30')]),_0x58966a);if(_0x3c19b5[_0x7466('0x2e')]['filter']){_0x3006a6[_0x7466('0x38')]=_[_0x7466('0x3a')](_0x3006a6['where'],{'$or':_['map'](_0x58966a,function(_0x36ee11){if(_0x36ee11[_0x7466('0x3b')]!==_0x7466('0x3c')){var _0x4b37a9={};_0x4b37a9[_0x36ee11[_0x7466('0x25')]]={'$like':'%'+_0x3c19b5[_0x7466('0x2e')][_0x7466('0x3d')]+'%'};return _0x4b37a9;}})});}_0x3006a6=_[_0x7466('0x3a')]({},_0x3006a6,_0x3c19b5[_0x7466('0x3e')]);var _0x30b0e6={'where':_0x3006a6[_0x7466('0x38')]};return db[_0x7466('0x29')]['count'](_0x30b0e6)[_0x7466('0x23')](function(_0x438917){_0x1e509c['count']=_0x438917;if(_0x3c19b5[_0x7466('0x2e')][_0x7466('0x3f')]){_0x3006a6[_0x7466('0x40')]=[{'all':!![]}];}return db[_0x7466('0x29')][_0x7466('0x41')](_0x3006a6);})['then'](function(_0xf5de24){_0x1e509c[_0x7466('0x42')]=_0xf5de24;return _0x1e509c;})['then'](respondWithFilteredResult(_0x1ff047,_0x3006a6))[_0x7466('0x43')](handleError(_0x1ff047,null));};exports[_0x7466('0x44')]=function(_0x22a8f6,_0xe09314){var _0x379dff={'raw':!![],'where':{'id':_0x22a8f6[_0x7466('0x45')]['id']}},_0xcdb9dc={};_0xcdb9dc[_0x7466('0x2d')]=_[_0x7466('0x2f')](db[_0x7466('0x29')][_0x7466('0x2a')]);_0xcdb9dc[_0x7466('0x2e')]=_['keys'](_0x22a8f6[_0x7466('0x2e')]);_0xcdb9dc[_0x7466('0x30')]=_[_0x7466('0x31')](_0xcdb9dc['model'],_0xcdb9dc[_0x7466('0x2e')]);_0x379dff[_0x7466('0x33')]=_[_0x7466('0x31')](_0xcdb9dc[_0x7466('0x2d')],qs['fields'](_0x22a8f6['query'][_0x7466('0x32')]));_0x379dff[_0x7466('0x33')]=_0x379dff['attributes'][_0x7466('0x34')]?_0x379dff['attributes']:_0xcdb9dc['model'];if(_0x22a8f6[_0x7466('0x2e')][_0x7466('0x3f')]){_0x379dff[_0x7466('0x40')]=[{'all':!![]}];}_0x379dff=_[_0x7466('0x3a')]({},_0x379dff,_0x22a8f6['options']);return db[_0x7466('0x29')][_0x7466('0x46')](_0x379dff)[_0x7466('0x23')](handleEntityNotFound(_0xe09314,null))[_0x7466('0x23')](respondWithResult(_0xe09314,null))['catch'](handleError(_0xe09314,null));};exports[_0x7466('0x47')]=function(_0x1b79ba,_0x2a443e){var _0x569c96={'where':{'id':_0x1b79ba[_0x7466('0x45')]['id']}},_0x4c1006={};_0x4c1006[_0x7466('0x2d')]=_[_0x7466('0x2f')](db[_0x7466('0x29')][_0x7466('0x2a')]);_0x569c96['attributes']=_[_0x7466('0x31')](_0x4c1006[_0x7466('0x2d')],qs[_0x7466('0x32')](_0x1b79ba['query'][_0x7466('0x32')]));_0x569c96[_0x7466('0x33')]=_0x569c96[_0x7466('0x33')][_0x7466('0x34')]?_0x569c96['attributes']:_0x4c1006[_0x7466('0x2d')];if(_0x1b79ba['query'][_0x7466('0x3f')]){_0x569c96[_0x7466('0x40')]=[{'all':!![]}];}_0x569c96=_['merge']({},_0x569c96,_0x1b79ba[_0x7466('0x3e')]);return db[_0x7466('0x29')][_0x7466('0x46')](_0x569c96)[_0x7466('0x23')](handleEntityNotFound(_0x2a443e,null))['then'](function(_0x386f5f){if(_0x386f5f){var _0x323ec6=_0x386f5f[_0x7466('0x48')]({'plain':!![]});_0x323ec6=qs[_0x7466('0x49')](_0x323ec6,['id','createdAt',_0x7466('0x4a')]);_0x1b79ba['body']=_['omit'](_0x1b79ba[_0x7466('0x4b')],['id',_0x7466('0x4c'),_0x7466('0x4a')]);return db['Attachment'][_0x7466('0x4d')](_['merge'](_0x323ec6,_0x1b79ba['body']),{'include':_0x1b79ba[_0x7466('0x2e')][_0x7466('0x3f')]?[{'all':!![]}]:undefined});}})[_0x7466('0x23')](respondWithResult(_0x2a443e,0xc9))[_0x7466('0x43')](handleError(_0x2a443e,null));};exports[_0x7466('0x22')]=function(_0x36db6a,_0x5387e4){if(_0x36db6a['body']['id']){delete _0x36db6a[_0x7466('0x4b')]['id'];}return db[_0x7466('0x29')][_0x7466('0x46')]({'where':{'id':_0x36db6a['params']['id']}})['then'](handleEntityNotFound(_0x5387e4,null))[_0x7466('0x23')](saveUpdates(_0x36db6a[_0x7466('0x4b')],null))[_0x7466('0x23')](respondWithResult(_0x5387e4,null))[_0x7466('0x43')](handleError(_0x5387e4,null));};exports[_0x7466('0x24')]=function(_0x552257,_0xd83f4a){return db[_0x7466('0x29')][_0x7466('0x46')]({'where':{'id':_0x552257[_0x7466('0x45')]['id']}})[_0x7466('0x23')](handleEntityNotFound(_0xd83f4a,null))[_0x7466('0x23')](removeEntity(_0xd83f4a,null))['catch'](handleError(_0xd83f4a,null));};exports['create']=function(_0x36cdbc,_0x9409c8,_0x1dbf7d){_0x36cdbc[_0x7466('0x4b')]['name']=_0x36cdbc['file'][_0x7466('0x4e')];_0x36cdbc[_0x7466('0x4b')][_0x7466('0x4f')]=_0x36cdbc[_0x7466('0x50')][_0x7466('0x51')];_0x36cdbc[_0x7466('0x4b')][_0x7466('0x3b')]=_0x36cdbc[_0x7466('0x50')][_0x7466('0x52')];return db['Attachment'][_0x7466('0x4d')](_0x36cdbc[_0x7466('0x4b')])[_0x7466('0x23')](respondWithResult(_0x9409c8,0xc9))[_0x7466('0x43')](handleError(_0x9409c8,null));};exports[_0x7466('0x53')]=function(_0x5a7a87,_0x16aa65,_0x172897){return db[_0x7466('0x29')][_0x7466('0x54')]({'where':{'id':_0x5a7a87['params']['id']},'raw':!![]})[_0x7466('0x23')](handleEntityNotFound(_0x16aa65,null))['then'](function(_0x161423){if(_0x161423){var _0x425dba=_0x161423[_0x7466('0x55')]!==null;var _0x595747=path[_0x7466('0x56')](config[_0x7466('0x57')],_0x7466('0x58'));if(_0x425dba){_0x595747=path[_0x7466('0x56')](_0x595747,_0x7466('0x59'));}var _0x27e7af=path[_0x7466('0x56')](_0x595747,_0x161423[_0x7466('0x4f')]);return _0x16aa65['download'](_0x27e7af);}})[_0x7466('0x43')](handleError(_0x16aa65,null));};