Built motion from commit (unavailable).|2.5.27
[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 _0x9eae=['root','server/files/attachments/','offline-chat/','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','../../config/utils','../../config/environment','status','end','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','index','map','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','Attachment','includeAll','include','findAll','rows','catch','show','params','find','clone','omit','createdAt','body','create','file','basename','filename','mimetype','download','findOne','ChatOfflineMessageId','join'];(function(_0xc88f3b,_0x16907a){var _0x36e99f=function(_0x55609f){while(--_0x55609f){_0xc88f3b['push'](_0xc88f3b['shift']());}};_0x36e99f(++_0x16907a);}(_0x9eae,0x15f));var _0xe9ea=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x9eae[_0xfae23b];return _0x200640;};'use strict';var emlformat=require(_0xe9ea('0x0'));var rimraf=require(_0xe9ea('0x1'));var zipdir=require(_0xe9ea('0x2'));var jsonpatch=require(_0xe9ea('0x3'));var rp=require('request-promise');var moment=require(_0xe9ea('0x4'));var BPromise=require(_0xe9ea('0x5'));var Mustache=require(_0xe9ea('0x6'));var util=require(_0xe9ea('0x7'));var path=require(_0xe9ea('0x8'));var sox=require(_0xe9ea('0x9'));var csv=require(_0xe9ea('0xa'));var ejs=require(_0xe9ea('0xb'));var fs=require('fs');var fs_extra=require(_0xe9ea('0xc'));var _=require(_0xe9ea('0xd'));var squel=require(_0xe9ea('0xe'));var crypto=require(_0xe9ea('0xf'));var jsforce=require(_0xe9ea('0x10'));var deskjs=require(_0xe9ea('0x11'));var toCsv=require(_0xe9ea('0xa'));var querystring=require(_0xe9ea('0x12'));var Papa=require(_0xe9ea('0x13'));var Redis=require(_0xe9ea('0x14'));var authService=require(_0xe9ea('0x15'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe9ea('0x16'))('api');var utils=require(_0xe9ea('0x17'));var config=require(_0xe9ea('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x16ddbf,_0x1804ee){_0x1804ee=_0x1804ee||0xcc;return function(_0x2e7795){if(_0x2e7795){return _0x16ddbf['sendStatus'](_0x1804ee);}return _0x16ddbf[_0xe9ea('0x19')](_0x1804ee)[_0xe9ea('0x1a')]();};}function respondWithResult(_0x460a93,_0x4f3841){_0x4f3841=_0x4f3841||0xc8;return function(_0x55ef41){if(_0x55ef41){return _0x460a93[_0xe9ea('0x19')](_0x4f3841)['json'](_0x55ef41);}};}function respondWithFilteredResult(_0xcd6513,_0xccbe92){return function(_0x576724){if(_0x576724){var _0x2e9aa6=_0x576724[_0xe9ea('0x1b')],_0x565435=_0xccbe92[_0xe9ea('0x1c')],_0xb8b36c=_0xccbe92[_0xe9ea('0x1c')]+_0xccbe92[_0xe9ea('0x1d')],_0xf9d3b0;if(_0xb8b36c>=_0x2e9aa6){_0xb8b36c=_0x2e9aa6;_0xf9d3b0=0xc8;}else{_0xf9d3b0=0xce;}_0xcd6513[_0xe9ea('0x19')](_0xf9d3b0);return _0xcd6513[_0xe9ea('0x1e')](_0xe9ea('0x1f'),_0x565435+'-'+_0xb8b36c+'/'+_0x2e9aa6)['json'](_0x576724);}return null;};}function patchUpdates(_0x435999){return function(_0x134784){try{jsonpatch[_0xe9ea('0x20')](_0x134784,_0x435999,!![]);}catch(_0x5c057e){return BPromise[_0xe9ea('0x21')](_0x5c057e);}return _0x134784['save']();};}function saveUpdates(_0x5104d5,_0x312dfa){return function(_0x7b1e42){if(_0x7b1e42){return _0x7b1e42[_0xe9ea('0x22')](_0x5104d5)[_0xe9ea('0x23')](function(_0x1654c0){return _0x1654c0;});}return null;};}function removeEntity(_0x482c0b,_0x3154dc){return function(_0x478982){if(_0x478982){return _0x478982[_0xe9ea('0x24')]()[_0xe9ea('0x23')](function(){_0x482c0b['status'](0xcc)[_0xe9ea('0x1a')]();});}};}function handleEntityNotFound(_0x1d45a2,_0x316e57){return function(_0x288190){if(!_0x288190){_0x1d45a2[_0xe9ea('0x25')](0x194);}return _0x288190;};}function handleError(_0x3cd1c4,_0x2d1dd9){_0x2d1dd9=_0x2d1dd9||0x1f4;return function(_0x2292f7){logger[_0xe9ea('0x26')](_0x2292f7[_0xe9ea('0x27')]);if(_0x2292f7[_0xe9ea('0x28')]){delete _0x2292f7[_0xe9ea('0x28')];}_0x3cd1c4[_0xe9ea('0x19')](_0x2d1dd9)['send'](_0x2292f7);};}exports[_0xe9ea('0x29')]=function(_0x48992d,_0x3e3de4){var _0x12f372={},_0x5b7b7c={},_0x25333b={'count':0x0,'rows':[]};var _0x1c819b=_[_0xe9ea('0x2a')](db['Attachment'][_0xe9ea('0x2b')],function(_0x1096b6){return{'name':_0x1096b6[_0xe9ea('0x2c')],'type':_0x1096b6['type']['key']};});_0x5b7b7c[_0xe9ea('0x2d')]=_['map'](_0x1c819b,_0xe9ea('0x28'));_0x5b7b7c[_0xe9ea('0x2e')]=_[_0xe9ea('0x2f')](_0x48992d[_0xe9ea('0x2e')]);_0x5b7b7c[_0xe9ea('0x30')]=_[_0xe9ea('0x31')](_0x5b7b7c['model'],_0x5b7b7c[_0xe9ea('0x2e')]);_0x12f372[_0xe9ea('0x32')]=_[_0xe9ea('0x31')](_0x5b7b7c[_0xe9ea('0x2d')],qs[_0xe9ea('0x33')](_0x48992d[_0xe9ea('0x2e')][_0xe9ea('0x33')]));_0x12f372[_0xe9ea('0x32')]=_0x12f372[_0xe9ea('0x32')][_0xe9ea('0x34')]?_0x12f372[_0xe9ea('0x32')]:_0x5b7b7c[_0xe9ea('0x2d')];if(!_0x48992d[_0xe9ea('0x2e')][_0xe9ea('0x35')](_0xe9ea('0x36'))){_0x12f372[_0xe9ea('0x1d')]=qs[_0xe9ea('0x1d')](_0x48992d[_0xe9ea('0x2e')]['limit']);_0x12f372[_0xe9ea('0x1c')]=qs[_0xe9ea('0x1c')](_0x48992d[_0xe9ea('0x2e')][_0xe9ea('0x1c')]);}_0x12f372['order']=qs[_0xe9ea('0x37')](_0x48992d['query'][_0xe9ea('0x37')]);_0x12f372[_0xe9ea('0x38')]=qs[_0xe9ea('0x30')](_[_0xe9ea('0x39')](_0x48992d['query'],_0x5b7b7c[_0xe9ea('0x30')]),_0x1c819b);if(_0x48992d[_0xe9ea('0x2e')]['filter']){_0x12f372[_0xe9ea('0x38')]=_[_0xe9ea('0x3a')](_0x12f372[_0xe9ea('0x38')],{'$or':_[_0xe9ea('0x2a')](_0x1c819b,function(_0x22a0ad){if(_0x22a0ad['type']!==_0xe9ea('0x3b')){var _0x5ef5df={};_0x5ef5df[_0x22a0ad[_0xe9ea('0x28')]]={'$like':'%'+_0x48992d[_0xe9ea('0x2e')][_0xe9ea('0x3c')]+'%'};return _0x5ef5df;}})});}_0x12f372=_[_0xe9ea('0x3a')]({},_0x12f372,_0x48992d[_0xe9ea('0x3d')]);var _0x581acc={'where':_0x12f372[_0xe9ea('0x38')]};return db[_0xe9ea('0x3e')][_0xe9ea('0x1b')](_0x581acc)[_0xe9ea('0x23')](function(_0x20a781){_0x25333b[_0xe9ea('0x1b')]=_0x20a781;if(_0x48992d[_0xe9ea('0x2e')][_0xe9ea('0x3f')]){_0x12f372[_0xe9ea('0x40')]=[{'all':!![]}];}return db[_0xe9ea('0x3e')][_0xe9ea('0x41')](_0x12f372);})['then'](function(_0xddd0d6){_0x25333b[_0xe9ea('0x42')]=_0xddd0d6;return _0x25333b;})['then'](respondWithFilteredResult(_0x3e3de4,_0x12f372))[_0xe9ea('0x43')](handleError(_0x3e3de4,null));};exports[_0xe9ea('0x44')]=function(_0x4f14d1,_0x58e222){var _0x277374={'raw':!![],'where':{'id':_0x4f14d1[_0xe9ea('0x45')]['id']}},_0x2d72f9={};_0x2d72f9['model']=_['keys'](db[_0xe9ea('0x3e')]['rawAttributes']);_0x2d72f9[_0xe9ea('0x2e')]=_[_0xe9ea('0x2f')](_0x4f14d1[_0xe9ea('0x2e')]);_0x2d72f9['filters']=_[_0xe9ea('0x31')](_0x2d72f9['model'],_0x2d72f9[_0xe9ea('0x2e')]);_0x277374['attributes']=_['intersection'](_0x2d72f9[_0xe9ea('0x2d')],qs[_0xe9ea('0x33')](_0x4f14d1[_0xe9ea('0x2e')]['fields']));_0x277374[_0xe9ea('0x32')]=_0x277374[_0xe9ea('0x32')][_0xe9ea('0x34')]?_0x277374[_0xe9ea('0x32')]:_0x2d72f9[_0xe9ea('0x2d')];if(_0x4f14d1['query'][_0xe9ea('0x3f')]){_0x277374[_0xe9ea('0x40')]=[{'all':!![]}];}_0x277374=_[_0xe9ea('0x3a')]({},_0x277374,_0x4f14d1[_0xe9ea('0x3d')]);return db[_0xe9ea('0x3e')][_0xe9ea('0x46')](_0x277374)[_0xe9ea('0x23')](handleEntityNotFound(_0x58e222,null))[_0xe9ea('0x23')](respondWithResult(_0x58e222,null))['catch'](handleError(_0x58e222,null));};exports[_0xe9ea('0x47')]=function(_0x2dcbd9,_0x49e077){var _0x1c76c2={'where':{'id':_0x2dcbd9[_0xe9ea('0x45')]['id']}},_0xbf94d0={};_0xbf94d0[_0xe9ea('0x2d')]=_['keys'](db[_0xe9ea('0x3e')][_0xe9ea('0x2b')]);_0x1c76c2[_0xe9ea('0x32')]=_[_0xe9ea('0x31')](_0xbf94d0[_0xe9ea('0x2d')],qs[_0xe9ea('0x33')](_0x2dcbd9[_0xe9ea('0x2e')][_0xe9ea('0x33')]));_0x1c76c2[_0xe9ea('0x32')]=_0x1c76c2['attributes'][_0xe9ea('0x34')]?_0x1c76c2[_0xe9ea('0x32')]:_0xbf94d0[_0xe9ea('0x2d')];if(_0x2dcbd9['query'][_0xe9ea('0x3f')]){_0x1c76c2[_0xe9ea('0x40')]=[{'all':!![]}];}_0x1c76c2=_['merge']({},_0x1c76c2,_0x2dcbd9[_0xe9ea('0x3d')]);return db['Attachment']['find'](_0x1c76c2)[_0xe9ea('0x23')](handleEntityNotFound(_0x49e077,null))[_0xe9ea('0x23')](function(_0x2ef540){if(_0x2ef540){var _0x5176ca=_0x2ef540['get']({'plain':!![]});_0x5176ca=qs[_0xe9ea('0x48')](_0x5176ca,['id',_0xe9ea('0x49'),'updatedAt']);_0x2dcbd9[_0xe9ea('0x4a')]=_[_0xe9ea('0x48')](_0x2dcbd9[_0xe9ea('0x4a')],['id',_0xe9ea('0x49'),'updatedAt']);return db['Attachment'][_0xe9ea('0x4b')](_[_0xe9ea('0x3a')](_0x5176ca,_0x2dcbd9['body']),{'include':_0x2dcbd9[_0xe9ea('0x2e')]['includeAll']?[{'all':!![]}]:undefined});}})[_0xe9ea('0x23')](respondWithResult(_0x49e077,0xc9))[_0xe9ea('0x43')](handleError(_0x49e077,null));};exports[_0xe9ea('0x22')]=function(_0x1ceaf5,_0x444fae){if(_0x1ceaf5[_0xe9ea('0x4a')]['id']){delete _0x1ceaf5[_0xe9ea('0x4a')]['id'];}return db['Attachment'][_0xe9ea('0x46')]({'where':{'id':_0x1ceaf5[_0xe9ea('0x45')]['id']}})[_0xe9ea('0x23')](handleEntityNotFound(_0x444fae,null))[_0xe9ea('0x23')](saveUpdates(_0x1ceaf5[_0xe9ea('0x4a')],null))['then'](respondWithResult(_0x444fae,null))['catch'](handleError(_0x444fae,null));};exports['destroy']=function(_0x1e7788,_0x206850){return db[_0xe9ea('0x3e')]['find']({'where':{'id':_0x1e7788[_0xe9ea('0x45')]['id']}})[_0xe9ea('0x23')](handleEntityNotFound(_0x206850,null))[_0xe9ea('0x23')](removeEntity(_0x206850,null))[_0xe9ea('0x43')](handleError(_0x206850,null));};exports['create']=function(_0x34ea20,_0x12a62b,_0x4377ce){_0x34ea20['body'][_0xe9ea('0x28')]=_0x34ea20[_0xe9ea('0x4c')]['originalname'];_0x34ea20[_0xe9ea('0x4a')][_0xe9ea('0x4d')]=_0x34ea20[_0xe9ea('0x4c')][_0xe9ea('0x4e')];_0x34ea20['body']['type']=_0x34ea20[_0xe9ea('0x4c')][_0xe9ea('0x4f')];return db[_0xe9ea('0x3e')][_0xe9ea('0x4b')](_0x34ea20[_0xe9ea('0x4a')])['then'](respondWithResult(_0x12a62b,0xc9))[_0xe9ea('0x43')](handleError(_0x12a62b,null));};exports[_0xe9ea('0x50')]=function(_0x573b0f,_0x52e065,_0x59ea64){return db['Attachment'][_0xe9ea('0x51')]({'where':{'id':_0x573b0f[_0xe9ea('0x45')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x52e065,null))[_0xe9ea('0x23')](function(_0x1c46aa){if(_0x1c46aa){var _0xa9e8e9=_0x1c46aa[_0xe9ea('0x52')]!==null;var _0x6b6408=path[_0xe9ea('0x53')](config[_0xe9ea('0x54')],_0xe9ea('0x55'));if(_0xa9e8e9){_0x6b6408=path[_0xe9ea('0x53')](_0x6b6408,_0xe9ea('0x56'));}var _0x48fccd=path[_0xe9ea('0x53')](_0x6b6408,_0x1c46aa['basename']);return _0x52e065[_0xe9ea('0x50')](_0x48fccd);}})[_0xe9ea('0x43')](handleError(_0x52e065,null));};