Built motion from commit 639a1a7f.|2.6.19
[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 _0x7618=['options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','clone','get','omit','createdAt','updatedAt','create','body','originalname','basename','file','filename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','fast-json-patch','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','save','update','then','destroy','error','stack','send','index','map','Attachment','fieldName','type','model','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge'];(function(_0x3dcc5a,_0x5d81d9){var _0x5ac286=function(_0x2f4e23){while(--_0x2f4e23){_0x3dcc5a['push'](_0x3dcc5a['shift']());}};_0x5ac286(++_0x5d81d9);}(_0x7618,0x76));var _0x8761=function(_0x557d80,_0x3a2a33){_0x557d80=_0x557d80-0x0;var _0x5314f6=_0x7618[_0x557d80];return _0x5314f6;};'use strict';var emlformat=require(_0x8761('0x0'));var rimraf=require(_0x8761('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8761('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8761('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x8761('0x4'));var sox=require(_0x8761('0x5'));var csv=require(_0x8761('0x6'));var ejs=require(_0x8761('0x7'));var fs=require('fs');var fs_extra=require(_0x8761('0x8'));var _=require(_0x8761('0x9'));var squel=require(_0x8761('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8761('0x6'));var querystring=require(_0x8761('0xb'));var Papa=require(_0x8761('0xc'));var Redis=require(_0x8761('0xd'));var authService=require(_0x8761('0xe'));var qs=require(_0x8761('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8761('0x10'));var logger=require(_0x8761('0x11'))(_0x8761('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x8761('0x13'));var db=require(_0x8761('0x14'))['db'];function respondWithStatusCode(_0x28e091,_0x37bccc){_0x37bccc=_0x37bccc||0xcc;return function(_0x38bbd9){if(_0x38bbd9){return _0x28e091[_0x8761('0x15')](_0x37bccc);}return _0x28e091['status'](_0x37bccc)[_0x8761('0x16')]();};}function respondWithResult(_0x225dba,_0x22b82a){_0x22b82a=_0x22b82a||0xc8;return function(_0x2f2fe6){if(_0x2f2fe6){return _0x225dba[_0x8761('0x17')](_0x22b82a)[_0x8761('0x18')](_0x2f2fe6);}};}function respondWithFilteredResult(_0x2c1d5c,_0x55de8b){return function(_0x56d92b){if(_0x56d92b){var _0x5b9155=typeof _0x55de8b['offset']===_0x8761('0x19')&&typeof _0x55de8b[_0x8761('0x1a')]==='undefined';var _0x1372d4=_0x56d92b[_0x8761('0x1b')];var _0x3a9a39=_0x5b9155?0x0:_0x55de8b['offset'];var _0x356eb2=_0x5b9155?_0x56d92b['count']:_0x55de8b[_0x8761('0x1c')]+_0x55de8b['limit'];var _0x5680f7;if(_0x356eb2>=_0x1372d4){_0x356eb2=_0x1372d4;_0x5680f7=0xc8;}else{_0x5680f7=0xce;}_0x2c1d5c[_0x8761('0x17')](_0x5680f7);return _0x2c1d5c[_0x8761('0x1d')](_0x8761('0x1e'),_0x3a9a39+'-'+_0x356eb2+'/'+_0x1372d4)[_0x8761('0x18')](_0x56d92b);}return null;};}function patchUpdates(_0x2bc9a3){return function(_0x736703){try{jsonpatch['apply'](_0x736703,_0x2bc9a3,!![]);}catch(_0x21a316){return BPromise['reject'](_0x21a316);}return _0x736703[_0x8761('0x1f')]();};}function saveUpdates(_0x150e25,_0x290099){return function(_0xd1ee7f){if(_0xd1ee7f){return _0xd1ee7f[_0x8761('0x20')](_0x150e25)[_0x8761('0x21')](function(_0x37d990){return _0x37d990;});}return null;};}function removeEntity(_0x408329,_0x1c9952){return function(_0x30dc44){if(_0x30dc44){return _0x30dc44[_0x8761('0x22')]()[_0x8761('0x21')](function(){_0x408329[_0x8761('0x17')](0xcc)[_0x8761('0x16')]();});}};}function handleEntityNotFound(_0xc94e5b,_0x1422f4){return function(_0x4f08c2){if(!_0x4f08c2){_0xc94e5b[_0x8761('0x15')](0x194);}return _0x4f08c2;};}function handleError(_0x4cca00,_0x31b358){_0x31b358=_0x31b358||0x1f4;return function(_0x49090b){logger[_0x8761('0x23')](_0x49090b[_0x8761('0x24')]);if(_0x49090b['name']){delete _0x49090b['name'];}_0x4cca00[_0x8761('0x17')](_0x31b358)[_0x8761('0x25')](_0x49090b);};}exports[_0x8761('0x26')]=function(_0x38b6ac,_0x20e3c7){var _0x2864a7={},_0x6d9f2f={},_0x443f82={'count':0x0,'rows':[]};var _0x374a62=_[_0x8761('0x27')](db[_0x8761('0x28')]['rawAttributes'],function(_0x4cc0f7){return{'name':_0x4cc0f7[_0x8761('0x29')],'type':_0x4cc0f7[_0x8761('0x2a')]['key']};});_0x6d9f2f[_0x8761('0x2b')]=_[_0x8761('0x27')](_0x374a62,_0x8761('0x2c'));_0x6d9f2f[_0x8761('0x2d')]=_[_0x8761('0x2e')](_0x38b6ac[_0x8761('0x2d')]);_0x6d9f2f[_0x8761('0x2f')]=_[_0x8761('0x30')](_0x6d9f2f[_0x8761('0x2b')],_0x6d9f2f[_0x8761('0x2d')]);_0x2864a7[_0x8761('0x31')]=_[_0x8761('0x30')](_0x6d9f2f[_0x8761('0x2b')],qs[_0x8761('0x32')](_0x38b6ac['query'][_0x8761('0x32')]));_0x2864a7[_0x8761('0x31')]=_0x2864a7[_0x8761('0x31')][_0x8761('0x33')]?_0x2864a7['attributes']:_0x6d9f2f[_0x8761('0x2b')];if(!_0x38b6ac[_0x8761('0x2d')][_0x8761('0x34')](_0x8761('0x35'))){_0x2864a7[_0x8761('0x1a')]=qs[_0x8761('0x1a')](_0x38b6ac[_0x8761('0x2d')]['limit']);_0x2864a7['offset']=qs[_0x8761('0x1c')](_0x38b6ac[_0x8761('0x2d')][_0x8761('0x1c')]);}_0x2864a7[_0x8761('0x36')]=qs[_0x8761('0x37')](_0x38b6ac[_0x8761('0x2d')][_0x8761('0x37')]);_0x2864a7[_0x8761('0x38')]=qs['filters'](_[_0x8761('0x39')](_0x38b6ac[_0x8761('0x2d')],_0x6d9f2f[_0x8761('0x2f')]),_0x374a62);if(_0x38b6ac[_0x8761('0x2d')][_0x8761('0x3a')]){_0x2864a7[_0x8761('0x38')]=_[_0x8761('0x3b')](_0x2864a7['where'],{'$or':_[_0x8761('0x27')](_0x374a62,function(_0x15ed86){if(_0x15ed86[_0x8761('0x2a')]!=='VIRTUAL'){var _0x281385={};_0x281385[_0x15ed86[_0x8761('0x2c')]]={'$like':'%'+_0x38b6ac[_0x8761('0x2d')][_0x8761('0x3a')]+'%'};return _0x281385;}})});}_0x2864a7=_[_0x8761('0x3b')]({},_0x2864a7,_0x38b6ac[_0x8761('0x3c')]);var _0x3f06cd={'where':_0x2864a7[_0x8761('0x38')]};return db[_0x8761('0x28')][_0x8761('0x1b')](_0x3f06cd)[_0x8761('0x21')](function(_0x2d25c8){_0x443f82[_0x8761('0x1b')]=_0x2d25c8;if(_0x38b6ac[_0x8761('0x2d')][_0x8761('0x3d')]){_0x2864a7[_0x8761('0x3e')]=[{'all':!![]}];}return db['Attachment'][_0x8761('0x3f')](_0x2864a7);})['then'](function(_0x3571fe){_0x443f82[_0x8761('0x40')]=_0x3571fe;return _0x443f82;})[_0x8761('0x21')](respondWithFilteredResult(_0x20e3c7,_0x2864a7))[_0x8761('0x41')](handleError(_0x20e3c7,null));};exports[_0x8761('0x42')]=function(_0x128698,_0x1e44c6){var _0x5aa99f={'raw':!![],'where':{'id':_0x128698[_0x8761('0x43')]['id']}},_0x56254b={};_0x56254b['model']=_['keys'](db[_0x8761('0x28')][_0x8761('0x44')]);_0x56254b[_0x8761('0x2d')]=_[_0x8761('0x2e')](_0x128698['query']);_0x56254b['filters']=_[_0x8761('0x30')](_0x56254b['model'],_0x56254b[_0x8761('0x2d')]);_0x5aa99f[_0x8761('0x31')]=_[_0x8761('0x30')](_0x56254b[_0x8761('0x2b')],qs[_0x8761('0x32')](_0x128698[_0x8761('0x2d')][_0x8761('0x32')]));_0x5aa99f[_0x8761('0x31')]=_0x5aa99f[_0x8761('0x31')][_0x8761('0x33')]?_0x5aa99f['attributes']:_0x56254b['model'];if(_0x128698[_0x8761('0x2d')][_0x8761('0x3d')]){_0x5aa99f[_0x8761('0x3e')]=[{'all':!![]}];}_0x5aa99f=_['merge']({},_0x5aa99f,_0x128698['options']);return db['Attachment'][_0x8761('0x45')](_0x5aa99f)[_0x8761('0x21')](handleEntityNotFound(_0x1e44c6,null))[_0x8761('0x21')](respondWithResult(_0x1e44c6,null))[_0x8761('0x41')](handleError(_0x1e44c6,null));};exports[_0x8761('0x46')]=function(_0x127b4f,_0x43320f){var _0xf5573a={'where':{'id':_0x127b4f[_0x8761('0x43')]['id']}},_0x2125c1={};_0x2125c1[_0x8761('0x2b')]=_[_0x8761('0x2e')](db['Attachment'][_0x8761('0x44')]);_0xf5573a[_0x8761('0x31')]=_[_0x8761('0x30')](_0x2125c1[_0x8761('0x2b')],qs[_0x8761('0x32')](_0x127b4f[_0x8761('0x2d')][_0x8761('0x32')]));_0xf5573a[_0x8761('0x31')]=_0xf5573a[_0x8761('0x31')][_0x8761('0x33')]?_0xf5573a[_0x8761('0x31')]:_0x2125c1[_0x8761('0x2b')];if(_0x127b4f[_0x8761('0x2d')][_0x8761('0x3d')]){_0xf5573a[_0x8761('0x3e')]=[{'all':!![]}];}_0xf5573a=_[_0x8761('0x3b')]({},_0xf5573a,_0x127b4f['options']);return db[_0x8761('0x28')][_0x8761('0x45')](_0xf5573a)[_0x8761('0x21')](handleEntityNotFound(_0x43320f,null))[_0x8761('0x21')](function(_0x5ba31f){if(_0x5ba31f){var _0x253a0e=_0x5ba31f[_0x8761('0x47')]({'plain':!![]});_0x253a0e=qs[_0x8761('0x48')](_0x253a0e,['id','createdAt','updatedAt']);_0x127b4f['body']=_[_0x8761('0x48')](_0x127b4f['body'],['id',_0x8761('0x49'),_0x8761('0x4a')]);return db[_0x8761('0x28')][_0x8761('0x4b')](_['merge'](_0x253a0e,_0x127b4f['body']),{'include':_0x127b4f[_0x8761('0x2d')][_0x8761('0x3d')]?[{'all':!![]}]:undefined});}})[_0x8761('0x21')](respondWithResult(_0x43320f,0xc9))[_0x8761('0x41')](handleError(_0x43320f,null));};exports['update']=function(_0x101c11,_0x3fa637){if(_0x101c11[_0x8761('0x4c')]['id']){delete _0x101c11[_0x8761('0x4c')]['id'];}return db[_0x8761('0x28')][_0x8761('0x45')]({'where':{'id':_0x101c11[_0x8761('0x43')]['id']}})[_0x8761('0x21')](handleEntityNotFound(_0x3fa637,null))[_0x8761('0x21')](saveUpdates(_0x101c11[_0x8761('0x4c')],null))['then'](respondWithResult(_0x3fa637,null))[_0x8761('0x41')](handleError(_0x3fa637,null));};exports[_0x8761('0x22')]=function(_0x11e85e,_0x473773){return db[_0x8761('0x28')]['find']({'where':{'id':_0x11e85e[_0x8761('0x43')]['id']}})[_0x8761('0x21')](handleEntityNotFound(_0x473773,null))[_0x8761('0x21')](removeEntity(_0x473773,null))[_0x8761('0x41')](handleError(_0x473773,null));};exports[_0x8761('0x4b')]=function(_0xc2794d,_0x352365,_0x47b107){_0xc2794d[_0x8761('0x4c')]['name']=_0xc2794d['file'][_0x8761('0x4d')];_0xc2794d[_0x8761('0x4c')][_0x8761('0x4e')]=_0xc2794d[_0x8761('0x4f')][_0x8761('0x50')];_0xc2794d[_0x8761('0x4c')][_0x8761('0x2a')]=_0xc2794d[_0x8761('0x4f')][_0x8761('0x51')];return db['Attachment'][_0x8761('0x4b')](_0xc2794d[_0x8761('0x4c')])[_0x8761('0x21')](respondWithResult(_0x352365,0xc9))['catch'](handleError(_0x352365,null));};exports[_0x8761('0x52')]=function(_0x1c90ed,_0x4a2b83,_0x2dad6d){return db[_0x8761('0x28')][_0x8761('0x53')]({'where':{'id':_0x1c90ed[_0x8761('0x43')]['id']},'raw':!![]})[_0x8761('0x21')](handleEntityNotFound(_0x4a2b83,null))[_0x8761('0x21')](function(_0x2a1a8e){if(_0x2a1a8e){var _0x2f2946=_0x2a1a8e[_0x8761('0x54')]!==null;var _0x3118ff=path[_0x8761('0x55')](config[_0x8761('0x56')],_0x8761('0x57'));if(_0x2f2946){_0x3118ff=path[_0x8761('0x55')](_0x3118ff,_0x8761('0x58'));}var _0x95485b=path[_0x8761('0x55')](_0x3118ff,_0x2a1a8e[_0x8761('0x4e')]);return _0x4a2b83[_0x8761('0x52')](_0x95485b);}})['catch'](handleError(_0x4a2b83,null));};