Built motion from commit 9d1906d1.|2.5.40
[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 _0xacb5=['crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','Content-Range','apply','reject','save','then','get','Templates','UserProfileResource','destroy','end','error','stack','name','index','map','Template','rawAttributes','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','find','userProfileId','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x4e1a81,_0x4c3697){var _0x52ea72=function(_0x4cda82){while(--_0x4cda82){_0x4e1a81['push'](_0x4e1a81['shift']());}};_0x52ea72(++_0x4c3697);}(_0xacb5,0x13b));var _0x5acb=function(_0x1e24b1,_0x14ab30){_0x1e24b1=_0x1e24b1-0x0;var _0x212baf=_0xacb5[_0x1e24b1];return _0x212baf;};'use strict';var emlformat=require(_0x5acb('0x0'));var rimraf=require(_0x5acb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5acb('0x2'));var rp=require(_0x5acb('0x3'));var moment=require(_0x5acb('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x5acb('0x5'));var util=require(_0x5acb('0x6'));var path=require('path');var sox=require(_0x5acb('0x7'));var csv=require(_0x5acb('0x8'));var ejs=require(_0x5acb('0x9'));var fs=require('fs');var fs_extra=require(_0x5acb('0xa'));var _=require(_0x5acb('0xb'));var squel=require(_0x5acb('0xc'));var crypto=require(_0x5acb('0xd'));var jsforce=require(_0x5acb('0xe'));var deskjs=require(_0x5acb('0xf'));var toCsv=require(_0x5acb('0x8'));var querystring=require('querystring');var Papa=require(_0x5acb('0x10'));var Redis=require(_0x5acb('0x11'));var authService=require(_0x5acb('0x12'));var qs=require(_0x5acb('0x13'));var as=require(_0x5acb('0x14'));var hardwareService=require(_0x5acb('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x5acb('0x16'));var config=require(_0x5acb('0x17'));var licenseUtil=require(_0x5acb('0x18'));var db=require(_0x5acb('0x19'))['db'];function respondWithStatusCode(_0x163979,_0x416c4b){_0x416c4b=_0x416c4b||0xcc;return function(_0x3cd9e0){if(_0x3cd9e0){return _0x163979[_0x5acb('0x1a')](_0x416c4b);}return _0x163979[_0x5acb('0x1b')](_0x416c4b)['end']();};}function respondWithResult(_0x513b54,_0x37cead){_0x37cead=_0x37cead||0xc8;return function(_0x2c1f58){if(_0x2c1f58){return _0x513b54['status'](_0x37cead)['json'](_0x2c1f58);}};}function respondWithFilteredResult(_0x395a03,_0x48cb8b){return function(_0x439f4d){if(_0x439f4d){var _0x13aa35=typeof _0x48cb8b[_0x5acb('0x1c')]===_0x5acb('0x1d')&&typeof _0x48cb8b[_0x5acb('0x1e')]==='undefined';var _0x2ae0d9=_0x439f4d[_0x5acb('0x1f')];var _0x368dbd=_0x13aa35?0x0:_0x48cb8b[_0x5acb('0x1c')];var _0x515a65=_0x13aa35?_0x439f4d[_0x5acb('0x1f')]:_0x48cb8b[_0x5acb('0x1c')]+_0x48cb8b[_0x5acb('0x1e')];var _0x292705;if(_0x515a65>=_0x2ae0d9){_0x515a65=_0x2ae0d9;_0x292705=0xc8;}else{_0x292705=0xce;}_0x395a03[_0x5acb('0x1b')](_0x292705);return _0x395a03['set'](_0x5acb('0x20'),_0x368dbd+'-'+_0x515a65+'/'+_0x2ae0d9)['json'](_0x439f4d);}return null;};}function patchUpdates(_0x31561f){return function(_0xabf4cc){try{jsonpatch[_0x5acb('0x21')](_0xabf4cc,_0x31561f,!![]);}catch(_0x54050a){return BPromise[_0x5acb('0x22')](_0x54050a);}return _0xabf4cc[_0x5acb('0x23')]();};}function saveUpdates(_0x23b949,_0x239d44){return function(_0x500988){if(_0x500988){return _0x500988['update'](_0x23b949)['then'](function(_0x3797b9){return _0x3797b9;});}return null;};}function removeEntity(_0xbbd864,_0x13acd9){return function(_0xb2931c){if(_0xb2931c){return _0xb2931c['destroy']()[_0x5acb('0x24')](function(){var _0x693b4=_0xb2931c[_0x5acb('0x25')]({'plain':!![]});var _0x45c100=_0x5acb('0x26');return db[_0x5acb('0x27')][_0x5acb('0x28')]({'where':{'type':_0x45c100,'resourceId':_0x693b4['id']}})['then'](function(){return _0xb2931c;});})[_0x5acb('0x24')](function(){_0xbbd864['status'](0xcc)[_0x5acb('0x29')]();});}};}function handleEntityNotFound(_0xcd07d6,_0x246e47){return function(_0x508eac){if(!_0x508eac){_0xcd07d6[_0x5acb('0x1a')](0x194);}return _0x508eac;};}function handleError(_0x4e6afa,_0x56757f){_0x56757f=_0x56757f||0x1f4;return function(_0x3232b6){logger[_0x5acb('0x2a')](_0x3232b6[_0x5acb('0x2b')]);if(_0x3232b6[_0x5acb('0x2c')]){delete _0x3232b6['name'];}_0x4e6afa[_0x5acb('0x1b')](_0x56757f)['send'](_0x3232b6);};}exports[_0x5acb('0x2d')]=function(_0xf093b9,_0x1e7698){var _0xa3ee52={},_0x1e3e8e={},_0x1b9659={'count':0x0,'rows':[]};var _0x2e967a=_[_0x5acb('0x2e')](db[_0x5acb('0x2f')][_0x5acb('0x30')],function(_0x4a1119){return{'name':_0x4a1119['fieldName'],'type':_0x4a1119[_0x5acb('0x31')][_0x5acb('0x32')]};});_0x1e3e8e[_0x5acb('0x33')]=_[_0x5acb('0x2e')](_0x2e967a,'name');_0x1e3e8e['query']=_[_0x5acb('0x34')](_0xf093b9[_0x5acb('0x35')]);_0x1e3e8e[_0x5acb('0x36')]=_[_0x5acb('0x37')](_0x1e3e8e[_0x5acb('0x33')],_0x1e3e8e[_0x5acb('0x35')]);_0xa3ee52['attributes']=_[_0x5acb('0x37')](_0x1e3e8e['model'],qs[_0x5acb('0x38')](_0xf093b9[_0x5acb('0x35')][_0x5acb('0x38')]));_0xa3ee52[_0x5acb('0x39')]=_0xa3ee52[_0x5acb('0x39')][_0x5acb('0x3a')]?_0xa3ee52[_0x5acb('0x39')]:_0x1e3e8e[_0x5acb('0x33')];if(!_0xf093b9[_0x5acb('0x35')][_0x5acb('0x3b')](_0x5acb('0x3c'))){_0xa3ee52[_0x5acb('0x1e')]=qs['limit'](_0xf093b9['query'][_0x5acb('0x1e')]);_0xa3ee52[_0x5acb('0x1c')]=qs[_0x5acb('0x1c')](_0xf093b9[_0x5acb('0x35')]['offset']);}_0xa3ee52[_0x5acb('0x3d')]=qs[_0x5acb('0x3e')](_0xf093b9[_0x5acb('0x35')][_0x5acb('0x3e')]);_0xa3ee52[_0x5acb('0x3f')]=qs['filters'](_[_0x5acb('0x40')](_0xf093b9[_0x5acb('0x35')],_0x1e3e8e[_0x5acb('0x36')]),_0x2e967a);if(_0xf093b9[_0x5acb('0x35')][_0x5acb('0x41')]){_0xa3ee52[_0x5acb('0x3f')]=_[_0x5acb('0x42')](_0xa3ee52[_0x5acb('0x3f')],{'$or':_['map'](_0x2e967a,function(_0x4957f4){if(_0x4957f4['type']!==_0x5acb('0x43')){var _0x51e5ec={};_0x51e5ec[_0x4957f4[_0x5acb('0x2c')]]={'$like':'%'+_0xf093b9[_0x5acb('0x35')][_0x5acb('0x41')]+'%'};return _0x51e5ec;}})});}_0xa3ee52=_[_0x5acb('0x42')]({},_0xa3ee52,_0xf093b9[_0x5acb('0x44')]);var _0x1983f2={'where':_0xa3ee52[_0x5acb('0x3f')]};return db[_0x5acb('0x2f')][_0x5acb('0x1f')](_0x1983f2)[_0x5acb('0x24')](function(_0x462a1c){_0x1b9659[_0x5acb('0x1f')]=_0x462a1c;if(_0xf093b9['query'][_0x5acb('0x45')]){_0xa3ee52[_0x5acb('0x46')]=[{'all':!![]}];}return db['Template']['findAll'](_0xa3ee52);})[_0x5acb('0x24')](function(_0x123733){_0x1b9659[_0x5acb('0x47')]=_0x123733;return _0x1b9659;})['then'](respondWithFilteredResult(_0x1e7698,_0xa3ee52))[_0x5acb('0x48')](handleError(_0x1e7698,null));};exports[_0x5acb('0x49')]=function(_0x5544ea,_0x4f560c){var _0xb94f6d={'raw':!![],'where':{'id':_0x5544ea['params']['id']}},_0x23110a={};_0x23110a[_0x5acb('0x33')]=_[_0x5acb('0x34')](db[_0x5acb('0x2f')][_0x5acb('0x30')]);_0x23110a[_0x5acb('0x35')]=_[_0x5acb('0x34')](_0x5544ea[_0x5acb('0x35')]);_0x23110a[_0x5acb('0x36')]=_[_0x5acb('0x37')](_0x23110a['model'],_0x23110a[_0x5acb('0x35')]);_0xb94f6d[_0x5acb('0x39')]=_[_0x5acb('0x37')](_0x23110a[_0x5acb('0x33')],qs[_0x5acb('0x38')](_0x5544ea[_0x5acb('0x35')]['fields']));_0xb94f6d[_0x5acb('0x39')]=_0xb94f6d['attributes']['length']?_0xb94f6d[_0x5acb('0x39')]:_0x23110a[_0x5acb('0x33')];if(_0x5544ea[_0x5acb('0x35')][_0x5acb('0x45')]){_0xb94f6d[_0x5acb('0x46')]=[{'all':!![]}];}_0xb94f6d=_[_0x5acb('0x42')]({},_0xb94f6d,_0x5544ea[_0x5acb('0x44')]);return db[_0x5acb('0x2f')]['find'](_0xb94f6d)['then'](handleEntityNotFound(_0x4f560c,null))[_0x5acb('0x24')](respondWithResult(_0x4f560c,null))[_0x5acb('0x48')](handleError(_0x4f560c,null));};exports['create']=function(_0x40051c,_0x535ae4){return db[_0x5acb('0x2f')]['create'](_0x40051c['body'],{})[_0x5acb('0x24')](function(_0x2fad06){var _0x55c435=_0x40051c[_0x5acb('0x4a')][_0x5acb('0x25')]({'plain':!![]});if(!_0x55c435)throw new Error(_0x5acb('0x4b'));if(_0x55c435['role']===_0x5acb('0x4a')){var _0x1b8cb7=_0x2fad06[_0x5acb('0x25')]({'plain':!![]});var _0x25f245=_0x5acb('0x26');return db['UserProfileSection'][_0x5acb('0x4c')]({'where':{'name':_0x25f245,'userProfileId':_0x55c435[_0x5acb('0x4d')]},'raw':!![]})[_0x5acb('0x24')](function(_0x2d7e42){if(_0x2d7e42&&_0x2d7e42['autoAssociation']===0x0){return db[_0x5acb('0x27')][_0x5acb('0x4e')]({'name':_0x1b8cb7[_0x5acb('0x2c')],'resourceId':_0x1b8cb7['id'],'type':_0x2d7e42[_0x5acb('0x2c')],'sectionId':_0x2d7e42['id']},{})['then'](function(){return _0x2fad06;});}else{return _0x2fad06;}})[_0x5acb('0x48')](function(_0x2ab8c6){logger[_0x5acb('0x2a')](_0x5acb('0x4f'),_0x2ab8c6);throw _0x2ab8c6;});}return _0x2fad06;})[_0x5acb('0x24')](respondWithResult(_0x535ae4,0xc9))['catch'](handleError(_0x535ae4,null));};exports['update']=function(_0xc145,_0x296296){if(_0xc145[_0x5acb('0x50')]['id']){delete _0xc145[_0x5acb('0x50')]['id'];}return db['Template'][_0x5acb('0x4c')]({'where':{'id':_0xc145[_0x5acb('0x51')]['id']}})[_0x5acb('0x24')](handleEntityNotFound(_0x296296,null))[_0x5acb('0x24')](saveUpdates(_0xc145[_0x5acb('0x50')],null))[_0x5acb('0x24')](respondWithResult(_0x296296,null))['catch'](handleError(_0x296296,null));};exports[_0x5acb('0x28')]=function(_0x535365,_0x204778){return db['Template'][_0x5acb('0x4c')]({'where':{'id':_0x535365[_0x5acb('0x51')]['id']}})[_0x5acb('0x24')](handleEntityNotFound(_0x204778,null))['then'](removeEntity(_0x204778,null))['catch'](handleError(_0x204778,null));};