fd6bbe210a272af0c93aae7ba1f04c57e3dbcc82
[motion2.git] / server / api / tag / tag.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 _0xcf23=['request-promise','moment','bluebird','path','sox','ejs','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','count','set','Content-Range','json','apply','then','get','Tags','UserProfileResource','sendStatus','stack','name','send','merge','contact','message','agent','interaction','map','Tag','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','destroy','fast-json-patch'];(function(_0x749173,_0x55e7c7){var _0x21b5d6=function(_0x16ec45){while(--_0x16ec45){_0x749173['push'](_0x749173['shift']());}};_0x21b5d6(++_0x55e7c7);}(_0xcf23,0x1a8));var _0x3cf2=function(_0x1bf992,_0x38677b){_0x1bf992=_0x1bf992-0x0;var _0x276d12=_0xcf23[_0x1bf992];return _0x276d12;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x3cf2('0x0'));var rp=require(_0x3cf2('0x1'));var moment=require(_0x3cf2('0x2'));var BPromise=require(_0x3cf2('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x3cf2('0x4'));var sox=require(_0x3cf2('0x5'));var csv=require('to-csv');var ejs=require(_0x3cf2('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x3cf2('0x7'));var crypto=require(_0x3cf2('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x3cf2('0x9'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x3cf2('0xa'));var Redis=require(_0x3cf2('0xb'));var authService=require('../../components/auth/service');var qs=require(_0x3cf2('0xc'));var as=require(_0x3cf2('0xd'));var hardwareService=require(_0x3cf2('0xe'));var logger=require(_0x3cf2('0xf'))(_0x3cf2('0x10'));var utils=require(_0x3cf2('0x11'));var config=require(_0x3cf2('0x12'));var licenseUtil=require(_0x3cf2('0x13'));var db=require(_0x3cf2('0x14'))['db'];function respondWithStatusCode(_0x462613,_0x40615f){_0x40615f=_0x40615f||0xcc;return function(_0x37248d){if(_0x37248d){return _0x462613['sendStatus'](_0x40615f);}return _0x462613[_0x3cf2('0x15')](_0x40615f)[_0x3cf2('0x16')]();};}function respondWithResult(_0x14a991,_0x38070e){_0x38070e=_0x38070e||0xc8;return function(_0x276f6d){if(_0x276f6d){return _0x14a991['status'](_0x38070e)['json'](_0x276f6d);}};}function respondWithFilteredResult(_0x3af9c7,_0x1306f6){return function(_0x4b9853){if(_0x4b9853){var _0x207963=typeof _0x1306f6[_0x3cf2('0x17')]===_0x3cf2('0x18')&&typeof _0x1306f6['limit']===_0x3cf2('0x18');var _0x4ef241=_0x4b9853[_0x3cf2('0x19')];var _0x6696a6=_0x207963?0x0:_0x1306f6[_0x3cf2('0x17')];var _0x4b70aa=_0x207963?_0x4b9853[_0x3cf2('0x19')]:_0x1306f6[_0x3cf2('0x17')]+_0x1306f6['limit'];var _0x13ed94;if(_0x4b70aa>=_0x4ef241){_0x4b70aa=_0x4ef241;_0x13ed94=0xc8;}else{_0x13ed94=0xce;}_0x3af9c7['status'](_0x13ed94);return _0x3af9c7[_0x3cf2('0x1a')](_0x3cf2('0x1b'),_0x6696a6+'-'+_0x4b70aa+'/'+_0x4ef241)[_0x3cf2('0x1c')](_0x4b9853);}return null;};}function patchUpdates(_0x4edd92){return function(_0x473f12){try{jsonpatch[_0x3cf2('0x1d')](_0x473f12,_0x4edd92,!![]);}catch(_0x2764f2){return BPromise['reject'](_0x2764f2);}return _0x473f12['save']();};}function saveUpdates(_0x45e098,_0x4fab3a){return function(_0x1ef080){if(_0x1ef080){return _0x1ef080['update'](_0x45e098)['then'](function(_0x310574){return _0x310574;});}return null;};}function removeEntity(_0x47bbc8,_0x441dc8){return function(_0x525016){if(_0x525016){return _0x525016['destroy']()[_0x3cf2('0x1e')](function(){var _0x33cbdc=_0x525016[_0x3cf2('0x1f')]({'plain':!![]});var _0x5c572a=_0x3cf2('0x20');return db[_0x3cf2('0x21')]['destroy']({'where':{'type':_0x5c572a,'resourceId':_0x33cbdc['id']}})[_0x3cf2('0x1e')](function(){return _0x525016;});})[_0x3cf2('0x1e')](function(){_0x47bbc8[_0x3cf2('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x8159b6,_0x7ebf94){return function(_0x5a5654){if(!_0x5a5654){_0x8159b6[_0x3cf2('0x22')](0x194);}return _0x5a5654;};}function handleError(_0x8c989,_0x20d1a9){_0x20d1a9=_0x20d1a9||0x1f4;return function(_0x4abe6b){logger['error'](_0x4abe6b[_0x3cf2('0x23')]);if(_0x4abe6b[_0x3cf2('0x24')]){delete _0x4abe6b[_0x3cf2('0x24')];}_0x8c989[_0x3cf2('0x15')](_0x20d1a9)[_0x3cf2('0x25')](_0x4abe6b);};}function getMustacheRender(_0xd4a5e0,_0x166be6){return Mustache['render'](_0xd4a5e0,_[_0x3cf2('0x26')](_0x166be6['body'],{'contact':_0x166be6[_0x3cf2('0x27')],'message':_0x166be6[_0x3cf2('0x28')],'agent':_0x166be6[_0x3cf2('0x29')],'interaction':_0x166be6[_0x3cf2('0x2a')],'account':_0x166be6['account']}))||'';}exports['index']=function(_0x53498f,_0x135c48){var _0x5a19ac={},_0x131a3b={},_0x5808c5={'count':0x0,'rows':[]};var _0x244b91=_[_0x3cf2('0x2b')](db[_0x3cf2('0x2c')][_0x3cf2('0x2d')],function(_0x3676b2){return{'name':_0x3676b2[_0x3cf2('0x2e')],'type':_0x3676b2[_0x3cf2('0x2f')][_0x3cf2('0x30')]};});_0x131a3b[_0x3cf2('0x31')]=_['map'](_0x244b91,_0x3cf2('0x24'));_0x131a3b[_0x3cf2('0x32')]=_[_0x3cf2('0x33')](_0x53498f[_0x3cf2('0x32')]);_0x131a3b[_0x3cf2('0x34')]=_['intersection'](_0x131a3b[_0x3cf2('0x31')],_0x131a3b[_0x3cf2('0x32')]);_0x5a19ac['attributes']=_[_0x3cf2('0x35')](_0x131a3b[_0x3cf2('0x31')],qs[_0x3cf2('0x36')](_0x53498f[_0x3cf2('0x32')]['fields']));_0x5a19ac[_0x3cf2('0x37')]=_0x5a19ac[_0x3cf2('0x37')][_0x3cf2('0x38')]?_0x5a19ac[_0x3cf2('0x37')]:_0x131a3b[_0x3cf2('0x31')];if(!_0x53498f[_0x3cf2('0x32')][_0x3cf2('0x39')](_0x3cf2('0x3a'))){_0x5a19ac[_0x3cf2('0x3b')]=qs[_0x3cf2('0x3b')](_0x53498f['query'][_0x3cf2('0x3b')]);_0x5a19ac[_0x3cf2('0x17')]=qs[_0x3cf2('0x17')](_0x53498f[_0x3cf2('0x32')]['offset']);}_0x5a19ac[_0x3cf2('0x3c')]=qs[_0x3cf2('0x3d')](_0x53498f['query'][_0x3cf2('0x3d')]);_0x5a19ac[_0x3cf2('0x3e')]=qs[_0x3cf2('0x34')](_['pick'](_0x53498f[_0x3cf2('0x32')],_0x131a3b[_0x3cf2('0x34')]),_0x244b91);if(_0x53498f[_0x3cf2('0x32')][_0x3cf2('0x3f')]){_0x5a19ac[_0x3cf2('0x3e')]=_['merge'](_0x5a19ac[_0x3cf2('0x3e')],{'$or':_[_0x3cf2('0x2b')](_0x244b91,function(_0x26f189){if(_0x26f189[_0x3cf2('0x2f')]!==_0x3cf2('0x40')){var _0x2513c2={};_0x2513c2[_0x26f189['name']]={'$like':'%'+_0x53498f[_0x3cf2('0x32')][_0x3cf2('0x3f')]+'%'};return _0x2513c2;}})});}_0x5a19ac=_['merge']({},_0x5a19ac,_0x53498f[_0x3cf2('0x41')]);var _0x71d758={'where':_0x5a19ac[_0x3cf2('0x3e')]};return db[_0x3cf2('0x2c')]['count'](_0x71d758)[_0x3cf2('0x1e')](function(_0x6b8603){_0x5808c5[_0x3cf2('0x19')]=_0x6b8603;if(_0x53498f[_0x3cf2('0x32')][_0x3cf2('0x42')]){_0x5a19ac[_0x3cf2('0x43')]=[{'all':!![]}];}return db['Tag'][_0x3cf2('0x44')](_0x5a19ac);})['then'](function(_0x267c20){_0x5808c5[_0x3cf2('0x45')]=_0x267c20;return _0x5808c5;})[_0x3cf2('0x1e')](respondWithFilteredResult(_0x135c48,_0x5a19ac))[_0x3cf2('0x46')](handleError(_0x135c48,null));};exports[_0x3cf2('0x47')]=function(_0x2557ac,_0xfae31e){var _0x27dacc={'raw':!![],'where':{'id':_0x2557ac[_0x3cf2('0x48')]['id']}},_0x3bd813={};_0x3bd813[_0x3cf2('0x31')]=_[_0x3cf2('0x33')](db['Tag']['rawAttributes']);_0x3bd813[_0x3cf2('0x32')]=_[_0x3cf2('0x33')](_0x2557ac[_0x3cf2('0x32')]);_0x3bd813['filters']=_[_0x3cf2('0x35')](_0x3bd813[_0x3cf2('0x31')],_0x3bd813['query']);_0x27dacc[_0x3cf2('0x37')]=_['intersection'](_0x3bd813[_0x3cf2('0x31')],qs['fields'](_0x2557ac[_0x3cf2('0x32')][_0x3cf2('0x36')]));_0x27dacc[_0x3cf2('0x37')]=_0x27dacc['attributes'][_0x3cf2('0x38')]?_0x27dacc[_0x3cf2('0x37')]:_0x3bd813[_0x3cf2('0x31')];if(_0x2557ac['query']['includeAll']){_0x27dacc[_0x3cf2('0x43')]=[{'all':!![]}];}_0x27dacc=_['merge']({},_0x27dacc,_0x2557ac[_0x3cf2('0x41')]);return db[_0x3cf2('0x2c')][_0x3cf2('0x49')](_0x27dacc)[_0x3cf2('0x1e')](handleEntityNotFound(_0xfae31e,null))[_0x3cf2('0x1e')](respondWithResult(_0xfae31e,null))[_0x3cf2('0x46')](handleError(_0xfae31e,null));};exports[_0x3cf2('0x4a')]=function(_0x287753,_0x468643){return db[_0x3cf2('0x2c')][_0x3cf2('0x4a')](_0x287753[_0x3cf2('0x4b')],{})[_0x3cf2('0x1e')](function(_0x301c9c){var _0x52bb44=_0x287753[_0x3cf2('0x4c')][_0x3cf2('0x1f')]({'plain':!![]});if(!_0x52bb44)throw new Error(_0x3cf2('0x4d'));if(_0x52bb44[_0x3cf2('0x4e')]===_0x3cf2('0x4c')){var _0x16974b=_0x301c9c[_0x3cf2('0x1f')]({'plain':!![]});var _0x3f928f=_0x3cf2('0x20');return db[_0x3cf2('0x4f')][_0x3cf2('0x49')]({'where':{'name':_0x3f928f,'userProfileId':_0x52bb44[_0x3cf2('0x50')]},'raw':!![]})[_0x3cf2('0x1e')](function(_0x3db621){if(_0x3db621&&_0x3db621['autoAssociation']===0x0){return db[_0x3cf2('0x21')][_0x3cf2('0x4a')]({'name':_0x16974b[_0x3cf2('0x24')],'resourceId':_0x16974b['id'],'type':_0x3db621['name'],'sectionId':_0x3db621['id']},{})[_0x3cf2('0x1e')](function(){return _0x301c9c;});}else{return _0x301c9c;}})[_0x3cf2('0x46')](function(_0x357cde){logger[_0x3cf2('0x51')](_0x3cf2('0x52'),_0x357cde);throw _0x357cde;});}return _0x301c9c;})['then'](respondWithResult(_0x468643,0xc9))[_0x3cf2('0x46')](handleError(_0x468643,null));};exports[_0x3cf2('0x53')]=function(_0x2833fc,_0x3377f1){if(_0x2833fc['body']['id']){delete _0x2833fc['body']['id'];}return db['Tag'][_0x3cf2('0x49')]({'where':{'id':_0x2833fc[_0x3cf2('0x48')]['id']}})[_0x3cf2('0x1e')](handleEntityNotFound(_0x3377f1,null))[_0x3cf2('0x1e')](saveUpdates(_0x2833fc[_0x3cf2('0x4b')],null))[_0x3cf2('0x1e')](respondWithResult(_0x3377f1,null))[_0x3cf2('0x46')](handleError(_0x3377f1,null));};exports[_0x3cf2('0x54')]=function(_0x12b6a5,_0x5a1860){return db[_0x3cf2('0x2c')]['find']({'where':{'id':_0x12b6a5[_0x3cf2('0x48')]['id']}})[_0x3cf2('0x1e')](handleEntityNotFound(_0x5a1860,null))['then'](removeEntity(_0x5a1860,null))['catch'](handleError(_0x5a1860,null));};