Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / template / template.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 _0x0c40=['Content-Range','apply','save','update','then','destroy','Templates','UserProfileResource','error','stack','name','send','index','map','Template','type','model','query','intersection','attributes','fields','nolimit','limit','order','sort','filters','pick','filter','merge','VIRTUAL','where','findAll','catch','show','keys','rawAttributes','includeAll','include','body','user','get','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','params','html-pdf','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','end','status','count','offset'];(function(_0x511e52,_0x3990f0){var _0x168590=function(_0x4fa1b2){while(--_0x4fa1b2){_0x511e52['push'](_0x511e52['shift']());}};_0x168590(++_0x3990f0);}(_0x0c40,0x10e));var _0x00c4=function(_0x48ecd2,_0x481ad3){_0x48ecd2=_0x48ecd2-0x0;var _0x5a4457=_0x0c40[_0x48ecd2];return _0x5a4457;};'use strict';var pdf=require(_0x00c4('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x00c4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x00c4('0x2'));var rp=require(_0x00c4('0x3'));var moment=require(_0x00c4('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x00c4('0x5'));var util=require(_0x00c4('0x6'));var path=require('path');var sox=require(_0x00c4('0x7'));var csv=require(_0x00c4('0x8'));var ejs=require(_0x00c4('0x9'));var fs=require('fs');var _=require(_0x00c4('0xa'));var squel=require(_0x00c4('0xb'));var crypto=require(_0x00c4('0xc'));var jsforce=require(_0x00c4('0xd'));var deskjs=require(_0x00c4('0xe'));var toCsv=require(_0x00c4('0x8'));var querystring=require('querystring');var Papa=require(_0x00c4('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x00c4('0x10'));var as=require(_0x00c4('0x11'));var hardwareService=require(_0x00c4('0x12'));var logger=require('../../config/logger')(_0x00c4('0x13'));var utils=require(_0x00c4('0x14'));var config=require(_0x00c4('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1cc0b8,_0x13c407){_0x13c407=_0x13c407||0xcc;return function(_0x113bd1){if(_0x113bd1){return _0x1cc0b8['sendStatus'](_0x13c407);}return _0x1cc0b8['status'](_0x13c407)[_0x00c4('0x16')]();};}function respondWithResult(_0x478ecb,_0x4172c3){_0x4172c3=_0x4172c3||0xc8;return function(_0x2c24b3){if(_0x2c24b3){return _0x478ecb[_0x00c4('0x17')](_0x4172c3)['json'](_0x2c24b3);}};}function respondWithFilteredResult(_0x3f1343,_0x3e9c1e){return function(_0x145b69){if(_0x145b69){var _0x2b73cc=_0x145b69[_0x00c4('0x18')],_0x2376b3=_0x3e9c1e[_0x00c4('0x19')],_0x254c99=_0x3e9c1e[_0x00c4('0x19')]+_0x3e9c1e['limit'],_0x27757d;if(_0x254c99>=_0x2b73cc){_0x254c99=_0x2b73cc;_0x27757d=0xc8;}else{_0x27757d=0xce;}_0x3f1343[_0x00c4('0x17')](_0x27757d);return _0x3f1343['set'](_0x00c4('0x1a'),_0x2376b3+'-'+_0x254c99+'/'+_0x2b73cc)['json'](_0x145b69);}return null;};}function patchUpdates(_0x48183f){return function(_0x446dc5){try{jsonpatch[_0x00c4('0x1b')](_0x446dc5,_0x48183f,!![]);}catch(_0x5c7c93){return BPromise['reject'](_0x5c7c93);}return _0x446dc5[_0x00c4('0x1c')]();};}function saveUpdates(_0x5c900f,_0x5cb7e9){return function(_0x160b18){if(_0x160b18){return _0x160b18[_0x00c4('0x1d')](_0x5c900f)[_0x00c4('0x1e')](function(_0x557307){return _0x557307;});}return null;};}function removeEntity(_0x11536e,_0x4933e0){return function(_0x380a1e){if(_0x380a1e){return _0x380a1e[_0x00c4('0x1f')]()['then'](function(){var _0x1e8862=_0x380a1e['get']({'plain':!![]});var _0xf0a9a4=_0x00c4('0x20');return db[_0x00c4('0x21')][_0x00c4('0x1f')]({'where':{'type':_0xf0a9a4,'resourceId':_0x1e8862['id']}})[_0x00c4('0x1e')](function(){return _0x380a1e;});})[_0x00c4('0x1e')](function(){_0x11536e[_0x00c4('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x16fe78,_0x38b0c9){return function(_0x127018){if(!_0x127018){_0x16fe78['sendStatus'](0x194);}return _0x127018;};}function handleError(_0x2bddee,_0x1be000){_0x1be000=_0x1be000||0x1f4;return function(_0x4c6120){logger[_0x00c4('0x22')](_0x4c6120[_0x00c4('0x23')]);if(_0x4c6120[_0x00c4('0x24')]){delete _0x4c6120['name'];}_0x2bddee[_0x00c4('0x17')](_0x1be000)[_0x00c4('0x25')](_0x4c6120);};}exports[_0x00c4('0x26')]=function(_0x148f67,_0x248a3b){var _0x16a160={},_0x46e98b={},_0x2d65db={'count':0x0,'rows':[]};var _0x39b629=_[_0x00c4('0x27')](db[_0x00c4('0x28')]['rawAttributes'],function(_0x40e8c1){return{'name':_0x40e8c1['fieldName'],'type':_0x40e8c1[_0x00c4('0x29')]['key']};});_0x46e98b[_0x00c4('0x2a')]=_['map'](_0x39b629,_0x00c4('0x24'));_0x46e98b['query']=_['keys'](_0x148f67[_0x00c4('0x2b')]);_0x46e98b['filters']=_[_0x00c4('0x2c')](_0x46e98b[_0x00c4('0x2a')],_0x46e98b[_0x00c4('0x2b')]);_0x16a160[_0x00c4('0x2d')]=_[_0x00c4('0x2c')](_0x46e98b['model'],qs[_0x00c4('0x2e')](_0x148f67[_0x00c4('0x2b')][_0x00c4('0x2e')]));_0x16a160['attributes']=_0x16a160[_0x00c4('0x2d')]['length']?_0x16a160['attributes']:_0x46e98b[_0x00c4('0x2a')];if(!_0x148f67[_0x00c4('0x2b')]['hasOwnProperty'](_0x00c4('0x2f'))){_0x16a160[_0x00c4('0x30')]=qs['limit'](_0x148f67[_0x00c4('0x2b')][_0x00c4('0x30')]);_0x16a160[_0x00c4('0x19')]=qs[_0x00c4('0x19')](_0x148f67[_0x00c4('0x2b')][_0x00c4('0x19')]);}_0x16a160[_0x00c4('0x31')]=qs[_0x00c4('0x32')](_0x148f67['query']['sort']);_0x16a160['where']=qs[_0x00c4('0x33')](_[_0x00c4('0x34')](_0x148f67['query'],_0x46e98b[_0x00c4('0x33')]),_0x39b629);if(_0x148f67[_0x00c4('0x2b')][_0x00c4('0x35')]){_0x16a160['where']=_[_0x00c4('0x36')](_0x16a160['where'],{'$or':_[_0x00c4('0x27')](_0x39b629,function(_0x18bd19){if(_0x18bd19[_0x00c4('0x29')]!==_0x00c4('0x37')){var _0x290b51={};_0x290b51[_0x18bd19[_0x00c4('0x24')]]={'$like':'%'+_0x148f67[_0x00c4('0x2b')][_0x00c4('0x35')]+'%'};return _0x290b51;}})});}_0x16a160=_['merge']({},_0x16a160,_0x148f67['options']);var _0x2737bc={'where':_0x16a160[_0x00c4('0x38')]};return db[_0x00c4('0x28')][_0x00c4('0x18')](_0x2737bc)['then'](function(_0x1fa3e0){_0x2d65db[_0x00c4('0x18')]=_0x1fa3e0;if(_0x148f67[_0x00c4('0x2b')]['includeAll']){_0x16a160['include']=[{'all':!![]}];}return db['Template'][_0x00c4('0x39')](_0x16a160);})[_0x00c4('0x1e')](function(_0x1a97ab){_0x2d65db['rows']=_0x1a97ab;return _0x2d65db;})['then'](respondWithFilteredResult(_0x248a3b,_0x16a160))[_0x00c4('0x3a')](handleError(_0x248a3b,null));};exports[_0x00c4('0x3b')]=function(_0x132da2,_0x3bdbfb){var _0xa69629={'raw':!![],'where':{'id':_0x132da2['params']['id']}},_0x6ff7d3={};_0x6ff7d3['model']=_[_0x00c4('0x3c')](db[_0x00c4('0x28')][_0x00c4('0x3d')]);_0x6ff7d3['query']=_[_0x00c4('0x3c')](_0x132da2[_0x00c4('0x2b')]);_0x6ff7d3[_0x00c4('0x33')]=_['intersection'](_0x6ff7d3[_0x00c4('0x2a')],_0x6ff7d3[_0x00c4('0x2b')]);_0xa69629[_0x00c4('0x2d')]=_['intersection'](_0x6ff7d3[_0x00c4('0x2a')],qs[_0x00c4('0x2e')](_0x132da2[_0x00c4('0x2b')]['fields']));_0xa69629[_0x00c4('0x2d')]=_0xa69629['attributes']['length']?_0xa69629[_0x00c4('0x2d')]:_0x6ff7d3['model'];if(_0x132da2[_0x00c4('0x2b')][_0x00c4('0x3e')]){_0xa69629[_0x00c4('0x3f')]=[{'all':!![]}];}_0xa69629=_[_0x00c4('0x36')]({},_0xa69629,_0x132da2['options']);return db['Template']['find'](_0xa69629)[_0x00c4('0x1e')](handleEntityNotFound(_0x3bdbfb,null))[_0x00c4('0x1e')](respondWithResult(_0x3bdbfb,null))['catch'](handleError(_0x3bdbfb,null));};exports['create']=function(_0x493400,_0x1f7b7b){return db['Template']['create'](_0x493400[_0x00c4('0x40')],{})[_0x00c4('0x1e')](function(_0x363d82){var _0x1676c8=_0x493400[_0x00c4('0x41')]['get']({'plain':!![]});if(!_0x1676c8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1676c8['role']===_0x00c4('0x41')){var _0x2f7761=_0x363d82[_0x00c4('0x42')]({'plain':!![]});var _0x58a295='Templates';return db[_0x00c4('0x43')]['find']({'where':{'name':_0x58a295,'userProfileId':_0x1676c8[_0x00c4('0x44')]},'raw':!![]})['then'](function(_0x54c81b){if(_0x54c81b&&_0x54c81b[_0x00c4('0x45')]===0x0){return db[_0x00c4('0x21')][_0x00c4('0x46')]({'name':_0x2f7761['name'],'resourceId':_0x2f7761['id'],'type':_0x54c81b[_0x00c4('0x24')],'sectionId':_0x54c81b['id']},{})[_0x00c4('0x1e')](function(){return _0x363d82;});}else{return _0x363d82;}})[_0x00c4('0x3a')](function(_0x20a235){logger[_0x00c4('0x22')](_0x00c4('0x47'),_0x20a235);throw _0x20a235;});}return _0x363d82;})['then'](respondWithResult(_0x1f7b7b,0xc9))['catch'](handleError(_0x1f7b7b,null));};exports[_0x00c4('0x1d')]=function(_0x5cd19b,_0xab4b13){if(_0x5cd19b[_0x00c4('0x40')]['id']){delete _0x5cd19b[_0x00c4('0x40')]['id'];}return db[_0x00c4('0x28')][_0x00c4('0x48')]({'where':{'id':_0x5cd19b[_0x00c4('0x49')]['id']}})[_0x00c4('0x1e')](handleEntityNotFound(_0xab4b13,null))[_0x00c4('0x1e')](saveUpdates(_0x5cd19b[_0x00c4('0x40')],null))[_0x00c4('0x1e')](respondWithResult(_0xab4b13,null))[_0x00c4('0x3a')](handleError(_0xab4b13,null));};exports[_0x00c4('0x1f')]=function(_0x1e5ec2,_0x16c133){return db[_0x00c4('0x28')]['find']({'where':{'id':_0x1e5ec2[_0x00c4('0x49')]['id']}})[_0x00c4('0x1e')](handleEntityNotFound(_0x16c133,null))[_0x00c4('0x1e')](removeEntity(_0x16c133,null))[_0x00c4('0x3a')](handleError(_0x16c133,null));};