Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / trunk / trunk.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 _0x6901=['filter','merge','VIRTUAL','includeAll','show','params','length','include','options','clone','find','omit','createdAt','updatedAt','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','join','server/files/templates/trunk.ejs','readFileSync','utf8','render','writeFileSync','chan_sip.so','UserProfileSection','root','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_trunks.conf','/etc/asterisk/sip_xcally_registers.conf','Reload','html-pdf','rimraf','zip-dir','moment','bluebird','path','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','jayson/promise','client','http','test','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','then','info','Trunk,\x20%s,\x20%s','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','get','Trunks','UserProfileResource','end','name','send','index','map','Trunk','rawAttributes','type','model','keys','query','filters','attributes','intersection','fields','hasOwnProperty','sort','where','pick'];(function(_0xd51d4b,_0x48bc70){var _0x2afbba=function(_0x9917a0){while(--_0x9917a0){_0xd51d4b['push'](_0xd51d4b['shift']());}};_0x2afbba(++_0x48bc70);}(_0x6901,0x100));var _0x1690=function(_0x1629b2,_0x27e8a5){_0x1629b2=_0x1629b2-0x0;var _0x555c74=_0x6901[_0x1629b2];return _0x555c74;};'use strict';var pdf=require(_0x1690('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x1690('0x1'));var zipdir=require(_0x1690('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1690('0x3'));var BPromise=require(_0x1690('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x1690('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1690('0x6'));var fs=require('fs');var _=require(_0x1690('0x7'));var squel=require(_0x1690('0x8'));var crypto=require(_0x1690('0x9'));var jsforce=require(_0x1690('0xa'));var deskjs=require(_0x1690('0xb'));var toCsv=require('to-csv');var querystring=require(_0x1690('0xc'));var Papa=require(_0x1690('0xd'));var Redis=require(_0x1690('0xe'));var authService=require(_0x1690('0xf'));var qs=require(_0x1690('0x10'));var as=require(_0x1690('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1690('0x12'))(_0x1690('0x13'));var utils=require('../../config/utils');var config=require(_0x1690('0x14'));var db=require(_0x1690('0x15'))['db'];var jayson=require(_0x1690('0x16'));var client=jayson[_0x1690('0x17')][_0x1690('0x18')]({'port':0x232a});function checkPasswordPattern(_0x158757,_0x32628a,_0x4686c1){if(_0x4686c1){var _0x2811fc=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x2811fc[_0x1690('0x19')](_0x32628a)){return _0x158757;}else{throw new db['Sequelize'][(_0x1690('0x1a'))](_0x1690('0x1b'));}}else{return _0x158757;}}function respondWithRpcPromise(_0x11e9bf,_0x5e0d7f,_0x5ebc4c,_0x2d5617){return new BPromise(function(_0x575010,_0x1e2061){var _0x5295b6=_0x2d5617||client;return _0x5295b6['request'](_0x11e9bf,_0x5ebc4c)[_0x1690('0x1c')](function(_0x55bb34){logger[_0x1690('0x1d')](_0x1690('0x1e'),_0x5e0d7f,'request\x20sent');logger[_0x1690('0x1f')](_0x1690('0x20'),_0x5e0d7f,_0x1690('0x21'),JSON[_0x1690('0x22')](_0x55bb34));if(_0x55bb34['error']){if(_0x55bb34[_0x1690('0x23')]['code']===0x1f4){logger[_0x1690('0x23')](_0x1690('0x1e'),_0x5e0d7f,_0x55bb34[_0x1690('0x23')][_0x1690('0x24')]);return _0x1e2061(_0x55bb34[_0x1690('0x23')][_0x1690('0x24')]);}logger[_0x1690('0x23')](_0x1690('0x1e'),_0x5e0d7f,_0x55bb34[_0x1690('0x23')][_0x1690('0x24')]);return _0x575010(_0x55bb34[_0x1690('0x23')][_0x1690('0x24')]);}else{logger[_0x1690('0x1d')](_0x1690('0x1e'),_0x5e0d7f,_0x1690('0x21'));_0x575010(_0x55bb34[_0x1690('0x25')][_0x1690('0x24')]);}})[_0x1690('0x26')](function(_0x592104){logger[_0x1690('0x23')](_0x1690('0x1e'),_0x5e0d7f,_0x592104);_0x1e2061(_0x592104);});});}function respondWithStatusCode(_0x5c1cf8,_0x34a818){_0x34a818=_0x34a818||0xcc;return function(_0x1c1b7b){if(_0x1c1b7b){return _0x5c1cf8[_0x1690('0x27')](_0x34a818);}return _0x5c1cf8[_0x1690('0x28')](_0x34a818)['end']();};}function respondWithResult(_0x30755f,_0x325867){_0x325867=_0x325867||0xc8;return function(_0x32dd95){if(_0x32dd95){return _0x30755f[_0x1690('0x28')](_0x325867)[_0x1690('0x29')](_0x32dd95);}};}function respondWithFilteredResult(_0x2d04d1,_0x4fb78c){return function(_0x48febb){if(_0x48febb){var _0x12961e=_0x48febb[_0x1690('0x2a')],_0x536c54=_0x4fb78c[_0x1690('0x2b')],_0x486ec9=_0x4fb78c[_0x1690('0x2b')]+_0x4fb78c[_0x1690('0x2c')],_0x49bd71;if(_0x486ec9>=_0x12961e){_0x486ec9=_0x12961e;_0x49bd71=0xc8;}else{_0x49bd71=0xce;}_0x2d04d1[_0x1690('0x28')](_0x49bd71);return _0x2d04d1[_0x1690('0x2d')](_0x1690('0x2e'),_0x536c54+'-'+_0x486ec9+'/'+_0x12961e)['json'](_0x48febb);}return null;};}function patchUpdates(_0x3ead2e){return function(_0x45cddb){try{jsonpatch[_0x1690('0x2f')](_0x45cddb,_0x3ead2e,!![]);}catch(_0xdb7afc){return BPromise[_0x1690('0x30')](_0xdb7afc);}return _0x45cddb[_0x1690('0x31')]();};}function saveUpdates(_0x356c51,_0x56ea8d){return function(_0x40238b){if(_0x40238b){return _0x40238b[_0x1690('0x32')](_0x356c51)['then'](function(_0xb89799){return _0xb89799;});}return null;};}function removeEntity(_0x46ca03,_0x1a9c67){return function(_0x36ba63){if(_0x36ba63){return _0x36ba63[_0x1690('0x33')]()[_0x1690('0x1c')](function(){var _0x280a22=_0x36ba63[_0x1690('0x34')]({'plain':!![]});var _0x4ac4f6=_0x1690('0x35');return db[_0x1690('0x36')][_0x1690('0x33')]({'where':{'type':_0x4ac4f6,'resourceId':_0x280a22['id']}})[_0x1690('0x1c')](function(){return _0x36ba63;});})['then'](function(){_0x46ca03['status'](0xcc)[_0x1690('0x37')]();});}};}function handleEntityNotFound(_0x29e8a8,_0x248179){return function(_0x24a128){if(!_0x24a128){_0x29e8a8[_0x1690('0x27')](0x194);}return _0x24a128;};}function handleError(_0x193f8c,_0x5251f3){_0x5251f3=_0x5251f3||0x1f4;return function(_0x3526ab){logger[_0x1690('0x23')](_0x3526ab['stack']);if(_0x3526ab[_0x1690('0x38')]){delete _0x3526ab['name'];}_0x193f8c['status'](_0x5251f3)[_0x1690('0x39')](_0x3526ab);};}exports[_0x1690('0x3a')]=function(_0x486448,_0x48747f){var _0x1a9b3f={},_0x3c05c8={},_0x39fc1e={'count':0x0,'rows':[]};var _0x14dc82=_[_0x1690('0x3b')](db[_0x1690('0x3c')][_0x1690('0x3d')],function(_0x1f5ccb){return{'name':_0x1f5ccb['fieldName'],'type':_0x1f5ccb[_0x1690('0x3e')]['key']};});_0x3c05c8[_0x1690('0x3f')]=_[_0x1690('0x3b')](_0x14dc82,_0x1690('0x38'));_0x3c05c8['query']=_[_0x1690('0x40')](_0x486448[_0x1690('0x41')]);_0x3c05c8[_0x1690('0x42')]=_['intersection'](_0x3c05c8[_0x1690('0x3f')],_0x3c05c8[_0x1690('0x41')]);_0x1a9b3f[_0x1690('0x43')]=_[_0x1690('0x44')](_0x3c05c8['model'],qs['fields'](_0x486448[_0x1690('0x41')][_0x1690('0x45')]));_0x1a9b3f[_0x1690('0x43')]=_0x1a9b3f[_0x1690('0x43')]['length']?_0x1a9b3f[_0x1690('0x43')]:_0x3c05c8[_0x1690('0x3f')];if(!_0x486448[_0x1690('0x41')][_0x1690('0x46')]('nolimit')){_0x1a9b3f['limit']=qs['limit'](_0x486448[_0x1690('0x41')][_0x1690('0x2c')]);_0x1a9b3f[_0x1690('0x2b')]=qs['offset'](_0x486448[_0x1690('0x41')][_0x1690('0x2b')]);}_0x1a9b3f['order']=qs[_0x1690('0x47')](_0x486448[_0x1690('0x41')]['sort']);_0x1a9b3f[_0x1690('0x48')]=qs['filters'](_[_0x1690('0x49')](_0x486448[_0x1690('0x41')],_0x3c05c8[_0x1690('0x42')]),_0x14dc82);if(_0x486448[_0x1690('0x41')][_0x1690('0x4a')]){_0x1a9b3f[_0x1690('0x48')]=_[_0x1690('0x4b')](_0x1a9b3f[_0x1690('0x48')],{'$or':_[_0x1690('0x3b')](_0x14dc82,function(_0x6c3c39){if(_0x6c3c39[_0x1690('0x3e')]!==_0x1690('0x4c')){var _0xbd978c={};_0xbd978c[_0x6c3c39[_0x1690('0x38')]]={'$like':'%'+_0x486448['query']['filter']+'%'};return _0xbd978c;}})});}_0x1a9b3f=_[_0x1690('0x4b')]({},_0x1a9b3f,_0x486448['options']);var _0x32c2e9={'where':_0x1a9b3f[_0x1690('0x48')]};return db[_0x1690('0x3c')][_0x1690('0x2a')](_0x32c2e9)['then'](function(_0x454ba3){_0x39fc1e[_0x1690('0x2a')]=_0x454ba3;if(_0x486448[_0x1690('0x41')][_0x1690('0x4d')]){_0x1a9b3f['include']=[{'all':!![]}];}return db[_0x1690('0x3c')]['findAll'](_0x1a9b3f);})[_0x1690('0x1c')](function(_0x4b4314){_0x39fc1e['rows']=_0x4b4314;return _0x39fc1e;})[_0x1690('0x1c')](respondWithFilteredResult(_0x48747f,_0x1a9b3f))['catch'](handleError(_0x48747f,null));};exports[_0x1690('0x4e')]=function(_0x44b40b,_0x37943b){var _0x219b7c={'raw':![],'where':{'id':_0x44b40b[_0x1690('0x4f')]['id']}},_0x33ef29={};_0x33ef29[_0x1690('0x3f')]=_[_0x1690('0x40')](db['Trunk']['rawAttributes']);_0x33ef29[_0x1690('0x41')]=_['keys'](_0x44b40b['query']);_0x33ef29[_0x1690('0x42')]=_[_0x1690('0x44')](_0x33ef29[_0x1690('0x3f')],_0x33ef29['query']);_0x219b7c['attributes']=_['intersection'](_0x33ef29[_0x1690('0x3f')],qs['fields'](_0x44b40b[_0x1690('0x41')][_0x1690('0x45')]));_0x219b7c[_0x1690('0x43')]=_0x219b7c[_0x1690('0x43')][_0x1690('0x50')]?_0x219b7c['attributes']:_0x33ef29[_0x1690('0x3f')];if(_0x44b40b[_0x1690('0x41')][_0x1690('0x4d')]){_0x219b7c[_0x1690('0x51')]=[{'all':!![]}];}_0x219b7c=_[_0x1690('0x4b')]({},_0x219b7c,_0x44b40b[_0x1690('0x52')]);return db[_0x1690('0x3c')]['find'](_0x219b7c)['then'](handleEntityNotFound(_0x37943b,null))['then'](respondWithResult(_0x37943b,null))[_0x1690('0x26')](handleError(_0x37943b,null));};exports[_0x1690('0x53')]=function(_0x4b6ee0,_0x519853){var _0x2e945e={'where':{'id':_0x4b6ee0[_0x1690('0x4f')]['id']}},_0x48fc8a={};_0x48fc8a[_0x1690('0x3f')]=_['keys'](db[_0x1690('0x3c')][_0x1690('0x3d')]);_0x2e945e['attributes']=_[_0x1690('0x44')](_0x48fc8a[_0x1690('0x3f')],qs[_0x1690('0x45')](_0x4b6ee0['query'][_0x1690('0x45')]));_0x2e945e[_0x1690('0x43')]=_0x2e945e[_0x1690('0x43')]['length']?_0x2e945e[_0x1690('0x43')]:_0x48fc8a['model'];if(_0x4b6ee0['query'][_0x1690('0x4d')]){_0x2e945e[_0x1690('0x51')]=[{'all':!![]}];}_0x2e945e=_[_0x1690('0x4b')]({},_0x2e945e,_0x4b6ee0[_0x1690('0x52')]);return db[_0x1690('0x3c')][_0x1690('0x54')](_0x2e945e)[_0x1690('0x1c')](handleEntityNotFound(_0x519853,null))[_0x1690('0x1c')](function(_0x511664){if(_0x511664){var _0x3310c2=_0x511664[_0x1690('0x34')]({'plain':!![]});_0x3310c2=qs[_0x1690('0x55')](_0x3310c2,['id',_0x1690('0x56'),'updatedAt']);_0x4b6ee0['body']=_[_0x1690('0x55')](_0x4b6ee0['body'],['id',_0x1690('0x56'),_0x1690('0x57')]);return db[_0x1690('0x3c')][_0x1690('0x58')](_['merge'](_0x3310c2,_0x4b6ee0[_0x1690('0x59')]),{'include':_0x4b6ee0[_0x1690('0x41')][_0x1690('0x4d')]?[{'all':!![]}]:undefined})[_0x1690('0x1c')](function(_0x4f279f){var _0x396d6f=_0x4b6ee0[_0x1690('0x5a')]['get']({'plain':!![]});if(!_0x396d6f)throw new Error(_0x1690('0x5b'));if(_0x396d6f[_0x1690('0x5c')]===_0x1690('0x5a')){var _0x5756ea=_0x4f279f[_0x1690('0x34')]({'plain':!![]});var _0x3b7537=_0x1690('0x35');return db['UserProfileSection'][_0x1690('0x54')]({'where':{'name':_0x3b7537,'userProfileId':_0x396d6f[_0x1690('0x5d')]},'raw':!![]})[_0x1690('0x1c')](function(_0x2ed18f){if(_0x2ed18f&&_0x2ed18f[_0x1690('0x5e')]===0x0){return db[_0x1690('0x36')]['create']({'name':_0x5756ea[_0x1690('0x38')],'resourceId':_0x5756ea['id'],'type':_0x2ed18f[_0x1690('0x38')],'sectionId':_0x2ed18f['id']},{})[_0x1690('0x1c')](function(){return _0x4f279f;});}else{return _0x4f279f;}})[_0x1690('0x26')](function(_0x1a9600){logger['error'](_0x1690('0x5f'),_0x1a9600);throw _0x1a9600;});}return _0x4f279f;});}})['then'](respondWithResult(_0x519853,0xc9))['catch'](handleError(_0x519853,null));};exports[_0x1690('0x58')]=function(_0x9c772d,_0x384c37,_0x8b4e7e){var _0x5d171a;return db[_0x1690('0x3c')][_0x1690('0x58')](_0x9c772d[_0x1690('0x59')],{'raw':!![]})[_0x1690('0x1c')](function(_0x52cc29){_0x5d171a=_0x52cc29;return db['Trunk'][_0x1690('0x60')]({'raw':!![]});})[_0x1690('0x1c')](function(_0x179de2){var _0x574770=fs['readFileSync'](path[_0x1690('0x61')](config['root'],_0x1690('0x62')),'utf8');var _0x55e1a5=fs[_0x1690('0x63')](path[_0x1690('0x61')](config['root'],'server/files/templates/registry.ejs'),_0x1690('0x64'));var _0xaf8778=ejs[_0x1690('0x65')](_0x574770,{'trunks':_0x179de2||[]});fs[_0x1690('0x66')]('/etc/asterisk/sip_xcally_trunks.conf',_0xaf8778);if(_0x5d171a['registry']){var _0x3a748f=ejs[_0x1690('0x65')](_0x55e1a5,{'trunks':_0x179de2||[]});fs[_0x1690('0x66')]('/etc/asterisk/sip_xcally_registers.conf',_0x3a748f);}})[_0x1690('0x1c')](function(){return respondWithRpcPromise('Reload',_0x1690('0x58'),{'module':_0x1690('0x67')});})[_0x1690('0x1c')](function(){var _0x3fe463=_0x9c772d[_0x1690('0x5a')][_0x1690('0x34')]({'plain':!![]});if(!_0x3fe463)throw new Error(_0x1690('0x5b'));if(_0x3fe463[_0x1690('0x5c')]===_0x1690('0x5a')){var _0x583cef=_0x5d171a[_0x1690('0x34')]({'plain':!![]});return db[_0x1690('0x68')]['find']({'where':{'name':_0x1690('0x35'),'userProfileId':_0x3fe463['userProfileId']},'raw':!![]})[_0x1690('0x1c')](function(_0x42e978){if(_0x42e978&&_0x42e978[_0x1690('0x5e')]===0x0){return db[_0x1690('0x36')][_0x1690('0x58')]({'name':_0x583cef[_0x1690('0x38')],'resourceId':_0x583cef['id'],'type':_0x42e978['name'],'sectionId':_0x42e978['id']},{})[_0x1690('0x1c')](function(){return _0x5d171a;});}else{return _0x5d171a;}})['catch'](function(_0x259ddf){logger[_0x1690('0x23')](_0x1690('0x5f'),_0x259ddf);throw _0x259ddf;});}return _0x5d171a;})[_0x1690('0x1c')](respondWithResult(_0x384c37,0xc9))['catch'](handleError(_0x384c37,null));};exports[_0x1690('0x32')]=function(_0x9ac4bd,_0x501b53,_0x47b7eb){var _0x23ddda;return db[_0x1690('0x3c')][_0x1690('0x54')]({'where':{'id':_0x9ac4bd[_0x1690('0x4f')]['id']}})[_0x1690('0x1c')](handleEntityNotFound(_0x501b53,null))['then'](saveUpdates(_0x9ac4bd[_0x1690('0x59')],null))['then'](function(_0x58e6ab){if(_0x58e6ab){_0x23ddda=_0x58e6ab;return db[_0x1690('0x3c')][_0x1690('0x60')]({'raw':!![]});}})[_0x1690('0x1c')](function(_0x15572c){if(_0x15572c){var _0xba17a0=fs[_0x1690('0x63')](path[_0x1690('0x61')](config[_0x1690('0x69')],_0x1690('0x62')),_0x1690('0x64'));var _0x283645=fs[_0x1690('0x63')](path[_0x1690('0x61')](config['root'],_0x1690('0x6a')),'utf8');var _0x29859b=ejs[_0x1690('0x65')](_0xba17a0,{'trunks':_0x15572c||[]});fs['writeFileSync'](_0x1690('0x6b'),_0x29859b);var _0x1cb06c=ejs['render'](_0x283645,{'trunks':_0x15572c||[]});fs['writeFileSync'](_0x1690('0x6c'),_0x1cb06c);return respondWithRpcPromise(_0x1690('0x6d'),'update',{'module':_0x1690('0x67')});}return null;})[_0x1690('0x1c')](function(_0x3d92f4){if(_0x3d92f4){return _0x23ddda;}})[_0x1690('0x1c')](respondWithResult(_0x501b53,null))[_0x1690('0x26')](handleError(_0x501b53,null));};exports[_0x1690('0x33')]=function(_0xa59d45,_0x8603b0,_0x1f0702){var _0x4ac2ee;return db[_0x1690('0x3c')][_0x1690('0x54')]({'where':{'id':_0xa59d45[_0x1690('0x4f')]['id']}})[_0x1690('0x1c')](handleEntityNotFound(_0x8603b0,null))[_0x1690('0x1c')](removeEntity(_0x8603b0,null))[_0x1690('0x1c')](function(){return db[_0x1690('0x3c')][_0x1690('0x60')]({'raw':!![]});})[_0x1690('0x1c')](function(_0x3c07c6){var _0x1a5685=fs[_0x1690('0x63')](path[_0x1690('0x61')](config[_0x1690('0x69')],_0x1690('0x62')),_0x1690('0x64'));var _0x563167=fs[_0x1690('0x63')](path['join'](config[_0x1690('0x69')],_0x1690('0x6a')),_0x1690('0x64'));var _0x1f6eb4=ejs[_0x1690('0x65')](_0x1a5685,{'trunks':_0x3c07c6});var _0x55ff77=ejs[_0x1690('0x65')](_0x563167,{'trunks':_0x3c07c6});fs['writeFileSync'](_0x1690('0x6b'),_0x1f6eb4);fs[_0x1690('0x66')](_0x1690('0x6c'),_0x55ff77);return respondWithRpcPromise(_0x1690('0x6d'),_0x1690('0x33'),{'module':_0x1690('0x67')});})['catch'](handleError(_0x8603b0,null));};