Built motion from commit (unavailable).|2.4.21
[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 _0xf230=['/etc/asterisk/sip_xcally_registers.conf','Reload','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','findAll','join','root','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_trunks.conf','chan_sip.so','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','to-csv','lodash','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','http','test','Sequelize','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~!@#$%^&-_=+[{]}.','request','then','info','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','Trunk,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','count','offset','limit','Content-Range','json','reject','save','destroy','get','stack','name','send','map','Trunk','rawAttributes','fieldName','type','key','model','keys','filters','intersection','attributes','fields','query','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','rows','include','length','find','omit','createdAt','updatedAt','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Trunks','userProfileId','autoAssociation','UserProfileResource','readFileSync','server/files/templates/trunk.ejs','utf8','render','writeFileSync','registry'];(function(_0x4a3b02,_0x3f5b31){var _0x40d53c=function(_0x792cc7){while(--_0x792cc7){_0x4a3b02['push'](_0x4a3b02['shift']());}};_0x40d53c(++_0x3f5b31);}(_0xf230,0xea));var _0x0f23=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf230[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x0f23('0x0'));var emlformat=require(_0x0f23('0x1'));var rimraf=require(_0x0f23('0x2'));var zipdir=require(_0x0f23('0x3'));var jsonpatch=require(_0x0f23('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x0f23('0x5'));var Mustache=require(_0x0f23('0x6'));var util=require(_0x0f23('0x7'));var path=require('path');var sox=require(_0x0f23('0x8'));var csv=require(_0x0f23('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x0f23('0xa'));var squel=require('squel');var crypto=require(_0x0f23('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x0f23('0xc'));var toCsv=require(_0x0f23('0x9'));var querystring=require(_0x0f23('0xd'));var Papa=require(_0x0f23('0xe'));var Redis=require('ioredis');var authService=require(_0x0f23('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x0f23('0x10'));var hardwareService=require(_0x0f23('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0x0f23('0x12'));var config=require(_0x0f23('0x13'));var db=require(_0x0f23('0x14'))['db'];var jayson=require(_0x0f23('0x15'));var client=jayson['client'][_0x0f23('0x16')]({'port':0x232a});function checkPasswordPattern(_0x12a1a8,_0x1172ee,_0x91cdea){if(_0x91cdea){var _0x33103f=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x33103f[_0x0f23('0x17')](_0x1172ee)){return _0x12a1a8;}else{throw new db[(_0x0f23('0x18'))][(_0x0f23('0x19'))](_0x0f23('0x1a'));}}else{return _0x12a1a8;}}function respondWithRpcPromise(_0x2d9da4,_0x37f44a,_0x26c709,_0x4ed26d){return new BPromise(function(_0x10f544,_0x2ef2a6){var _0x52e976=_0x4ed26d||client;return _0x52e976[_0x0f23('0x1b')](_0x2d9da4,_0x26c709)[_0x0f23('0x1c')](function(_0x296b90){logger[_0x0f23('0x1d')]('Trunk,\x20%s,\x20%s',_0x37f44a,_0x0f23('0x1e'));logger[_0x0f23('0x1f')](_0x0f23('0x20'),_0x37f44a,_0x0f23('0x1e'),JSON[_0x0f23('0x21')](_0x296b90));if(_0x296b90[_0x0f23('0x22')]){if(_0x296b90['error'][_0x0f23('0x23')]===0x1f4){logger[_0x0f23('0x22')](_0x0f23('0x24'),_0x37f44a,_0x296b90[_0x0f23('0x22')]['message']);return _0x2ef2a6(_0x296b90[_0x0f23('0x22')][_0x0f23('0x25')]);}logger[_0x0f23('0x22')](_0x0f23('0x24'),_0x37f44a,_0x296b90[_0x0f23('0x22')][_0x0f23('0x25')]);return _0x10f544(_0x296b90[_0x0f23('0x22')][_0x0f23('0x25')]);}else{logger['info']('Trunk,\x20%s,\x20%s',_0x37f44a,_0x0f23('0x1e'));_0x10f544(_0x296b90[_0x0f23('0x26')][_0x0f23('0x25')]);}})[_0x0f23('0x27')](function(_0xa1f428){logger[_0x0f23('0x22')](_0x0f23('0x24'),_0x37f44a,_0xa1f428);_0x2ef2a6(_0xa1f428);});});}function respondWithStatusCode(_0x2ebac5,_0x6a27b3){_0x6a27b3=_0x6a27b3||0xcc;return function(_0x1988ba){if(_0x1988ba){return _0x2ebac5[_0x0f23('0x28')](_0x6a27b3);}return _0x2ebac5[_0x0f23('0x29')](_0x6a27b3)[_0x0f23('0x2a')]();};}function respondWithResult(_0x343cf4,_0x46343f){_0x46343f=_0x46343f||0xc8;return function(_0x40e505){if(_0x40e505){return _0x343cf4[_0x0f23('0x29')](_0x46343f)['json'](_0x40e505);}};}function respondWithFilteredResult(_0x2789d4,_0x56d55b){return function(_0x924573){if(_0x924573){var _0x470d36=_0x924573[_0x0f23('0x2b')],_0x461275=_0x56d55b[_0x0f23('0x2c')],_0x123009=_0x56d55b[_0x0f23('0x2c')]+_0x56d55b[_0x0f23('0x2d')],_0x1b67d7;if(_0x123009>=_0x470d36){_0x123009=_0x470d36;_0x1b67d7=0xc8;}else{_0x1b67d7=0xce;}_0x2789d4[_0x0f23('0x29')](_0x1b67d7);return _0x2789d4['set'](_0x0f23('0x2e'),_0x461275+'-'+_0x123009+'/'+_0x470d36)[_0x0f23('0x2f')](_0x924573);}return null;};}function patchUpdates(_0x1785a2){return function(_0x38ea6a){try{jsonpatch['apply'](_0x38ea6a,_0x1785a2,!![]);}catch(_0x48b8dc){return BPromise[_0x0f23('0x30')](_0x48b8dc);}return _0x38ea6a[_0x0f23('0x31')]();};}function saveUpdates(_0x387d90,_0x174034){return function(_0x548fd4){if(_0x548fd4){return _0x548fd4['update'](_0x387d90)[_0x0f23('0x1c')](function(_0x5e5004){return _0x5e5004;});}return null;};}function removeEntity(_0x398515,_0x19d55){return function(_0x5619a8){if(_0x5619a8){return _0x5619a8[_0x0f23('0x32')]()[_0x0f23('0x1c')](function(){var _0x2fb345=_0x5619a8[_0x0f23('0x33')]({'plain':!![]});var _0x1d4d23='Trunks';return db['UserProfileResource']['destroy']({'where':{'type':_0x1d4d23,'resourceId':_0x2fb345['id']}})[_0x0f23('0x1c')](function(){return _0x5619a8;});})['then'](function(){_0x398515[_0x0f23('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x20f971,_0x127cbd){return function(_0x161dad){if(!_0x161dad){_0x20f971[_0x0f23('0x28')](0x194);}return _0x161dad;};}function handleError(_0x417efe,_0x1ca8be){_0x1ca8be=_0x1ca8be||0x1f4;return function(_0x5761ff){logger[_0x0f23('0x22')](_0x5761ff[_0x0f23('0x34')]);if(_0x5761ff[_0x0f23('0x35')]){delete _0x5761ff['name'];}_0x417efe[_0x0f23('0x29')](_0x1ca8be)[_0x0f23('0x36')](_0x5761ff);};}exports['index']=function(_0x43d803,_0x4b2d6c){var _0x3ebe98={},_0x2a45a2={},_0x2aaa6c={'count':0x0,'rows':[]};var _0x4f5875=_[_0x0f23('0x37')](db[_0x0f23('0x38')][_0x0f23('0x39')],function(_0x166d76){return{'name':_0x166d76[_0x0f23('0x3a')],'type':_0x166d76[_0x0f23('0x3b')][_0x0f23('0x3c')]};});_0x2a45a2[_0x0f23('0x3d')]=_['map'](_0x4f5875,_0x0f23('0x35'));_0x2a45a2['query']=_[_0x0f23('0x3e')](_0x43d803['query']);_0x2a45a2[_0x0f23('0x3f')]=_[_0x0f23('0x40')](_0x2a45a2['model'],_0x2a45a2['query']);_0x3ebe98[_0x0f23('0x41')]=_['intersection'](_0x2a45a2[_0x0f23('0x3d')],qs[_0x0f23('0x42')](_0x43d803[_0x0f23('0x43')][_0x0f23('0x42')]));_0x3ebe98['attributes']=_0x3ebe98[_0x0f23('0x41')]['length']?_0x3ebe98[_0x0f23('0x41')]:_0x2a45a2[_0x0f23('0x3d')];if(!_0x43d803[_0x0f23('0x43')][_0x0f23('0x44')](_0x0f23('0x45'))){_0x3ebe98['limit']=qs[_0x0f23('0x2d')](_0x43d803[_0x0f23('0x43')][_0x0f23('0x2d')]);_0x3ebe98['offset']=qs['offset'](_0x43d803['query']['offset']);}_0x3ebe98[_0x0f23('0x46')]=qs[_0x0f23('0x47')](_0x43d803[_0x0f23('0x43')][_0x0f23('0x47')]);_0x3ebe98[_0x0f23('0x48')]=qs[_0x0f23('0x3f')](_[_0x0f23('0x49')](_0x43d803[_0x0f23('0x43')],_0x2a45a2[_0x0f23('0x3f')]));if(_0x43d803[_0x0f23('0x43')][_0x0f23('0x4a')]){_0x3ebe98[_0x0f23('0x48')]=_['merge'](_0x3ebe98[_0x0f23('0x48')],{'$or':_['map'](_0x4f5875,function(_0x287c16){if(_0x287c16[_0x0f23('0x3b')]!=='VIRTUAL'){var _0x222718={};_0x222718[_0x287c16[_0x0f23('0x35')]]={'$like':'%'+_0x43d803['query'][_0x0f23('0x4a')]+'%'};return _0x222718;}})});}_0x3ebe98=_[_0x0f23('0x4b')]({},_0x3ebe98,_0x43d803['options']);var _0x47137b={'where':_0x3ebe98[_0x0f23('0x48')]};return db[_0x0f23('0x38')]['count'](_0x47137b)[_0x0f23('0x1c')](function(_0x4b7d22){_0x2aaa6c[_0x0f23('0x2b')]=_0x4b7d22;if(_0x43d803[_0x0f23('0x43')][_0x0f23('0x4c')]){_0x3ebe98['include']=[{'all':!![]}];}return db['Trunk']['findAll'](_0x3ebe98);})[_0x0f23('0x1c')](function(_0x514f8f){_0x2aaa6c[_0x0f23('0x4d')]=_0x514f8f;return _0x2aaa6c;})[_0x0f23('0x1c')](respondWithFilteredResult(_0x4b2d6c,_0x3ebe98))[_0x0f23('0x27')](handleError(_0x4b2d6c,null));};exports['show']=function(_0x23934b,_0x4898d8){var _0xe2298={'raw':![],'where':{'id':_0x23934b['params']['id']}},_0x583216={};_0x583216[_0x0f23('0x3d')]=_[_0x0f23('0x3e')](db[_0x0f23('0x38')][_0x0f23('0x39')]);_0x583216[_0x0f23('0x43')]=_['keys'](_0x23934b[_0x0f23('0x43')]);_0x583216[_0x0f23('0x3f')]=_['intersection'](_0x583216['model'],_0x583216[_0x0f23('0x43')]);_0xe2298['attributes']=_[_0x0f23('0x40')](_0x583216[_0x0f23('0x3d')],qs[_0x0f23('0x42')](_0x23934b['query'][_0x0f23('0x42')]));_0xe2298[_0x0f23('0x41')]=_0xe2298[_0x0f23('0x41')]['length']?_0xe2298['attributes']:_0x583216[_0x0f23('0x3d')];if(_0x23934b[_0x0f23('0x43')][_0x0f23('0x4c')]){_0xe2298[_0x0f23('0x4e')]=[{'all':!![]}];}_0xe2298=_[_0x0f23('0x4b')]({},_0xe2298,_0x23934b['options']);return db[_0x0f23('0x38')]['find'](_0xe2298)[_0x0f23('0x1c')](handleEntityNotFound(_0x4898d8,null))[_0x0f23('0x1c')](respondWithResult(_0x4898d8,null))['catch'](handleError(_0x4898d8,null));};exports['clone']=function(_0x2e6b45,_0x4ba023){var _0x4e2b1e={'where':{'id':_0x2e6b45['params']['id']}},_0x305e43={};_0x305e43['model']=_[_0x0f23('0x3e')](db[_0x0f23('0x38')]['rawAttributes']);_0x4e2b1e[_0x0f23('0x41')]=_['intersection'](_0x305e43[_0x0f23('0x3d')],qs[_0x0f23('0x42')](_0x2e6b45[_0x0f23('0x43')][_0x0f23('0x42')]));_0x4e2b1e[_0x0f23('0x41')]=_0x4e2b1e[_0x0f23('0x41')][_0x0f23('0x4f')]?_0x4e2b1e[_0x0f23('0x41')]:_0x305e43[_0x0f23('0x3d')];if(_0x2e6b45[_0x0f23('0x43')][_0x0f23('0x4c')]){_0x4e2b1e[_0x0f23('0x4e')]=[{'all':!![]}];}_0x4e2b1e=_[_0x0f23('0x4b')]({},_0x4e2b1e,_0x2e6b45['options']);return db[_0x0f23('0x38')][_0x0f23('0x50')](_0x4e2b1e)['then'](handleEntityNotFound(_0x4ba023,null))['then'](function(_0x3fd9db){if(_0x3fd9db){var _0x577a31=_0x3fd9db[_0x0f23('0x33')]({'plain':!![]});_0x577a31=qs[_0x0f23('0x51')](_0x577a31,['id',_0x0f23('0x52'),_0x0f23('0x53')]);_0x2e6b45['body']=_['omit'](_0x2e6b45['body'],['id',_0x0f23('0x52'),_0x0f23('0x53')]);return db[_0x0f23('0x38')][_0x0f23('0x54')](_['merge'](_0x577a31,_0x2e6b45[_0x0f23('0x55')]),{'include':_0x2e6b45[_0x0f23('0x43')][_0x0f23('0x4c')]?[{'all':!![]}]:undefined})[_0x0f23('0x1c')](function(_0x5429c8){var _0x45f05b=_0x2e6b45[_0x0f23('0x56')][_0x0f23('0x33')]({'plain':!![]});if(!_0x45f05b)throw new Error(_0x0f23('0x57'));if(_0x45f05b[_0x0f23('0x58')]===_0x0f23('0x56')){var _0x1031d2=_0x5429c8[_0x0f23('0x33')]({'plain':!![]});var _0x56ea4c=_0x0f23('0x59');return db['UserProfileSection'][_0x0f23('0x50')]({'where':{'name':_0x56ea4c,'userProfileId':_0x45f05b[_0x0f23('0x5a')]},'raw':!![]})[_0x0f23('0x1c')](function(_0x4455d9){if(_0x4455d9&&_0x4455d9[_0x0f23('0x5b')]===0x0){return db[_0x0f23('0x5c')][_0x0f23('0x54')]({'name':_0x1031d2['name'],'resourceId':_0x1031d2['id'],'type':_0x4455d9[_0x0f23('0x35')],'sectionId':_0x4455d9['id']},{})['then'](function(){return _0x5429c8;});}else{return _0x5429c8;}})['catch'](function(_0x28579b){logger[_0x0f23('0x22')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x28579b);throw _0x28579b;});}return _0x5429c8;});}})['then'](respondWithResult(_0x4ba023,0xc9))[_0x0f23('0x27')](handleError(_0x4ba023,null));};exports[_0x0f23('0x54')]=function(_0x1dc2b5,_0x5b52f9,_0x19af10){var _0x52d1ce;return db[_0x0f23('0x38')][_0x0f23('0x54')](_0x1dc2b5['body'],{'raw':!![]})[_0x0f23('0x1c')](function(_0x2b7c40){_0x52d1ce=_0x2b7c40;return db[_0x0f23('0x38')]['findAll']({'raw':!![]});})['then'](function(_0x26e340){var _0x16fadf=fs[_0x0f23('0x5d')](path['join'](config['root'],_0x0f23('0x5e')),'utf8');var _0xc28d57=fs['readFileSync'](path['join'](config['root'],'server/files/templates/registry.ejs'),_0x0f23('0x5f'));var _0x515ef9=ejs[_0x0f23('0x60')](_0x16fadf,{'trunks':_0x26e340||[]});fs[_0x0f23('0x61')]('/etc/asterisk/sip_xcally_trunks.conf',_0x515ef9);if(_0x52d1ce[_0x0f23('0x62')]){var _0x3d7502=ejs[_0x0f23('0x60')](_0xc28d57,{'trunks':_0x26e340||[]});fs[_0x0f23('0x61')](_0x0f23('0x63'),_0x3d7502);}})['then'](function(){return respondWithRpcPromise(_0x0f23('0x64'),_0x0f23('0x54'),{'module':'chan_sip.so'});})[_0x0f23('0x1c')](function(){var _0x3eeb45=_0x1dc2b5['user'][_0x0f23('0x33')]({'plain':!![]});if(!_0x3eeb45)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3eeb45[_0x0f23('0x58')]===_0x0f23('0x56')){var _0x4c3356=_0x52d1ce[_0x0f23('0x33')]({'plain':!![]});return db[_0x0f23('0x65')]['find']({'where':{'name':_0x0f23('0x59'),'userProfileId':_0x3eeb45[_0x0f23('0x5a')]},'raw':!![]})[_0x0f23('0x1c')](function(_0x1ca3d1){if(_0x1ca3d1&&_0x1ca3d1[_0x0f23('0x5b')]===0x0){return db[_0x0f23('0x5c')][_0x0f23('0x54')]({'name':_0x4c3356[_0x0f23('0x35')],'resourceId':_0x4c3356['id'],'type':_0x1ca3d1['name'],'sectionId':_0x1ca3d1['id']},{})[_0x0f23('0x1c')](function(){return _0x52d1ce;});}else{return _0x52d1ce;}})['catch'](function(_0x521bf2){logger[_0x0f23('0x22')](_0x0f23('0x66'),_0x521bf2);throw _0x521bf2;});}return _0x52d1ce;})[_0x0f23('0x1c')](respondWithResult(_0x5b52f9,0xc9))[_0x0f23('0x27')](handleError(_0x5b52f9,null));};exports[_0x0f23('0x67')]=function(_0x8d96e3,_0x40829c,_0x2e5476){var _0x344798;return db[_0x0f23('0x38')][_0x0f23('0x50')]({'where':{'id':_0x8d96e3[_0x0f23('0x68')]['id']}})[_0x0f23('0x1c')](handleEntityNotFound(_0x40829c,null))[_0x0f23('0x1c')](saveUpdates(_0x8d96e3[_0x0f23('0x55')],null))['then'](function(_0x4ff0e2){if(_0x4ff0e2){_0x344798=_0x4ff0e2;return db['Trunk'][_0x0f23('0x69')]({'raw':!![]});}})['then'](function(_0x293a28){if(_0x293a28){var _0x4e22d3=fs[_0x0f23('0x5d')](path[_0x0f23('0x6a')](config[_0x0f23('0x6b')],_0x0f23('0x5e')),_0x0f23('0x5f'));var _0x163dfd=fs[_0x0f23('0x5d')](path[_0x0f23('0x6a')](config[_0x0f23('0x6b')],_0x0f23('0x6c')),_0x0f23('0x5f'));var _0x27ee25=ejs[_0x0f23('0x60')](_0x4e22d3,{'trunks':_0x293a28||[]});fs[_0x0f23('0x61')](_0x0f23('0x6d'),_0x27ee25);var _0x22490b=ejs['render'](_0x163dfd,{'trunks':_0x293a28||[]});fs[_0x0f23('0x61')]('/etc/asterisk/sip_xcally_registers.conf',_0x22490b);return respondWithRpcPromise(_0x0f23('0x64'),'update',{'module':'chan_sip.so'});}return null;})['then'](function(_0x226d6e){if(_0x226d6e){return _0x344798;}})['then'](respondWithResult(_0x40829c,null))[_0x0f23('0x27')](handleError(_0x40829c,null));};exports[_0x0f23('0x32')]=function(_0x5c551f,_0x1d18c0,_0x43b6a8){var _0x3f60c5;return db[_0x0f23('0x38')][_0x0f23('0x50')]({'where':{'id':_0x5c551f[_0x0f23('0x68')]['id']}})[_0x0f23('0x1c')](handleEntityNotFound(_0x1d18c0,null))[_0x0f23('0x1c')](removeEntity(_0x1d18c0,null))['then'](function(){return db[_0x0f23('0x38')][_0x0f23('0x69')]({'raw':!![]});})[_0x0f23('0x1c')](function(_0x223215){var _0x54be0e=fs[_0x0f23('0x5d')](path[_0x0f23('0x6a')](config[_0x0f23('0x6b')],_0x0f23('0x5e')),'utf8');var _0x33ecd9=fs[_0x0f23('0x5d')](path[_0x0f23('0x6a')](config[_0x0f23('0x6b')],_0x0f23('0x6c')),_0x0f23('0x5f'));var _0xbba34c=ejs[_0x0f23('0x60')](_0x54be0e,{'trunks':_0x223215});var _0x1ab4c5=ejs[_0x0f23('0x60')](_0x33ecd9,{'trunks':_0x223215});fs[_0x0f23('0x61')]('/etc/asterisk/sip_xcally_trunks.conf',_0xbba34c);fs['writeFileSync'](_0x0f23('0x63'),_0x1ab4c5);return respondWithRpcPromise(_0x0f23('0x64'),_0x0f23('0x32'),{'module':_0x0f23('0x6e')});})[_0x0f23('0x27')](handleError(_0x1d18c0,null));};