mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 02:35:14 +00:00
Add version endpoint and fetch version information in Sidebar component and add api routes.
This commit is contained in:
parent
1374825b44
commit
22be164925
4 changed files with 44 additions and 9 deletions
|
|
@ -2,14 +2,15 @@
|
|||
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from .api_views import UserAgentViewSet, StreamProfileViewSet, CoreSettingsViewSet, environment
|
||||
from .api_views import UserAgentViewSet, StreamProfileViewSet, CoreSettingsViewSet, environment, version
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register(r'useragents', UserAgentViewSet, basename='useragent')
|
||||
router.register(r'streamprofiles', StreamProfileViewSet, basename='streamprofile')
|
||||
router.register(r'settings', CoreSettingsViewSet, basename='coresettings')
|
||||
|
||||
router.register(r'settings', CoreSettingsViewSet, basename='settings')
|
||||
urlpatterns = [
|
||||
path('settings/env/', environment, name='token_refresh'),
|
||||
path('version/', version, name='version'),
|
||||
path('', include(router.urls)),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -42,8 +42,7 @@ class CoreSettingsViewSet(viewsets.ModelViewSet):
|
|||
@api_view(['GET'])
|
||||
@permission_classes([IsAuthenticated])
|
||||
def environment(request):
|
||||
# Import version information
|
||||
from version import __version__, __build__
|
||||
|
||||
|
||||
public_ip = None
|
||||
local_ip = None
|
||||
|
|
@ -86,6 +85,18 @@ def environment(request):
|
|||
'country_code': country_code,
|
||||
'country_name': country_name,
|
||||
'env_mode': "dev" if os.getenv('DISPATCHARR_ENV') == "dev" else "prod",
|
||||
})
|
||||
|
||||
@swagger_auto_schema(
|
||||
method='get',
|
||||
operation_description="Get application version information",
|
||||
responses={200: "Version information"}
|
||||
)
|
||||
@api_view(['GET'])
|
||||
def version(request):
|
||||
# Import version information
|
||||
from version import __version__, __build__
|
||||
return Response({
|
||||
'version': __version__,
|
||||
'build': __build__,
|
||||
})
|
||||
})
|
||||
|
|
@ -899,6 +899,17 @@ export default class API {
|
|||
return retval;
|
||||
}
|
||||
|
||||
static async getVersion() {
|
||||
const response = await fetch(`${host}/api/core/version/`, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
|
||||
const retval = await response.json();
|
||||
return retval;
|
||||
}
|
||||
|
||||
static async updateSetting(values) {
|
||||
const { id, ...payload } = values;
|
||||
const response = await fetch(`${host}/api/core/settings/${id}/`, {
|
||||
|
|
|
|||
|
|
@ -74,10 +74,6 @@ const Sidebar = ({ collapsed, toggleDrawer, drawerWidth, miniDrawerWidth }) => {
|
|||
const fetchEnvironment = async () => {
|
||||
try {
|
||||
const envData = await API.getEnvironmentSettings();
|
||||
setAppVersion({
|
||||
version: envData.version || '',
|
||||
build: envData.build || ''
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch environment settings:', error);
|
||||
}
|
||||
|
|
@ -85,7 +81,23 @@ const Sidebar = ({ collapsed, toggleDrawer, drawerWidth, miniDrawerWidth }) => {
|
|||
|
||||
fetchEnvironment();
|
||||
}, []);
|
||||
// Fetch version information on component mount (regardless of authentication)
|
||||
useEffect(() => {
|
||||
const fetchVersion = async () => {
|
||||
try {
|
||||
const versionData = await API.getVersion();
|
||||
setAppVersion({
|
||||
version: versionData.version || '',
|
||||
build: versionData.build || ''
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch version information:', error);
|
||||
// Keep using default values from useState initialization
|
||||
}
|
||||
};
|
||||
|
||||
fetchVersion();
|
||||
}, []);
|
||||
// Navigation Items
|
||||
const navItems = [
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue