Built motion from commit eddce310.|2.6.12
[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 _0x1eab=['eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','offset','limit','count','set','apply','reject','update','then','destroy','get','end','error','stack','name','send','index','map','Template','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','keys','includeAll','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Templates','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find'];(function(_0x127771,_0x497e31){var _0x1f0261=function(_0x29f9ae){while(--_0x29f9ae){_0x127771['push'](_0x127771['shift']());}};_0x1f0261(++_0x497e31);}(_0x1eab,0xfc));var _0xb1ea=function(_0x2493db,_0x546e5f){_0x2493db=_0x2493db-0x0;var _0x2c48c5=_0x1eab[_0x2493db];return _0x2c48c5;};'use strict';var emlformat=require(_0xb1ea('0x0'));var rimraf=require(_0xb1ea('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xb1ea('0x2'));var moment=require(_0xb1ea('0x3'));var BPromise=require(_0xb1ea('0x4'));var Mustache=require(_0xb1ea('0x5'));var util=require(_0xb1ea('0x6'));var path=require(_0xb1ea('0x7'));var sox=require(_0xb1ea('0x8'));var csv=require(_0xb1ea('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb1ea('0xa'));var _=require(_0xb1ea('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xb1ea('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb1ea('0xd'));var Papa=require(_0xb1ea('0xe'));var Redis=require(_0xb1ea('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xb1ea('0x10'));var as=require(_0xb1ea('0x11'));var hardwareService=require(_0xb1ea('0x12'));var logger=require(_0xb1ea('0x13'))(_0xb1ea('0x14'));var utils=require('../../config/utils');var config=require(_0xb1ea('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xb1ea('0x16'))['db'];function respondWithStatusCode(_0x5ae351,_0x35e886){_0x35e886=_0x35e886||0xcc;return function(_0xebc65d){if(_0xebc65d){return _0x5ae351[_0xb1ea('0x17')](_0x35e886);}return _0x5ae351[_0xb1ea('0x18')](_0x35e886)['end']();};}function respondWithResult(_0x3356f7,_0x59779c){_0x59779c=_0x59779c||0xc8;return function(_0x58d7ee){if(_0x58d7ee){return _0x3356f7[_0xb1ea('0x18')](_0x59779c)[_0xb1ea('0x19')](_0x58d7ee);}};}function respondWithFilteredResult(_0x2097cc,_0x5bc1c6){return function(_0x213f57){if(_0x213f57){var _0x480ec9=typeof _0x5bc1c6[_0xb1ea('0x1a')]==='undefined'&&typeof _0x5bc1c6[_0xb1ea('0x1b')]==='undefined';var _0x1fe0b2=_0x213f57[_0xb1ea('0x1c')];var _0x59a55f=_0x480ec9?0x0:_0x5bc1c6[_0xb1ea('0x1a')];var _0x27690b=_0x480ec9?_0x213f57[_0xb1ea('0x1c')]:_0x5bc1c6['offset']+_0x5bc1c6[_0xb1ea('0x1b')];var _0x4c8823;if(_0x27690b>=_0x1fe0b2){_0x27690b=_0x1fe0b2;_0x4c8823=0xc8;}else{_0x4c8823=0xce;}_0x2097cc[_0xb1ea('0x18')](_0x4c8823);return _0x2097cc[_0xb1ea('0x1d')]('Content-Range',_0x59a55f+'-'+_0x27690b+'/'+_0x1fe0b2)[_0xb1ea('0x19')](_0x213f57);}return null;};}function patchUpdates(_0x1831ba){return function(_0x758975){try{jsonpatch[_0xb1ea('0x1e')](_0x758975,_0x1831ba,!![]);}catch(_0x4bfdd4){return BPromise[_0xb1ea('0x1f')](_0x4bfdd4);}return _0x758975['save']();};}function saveUpdates(_0x4843af,_0x50c6c8){return function(_0x3096c5){if(_0x3096c5){return _0x3096c5[_0xb1ea('0x20')](_0x4843af)[_0xb1ea('0x21')](function(_0x1e620c){return _0x1e620c;});}return null;};}function removeEntity(_0x3e679b,_0x218732){return function(_0x2cf163){if(_0x2cf163){return _0x2cf163[_0xb1ea('0x22')]()[_0xb1ea('0x21')](function(){var _0x501747=_0x2cf163[_0xb1ea('0x23')]({'plain':!![]});var _0x5d8c96='Templates';return db['UserProfileResource']['destroy']({'where':{'type':_0x5d8c96,'resourceId':_0x501747['id']}})[_0xb1ea('0x21')](function(){return _0x2cf163;});})[_0xb1ea('0x21')](function(){_0x3e679b[_0xb1ea('0x18')](0xcc)[_0xb1ea('0x24')]();});}};}function handleEntityNotFound(_0x9f5ebe,_0x32497a){return function(_0x252ff8){if(!_0x252ff8){_0x9f5ebe[_0xb1ea('0x17')](0x194);}return _0x252ff8;};}function handleError(_0x22195f,_0x57abda){_0x57abda=_0x57abda||0x1f4;return function(_0x5bd0ac){logger[_0xb1ea('0x25')](_0x5bd0ac[_0xb1ea('0x26')]);if(_0x5bd0ac['name']){delete _0x5bd0ac[_0xb1ea('0x27')];}_0x22195f[_0xb1ea('0x18')](_0x57abda)[_0xb1ea('0x28')](_0x5bd0ac);};}exports[_0xb1ea('0x29')]=function(_0x6980b1,_0x330b84){var _0x53f18e={},_0xdfe9c2={},_0x534d3e={'count':0x0,'rows':[]};var _0x51a4d0=_[_0xb1ea('0x2a')](db[_0xb1ea('0x2b')][_0xb1ea('0x2c')],function(_0x6be786){return{'name':_0x6be786[_0xb1ea('0x2d')],'type':_0x6be786[_0xb1ea('0x2e')][_0xb1ea('0x2f')]};});_0xdfe9c2[_0xb1ea('0x30')]=_[_0xb1ea('0x2a')](_0x51a4d0,_0xb1ea('0x27'));_0xdfe9c2[_0xb1ea('0x31')]=_['keys'](_0x6980b1[_0xb1ea('0x31')]);_0xdfe9c2[_0xb1ea('0x32')]=_['intersection'](_0xdfe9c2['model'],_0xdfe9c2[_0xb1ea('0x31')]);_0x53f18e[_0xb1ea('0x33')]=_[_0xb1ea('0x34')](_0xdfe9c2['model'],qs[_0xb1ea('0x35')](_0x6980b1['query'][_0xb1ea('0x35')]));_0x53f18e['attributes']=_0x53f18e[_0xb1ea('0x33')][_0xb1ea('0x36')]?_0x53f18e[_0xb1ea('0x33')]:_0xdfe9c2['model'];if(!_0x6980b1[_0xb1ea('0x31')][_0xb1ea('0x37')](_0xb1ea('0x38'))){_0x53f18e[_0xb1ea('0x1b')]=qs[_0xb1ea('0x1b')](_0x6980b1[_0xb1ea('0x31')]['limit']);_0x53f18e[_0xb1ea('0x1a')]=qs[_0xb1ea('0x1a')](_0x6980b1['query'][_0xb1ea('0x1a')]);}_0x53f18e[_0xb1ea('0x39')]=qs[_0xb1ea('0x3a')](_0x6980b1[_0xb1ea('0x31')]['sort']);_0x53f18e[_0xb1ea('0x3b')]=qs[_0xb1ea('0x32')](_['pick'](_0x6980b1[_0xb1ea('0x31')],_0xdfe9c2[_0xb1ea('0x32')]),_0x51a4d0);if(_0x6980b1[_0xb1ea('0x31')][_0xb1ea('0x3c')]){_0x53f18e[_0xb1ea('0x3b')]=_[_0xb1ea('0x3d')](_0x53f18e[_0xb1ea('0x3b')],{'$or':_[_0xb1ea('0x2a')](_0x51a4d0,function(_0x182d9e){if(_0x182d9e[_0xb1ea('0x2e')]!==_0xb1ea('0x3e')){var _0x2b09fc={};_0x2b09fc[_0x182d9e['name']]={'$like':'%'+_0x6980b1[_0xb1ea('0x31')][_0xb1ea('0x3c')]+'%'};return _0x2b09fc;}})});}_0x53f18e=_['merge']({},_0x53f18e,_0x6980b1[_0xb1ea('0x3f')]);var _0x4b9776={'where':_0x53f18e['where']};return db['Template']['count'](_0x4b9776)['then'](function(_0x297ca2){_0x534d3e[_0xb1ea('0x1c')]=_0x297ca2;if(_0x6980b1[_0xb1ea('0x31')]['includeAll']){_0x53f18e[_0xb1ea('0x40')]=[{'all':!![]}];}return db[_0xb1ea('0x2b')][_0xb1ea('0x41')](_0x53f18e);})[_0xb1ea('0x21')](function(_0x5536b3){_0x534d3e[_0xb1ea('0x42')]=_0x5536b3;return _0x534d3e;})[_0xb1ea('0x21')](respondWithFilteredResult(_0x330b84,_0x53f18e))[_0xb1ea('0x43')](handleError(_0x330b84,null));};exports[_0xb1ea('0x44')]=function(_0x310e9c,_0x33038e){var _0x533145={'raw':!![],'where':{'id':_0x310e9c[_0xb1ea('0x45')]['id']}},_0x164767={};_0x164767[_0xb1ea('0x30')]=_[_0xb1ea('0x46')](db['Template'][_0xb1ea('0x2c')]);_0x164767[_0xb1ea('0x31')]=_[_0xb1ea('0x46')](_0x310e9c[_0xb1ea('0x31')]);_0x164767[_0xb1ea('0x32')]=_[_0xb1ea('0x34')](_0x164767[_0xb1ea('0x30')],_0x164767[_0xb1ea('0x31')]);_0x533145[_0xb1ea('0x33')]=_[_0xb1ea('0x34')](_0x164767[_0xb1ea('0x30')],qs['fields'](_0x310e9c[_0xb1ea('0x31')][_0xb1ea('0x35')]));_0x533145[_0xb1ea('0x33')]=_0x533145['attributes']['length']?_0x533145['attributes']:_0x164767['model'];if(_0x310e9c[_0xb1ea('0x31')][_0xb1ea('0x47')]){_0x533145[_0xb1ea('0x40')]=[{'all':!![]}];}_0x533145=_['merge']({},_0x533145,_0x310e9c[_0xb1ea('0x3f')]);return db[_0xb1ea('0x2b')]['find'](_0x533145)[_0xb1ea('0x21')](handleEntityNotFound(_0x33038e,null))[_0xb1ea('0x21')](respondWithResult(_0x33038e,null))['catch'](handleError(_0x33038e,null));};exports['create']=function(_0x5ed455,_0x587cea){return db['Template']['create'](_0x5ed455[_0xb1ea('0x48')],{})['then'](function(_0x28f5c1){var _0x49ae91=_0x5ed455[_0xb1ea('0x49')]['get']({'plain':!![]});if(!_0x49ae91)throw new Error(_0xb1ea('0x4a'));if(_0x49ae91[_0xb1ea('0x4b')]===_0xb1ea('0x49')){var _0x11dda3=_0x28f5c1[_0xb1ea('0x23')]({'plain':!![]});var _0x3f67ce=_0xb1ea('0x4c');return db[_0xb1ea('0x4d')]['find']({'where':{'name':_0x3f67ce,'userProfileId':_0x49ae91[_0xb1ea('0x4e')]},'raw':!![]})[_0xb1ea('0x21')](function(_0x26e96a){if(_0x26e96a&&_0x26e96a[_0xb1ea('0x4f')]===0x0){return db[_0xb1ea('0x50')][_0xb1ea('0x51')]({'name':_0x11dda3['name'],'resourceId':_0x11dda3['id'],'type':_0x26e96a[_0xb1ea('0x27')],'sectionId':_0x26e96a['id']},{})[_0xb1ea('0x21')](function(){return _0x28f5c1;});}else{return _0x28f5c1;}})[_0xb1ea('0x43')](function(_0x555c1d){logger[_0xb1ea('0x25')](_0xb1ea('0x52'),_0x555c1d);throw _0x555c1d;});}return _0x28f5c1;})[_0xb1ea('0x21')](respondWithResult(_0x587cea,0xc9))['catch'](handleError(_0x587cea,null));};exports[_0xb1ea('0x20')]=function(_0x588f46,_0x34ad89){if(_0x588f46['body']['id']){delete _0x588f46[_0xb1ea('0x48')]['id'];}return db['Template'][_0xb1ea('0x53')]({'where':{'id':_0x588f46[_0xb1ea('0x45')]['id']}})[_0xb1ea('0x21')](handleEntityNotFound(_0x34ad89,null))[_0xb1ea('0x21')](saveUpdates(_0x588f46[_0xb1ea('0x48')],null))['then'](respondWithResult(_0x34ad89,null))[_0xb1ea('0x43')](handleError(_0x34ad89,null));};exports[_0xb1ea('0x22')]=function(_0x340e05,_0x415757){return db['Template'][_0xb1ea('0x53')]({'where':{'id':_0x340e05[_0xb1ea('0x45')]['id']}})[_0xb1ea('0x21')](handleEntityNotFound(_0x415757,null))[_0xb1ea('0x21')](removeEntity(_0x415757,null))['catch'](handleError(_0x415757,null));};