Built motion from commit (unavailable).|2.4.21
[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 _0xc0b9=['request-promise','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/utils','../../config/environment','sendStatus','status','end','count','offset','limit','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','Attachment','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','include','findAll','rows','catch','params','includeAll','options','find','clone','get','createdAt','updatedAt','body','create','originalname','basename','file','filename','mimetype','findOne','download','root','server/files/attachments/','html-pdf','rimraf','fast-json-patch'];(function(_0x53548a,_0x4e3b5b){var _0x5f333e=function(_0x22d382){while(--_0x22d382){_0x53548a['push'](_0x53548a['shift']());}};_0x5f333e(++_0x4e3b5b);}(_0xc0b9,0x149));var _0x9c0b=function(_0x506307,_0x2ba9ce){_0x506307=_0x506307-0x0;var _0x4535c5=_0xc0b9[_0x506307];return _0x4535c5;};'use strict';var pdf=require(_0x9c0b('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x9c0b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9c0b('0x2'));var rp=require(_0x9c0b('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x9c0b('0x4'));var sox=require(_0x9c0b('0x5'));var csv=require(_0x9c0b('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x9c0b('0x7'));var squel=require(_0x9c0b('0x8'));var crypto=require(_0x9c0b('0x9'));var jsforce=require(_0x9c0b('0xa'));var deskjs=require(_0x9c0b('0xb'));var toCsv=require(_0x9c0b('0x6'));var querystring=require(_0x9c0b('0xc'));var Papa=require(_0x9c0b('0xd'));var Redis=require(_0x9c0b('0xe'));var authService=require(_0x9c0b('0xf'));var qs=require(_0x9c0b('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x9c0b('0x11'));var config=require(_0x9c0b('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1d1bae,_0x3b47b7){_0x3b47b7=_0x3b47b7||0xcc;return function(_0x20fdfa){if(_0x20fdfa){return _0x1d1bae[_0x9c0b('0x13')](_0x3b47b7);}return _0x1d1bae[_0x9c0b('0x14')](_0x3b47b7)[_0x9c0b('0x15')]();};}function respondWithResult(_0x26f8b5,_0x2cd8ec){_0x2cd8ec=_0x2cd8ec||0xc8;return function(_0x35a9d8){if(_0x35a9d8){return _0x26f8b5[_0x9c0b('0x14')](_0x2cd8ec)['json'](_0x35a9d8);}};}function respondWithFilteredResult(_0x110e7b,_0x557120){return function(_0x2b8e19){if(_0x2b8e19){var _0x54ce3f=_0x2b8e19[_0x9c0b('0x16')],_0x570400=_0x557120[_0x9c0b('0x17')],_0x45e9eb=_0x557120['offset']+_0x557120[_0x9c0b('0x18')],_0x66955f;if(_0x45e9eb>=_0x54ce3f){_0x45e9eb=_0x54ce3f;_0x66955f=0xc8;}else{_0x66955f=0xce;}_0x110e7b['status'](_0x66955f);return _0x110e7b['set']('Content-Range',_0x570400+'-'+_0x45e9eb+'/'+_0x54ce3f)[_0x9c0b('0x19')](_0x2b8e19);}return null;};}function patchUpdates(_0x1a9d42){return function(_0x325119){try{jsonpatch[_0x9c0b('0x1a')](_0x325119,_0x1a9d42,!![]);}catch(_0x4248ab){return BPromise[_0x9c0b('0x1b')](_0x4248ab);}return _0x325119[_0x9c0b('0x1c')]();};}function saveUpdates(_0x34771e,_0xbe6109){return function(_0x4c4bfe){if(_0x4c4bfe){return _0x4c4bfe[_0x9c0b('0x1d')](_0x34771e)[_0x9c0b('0x1e')](function(_0x527888){return _0x527888;});}return null;};}function removeEntity(_0x1414ac,_0x53139b){return function(_0x5089a0){if(_0x5089a0){return _0x5089a0[_0x9c0b('0x1f')]()[_0x9c0b('0x1e')](function(){_0x1414ac[_0x9c0b('0x14')](0xcc)[_0x9c0b('0x15')]();});}};}function handleEntityNotFound(_0x44df6c,_0x2f1d02){return function(_0x1e73ac){if(!_0x1e73ac){_0x44df6c[_0x9c0b('0x13')](0x194);}return _0x1e73ac;};}function handleError(_0x598290,_0x35f5fc){_0x35f5fc=_0x35f5fc||0x1f4;return function(_0x56d5a9){logger[_0x9c0b('0x20')](_0x56d5a9[_0x9c0b('0x21')]);if(_0x56d5a9[_0x9c0b('0x22')]){delete _0x56d5a9[_0x9c0b('0x22')];}_0x598290[_0x9c0b('0x14')](_0x35f5fc)[_0x9c0b('0x23')](_0x56d5a9);};}exports[_0x9c0b('0x24')]=function(_0x366b99,_0x4cf31f){var _0x515e57={},_0xac227f={},_0x2c0328={'count':0x0,'rows':[]};var _0x40dd41=_['map'](db[_0x9c0b('0x25')][_0x9c0b('0x26')],function(_0x4e8ab8){return{'name':_0x4e8ab8[_0x9c0b('0x27')],'type':_0x4e8ab8[_0x9c0b('0x28')][_0x9c0b('0x29')]};});_0xac227f[_0x9c0b('0x2a')]=_['map'](_0x40dd41,_0x9c0b('0x22'));_0xac227f[_0x9c0b('0x2b')]=_[_0x9c0b('0x2c')](_0x366b99['query']);_0xac227f[_0x9c0b('0x2d')]=_['intersection'](_0xac227f[_0x9c0b('0x2a')],_0xac227f[_0x9c0b('0x2b')]);_0x515e57['attributes']=_[_0x9c0b('0x2e')](_0xac227f[_0x9c0b('0x2a')],qs[_0x9c0b('0x2f')](_0x366b99['query']['fields']));_0x515e57[_0x9c0b('0x30')]=_0x515e57[_0x9c0b('0x30')][_0x9c0b('0x31')]?_0x515e57[_0x9c0b('0x30')]:_0xac227f[_0x9c0b('0x2a')];if(!_0x366b99['query'][_0x9c0b('0x32')](_0x9c0b('0x33'))){_0x515e57[_0x9c0b('0x18')]=qs['limit'](_0x366b99[_0x9c0b('0x2b')][_0x9c0b('0x18')]);_0x515e57[_0x9c0b('0x17')]=qs[_0x9c0b('0x17')](_0x366b99[_0x9c0b('0x2b')][_0x9c0b('0x17')]);}_0x515e57[_0x9c0b('0x34')]=qs[_0x9c0b('0x35')](_0x366b99[_0x9c0b('0x2b')][_0x9c0b('0x35')]);_0x515e57[_0x9c0b('0x36')]=qs['filters'](_[_0x9c0b('0x37')](_0x366b99['query'],_0xac227f[_0x9c0b('0x2d')]));if(_0x366b99[_0x9c0b('0x2b')][_0x9c0b('0x38')]){_0x515e57[_0x9c0b('0x36')]=_[_0x9c0b('0x39')](_0x515e57[_0x9c0b('0x36')],{'$or':_[_0x9c0b('0x3a')](_0x40dd41,function(_0x485dfc){if(_0x485dfc[_0x9c0b('0x28')]!==_0x9c0b('0x3b')){var _0x16ba9b={};_0x16ba9b[_0x485dfc[_0x9c0b('0x22')]]={'$like':'%'+_0x366b99[_0x9c0b('0x2b')][_0x9c0b('0x38')]+'%'};return _0x16ba9b;}})});}_0x515e57=_[_0x9c0b('0x39')]({},_0x515e57,_0x366b99['options']);var _0x5eb605={'where':_0x515e57[_0x9c0b('0x36')]};return db['Attachment'][_0x9c0b('0x16')](_0x5eb605)[_0x9c0b('0x1e')](function(_0xe033cb){_0x2c0328[_0x9c0b('0x16')]=_0xe033cb;if(_0x366b99['query']['includeAll']){_0x515e57[_0x9c0b('0x3c')]=[{'all':!![]}];}return db['Attachment'][_0x9c0b('0x3d')](_0x515e57);})[_0x9c0b('0x1e')](function(_0x29a5a5){_0x2c0328[_0x9c0b('0x3e')]=_0x29a5a5;return _0x2c0328;})[_0x9c0b('0x1e')](respondWithFilteredResult(_0x4cf31f,_0x515e57))[_0x9c0b('0x3f')](handleError(_0x4cf31f,null));};exports['show']=function(_0x4d87a3,_0x436237){var _0x4a3a15={'raw':!![],'where':{'id':_0x4d87a3[_0x9c0b('0x40')]['id']}},_0x3703cc={};_0x3703cc[_0x9c0b('0x2a')]=_[_0x9c0b('0x2c')](db[_0x9c0b('0x25')][_0x9c0b('0x26')]);_0x3703cc[_0x9c0b('0x2b')]=_[_0x9c0b('0x2c')](_0x4d87a3['query']);_0x3703cc['filters']=_['intersection'](_0x3703cc[_0x9c0b('0x2a')],_0x3703cc[_0x9c0b('0x2b')]);_0x4a3a15[_0x9c0b('0x30')]=_[_0x9c0b('0x2e')](_0x3703cc['model'],qs['fields'](_0x4d87a3[_0x9c0b('0x2b')][_0x9c0b('0x2f')]));_0x4a3a15['attributes']=_0x4a3a15['attributes']['length']?_0x4a3a15[_0x9c0b('0x30')]:_0x3703cc[_0x9c0b('0x2a')];if(_0x4d87a3['query'][_0x9c0b('0x41')]){_0x4a3a15[_0x9c0b('0x3c')]=[{'all':!![]}];}_0x4a3a15=_[_0x9c0b('0x39')]({},_0x4a3a15,_0x4d87a3[_0x9c0b('0x42')]);return db['Attachment'][_0x9c0b('0x43')](_0x4a3a15)[_0x9c0b('0x1e')](handleEntityNotFound(_0x436237,null))[_0x9c0b('0x1e')](respondWithResult(_0x436237,null))['catch'](handleError(_0x436237,null));};exports[_0x9c0b('0x44')]=function(_0xf4bbbd,_0x558223){var _0x2507a9={'where':{'id':_0xf4bbbd[_0x9c0b('0x40')]['id']}},_0x45f050={};_0x45f050[_0x9c0b('0x2a')]=_[_0x9c0b('0x2c')](db[_0x9c0b('0x25')]['rawAttributes']);_0x2507a9['attributes']=_[_0x9c0b('0x2e')](_0x45f050[_0x9c0b('0x2a')],qs[_0x9c0b('0x2f')](_0xf4bbbd['query'][_0x9c0b('0x2f')]));_0x2507a9['attributes']=_0x2507a9[_0x9c0b('0x30')][_0x9c0b('0x31')]?_0x2507a9[_0x9c0b('0x30')]:_0x45f050['model'];if(_0xf4bbbd['query'][_0x9c0b('0x41')]){_0x2507a9['include']=[{'all':!![]}];}_0x2507a9=_[_0x9c0b('0x39')]({},_0x2507a9,_0xf4bbbd[_0x9c0b('0x42')]);return db[_0x9c0b('0x25')][_0x9c0b('0x43')](_0x2507a9)[_0x9c0b('0x1e')](handleEntityNotFound(_0x558223,null))[_0x9c0b('0x1e')](function(_0x5849c3){if(_0x5849c3){var _0x15e31f=_0x5849c3[_0x9c0b('0x45')]({'plain':!![]});_0x15e31f=qs['omit'](_0x15e31f,['id',_0x9c0b('0x46'),_0x9c0b('0x47')]);_0xf4bbbd[_0x9c0b('0x48')]=_['omit'](_0xf4bbbd[_0x9c0b('0x48')],['id','createdAt',_0x9c0b('0x47')]);return db['Attachment'][_0x9c0b('0x49')](_[_0x9c0b('0x39')](_0x15e31f,_0xf4bbbd[_0x9c0b('0x48')]),{'include':_0xf4bbbd['query'][_0x9c0b('0x41')]?[{'all':!![]}]:undefined});}})[_0x9c0b('0x1e')](respondWithResult(_0x558223,0xc9))[_0x9c0b('0x3f')](handleError(_0x558223,null));};exports[_0x9c0b('0x1d')]=function(_0x5c4cb2,_0x473811){if(_0x5c4cb2[_0x9c0b('0x48')]['id']){delete _0x5c4cb2[_0x9c0b('0x48')]['id'];}return db[_0x9c0b('0x25')]['find']({'where':{'id':_0x5c4cb2[_0x9c0b('0x40')]['id']}})[_0x9c0b('0x1e')](handleEntityNotFound(_0x473811,null))[_0x9c0b('0x1e')](saveUpdates(_0x5c4cb2[_0x9c0b('0x48')],null))[_0x9c0b('0x1e')](respondWithResult(_0x473811,null))['catch'](handleError(_0x473811,null));};exports[_0x9c0b('0x1f')]=function(_0x42efd7,_0x3088d5){return db[_0x9c0b('0x25')][_0x9c0b('0x43')]({'where':{'id':_0x42efd7[_0x9c0b('0x40')]['id']}})['then'](handleEntityNotFound(_0x3088d5,null))[_0x9c0b('0x1e')](removeEntity(_0x3088d5,null))['catch'](handleError(_0x3088d5,null));};exports[_0x9c0b('0x49')]=function(_0x63e5c4,_0x3b0fa0,_0x154a66){_0x63e5c4[_0x9c0b('0x48')][_0x9c0b('0x22')]=_0x63e5c4['file'][_0x9c0b('0x4a')];_0x63e5c4[_0x9c0b('0x48')][_0x9c0b('0x4b')]=_0x63e5c4[_0x9c0b('0x4c')][_0x9c0b('0x4d')];_0x63e5c4[_0x9c0b('0x48')][_0x9c0b('0x28')]=_0x63e5c4['file'][_0x9c0b('0x4e')];return db[_0x9c0b('0x25')][_0x9c0b('0x49')](_0x63e5c4[_0x9c0b('0x48')])['then'](respondWithResult(_0x3b0fa0,0xc9))['catch'](handleError(_0x3b0fa0,null));};exports['download']=function(_0x3233e8,_0x3a007b,_0x4d488b){return db[_0x9c0b('0x25')][_0x9c0b('0x4f')]({'where':{'id':_0x3233e8[_0x9c0b('0x40')]['id']},'raw':!![]})[_0x9c0b('0x1e')](handleEntityNotFound(_0x3a007b,null))[_0x9c0b('0x1e')](function(_0x351c10){if(_0x351c10){return _0x3a007b[_0x9c0b('0x50')](path['join'](config[_0x9c0b('0x51')],_0x9c0b('0x52'),_0x351c10[_0x9c0b('0x4b')]));}})[_0x9c0b('0x3f')](handleError(_0x3a007b,null));};