From fe62710f763142e4ec3c07eae4cafca9cdcbf0b4 Mon Sep 17 00:00:00 2001 From: jb-alvarado Date: Sun, 3 May 2020 21:11:25 +0200 Subject: [PATCH] rename app, change api url, fix media op path --- ffplayout/api/apps.py | 5 --- ffplayout/api/migrations/0001_initial.py | 28 --------------- .../api/migrations/0002_messengepresets.py | 32 ------------------ ffplayout/{api => api_player}/__init__.py | 0 ffplayout/{api => api_player}/admin.py | 3 +- ffplayout/api_player/apps.py | 5 +++ .../migrations/__init__.py | 0 ffplayout/{api => api_player}/models.py | 0 ffplayout/{api => api_player}/serializers.py | 4 +-- ffplayout/{api => api_player}/tests.py | 0 ffplayout/api_player/urls.py | 26 ++++++++++++++ ffplayout/{api => api_player}/utils.py | 13 ++++--- ffplayout/{api => api_player}/views.py | 17 +++++----- ffplayout/db.sqlite3 | Bin 139264 -> 139264 bytes ffplayout/ffplayout/settings/common.py | 2 +- ffplayout/ffplayout/urls.py | 29 +++------------- ffplayout/frontend/pages/index.vue | 4 +-- ffplayout/frontend/pages/logging.vue | 4 +-- ffplayout/frontend/pages/media.vue | 12 +++---- ffplayout/frontend/pages/message.vue | 10 +++--- ffplayout/frontend/pages/player.vue | 6 ++-- ffplayout/frontend/plugins/axios.js | 2 +- ffplayout/frontend/store/config.js | 16 ++++----- ffplayout/frontend/store/media.js | 2 +- ffplayout/frontend/store/playlist.js | 2 +- 25 files changed, 82 insertions(+), 140 deletions(-) delete mode 100644 ffplayout/api/apps.py delete mode 100644 ffplayout/api/migrations/0001_initial.py delete mode 100644 ffplayout/api/migrations/0002_messengepresets.py rename ffplayout/{api => api_player}/__init__.py (100%) rename ffplayout/{api => api_player}/admin.py (82%) create mode 100644 ffplayout/api_player/apps.py rename ffplayout/{api => api_player}/migrations/__init__.py (100%) rename ffplayout/{api => api_player}/models.py (100%) rename ffplayout/{api => api_player}/serializers.py (97%) rename ffplayout/{api => api_player}/tests.py (100%) create mode 100644 ffplayout/api_player/urls.py rename ffplayout/{api => api_player}/utils.py (97%) rename ffplayout/{api => api_player}/views.py (93%) diff --git a/ffplayout/api/apps.py b/ffplayout/api/apps.py deleted file mode 100644 index d87006dd..00000000 --- a/ffplayout/api/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class ApiConfig(AppConfig): - name = 'api' diff --git a/ffplayout/api/migrations/0001_initial.py b/ffplayout/api/migrations/0001_initial.py deleted file mode 100644 index 7ba69868..00000000 --- a/ffplayout/api/migrations/0001_initial.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-16 09:27 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='GuiSettings', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('player_url', models.CharField(max_length=255)), - ('playout_config', models.CharField(default='/etc/ffplayout/ffplayout.yml', max_length=255)), - ('net_interface', models.CharField(choices=[('lo', 'lo'), ('br0', 'br0'), ('virbr0', 'virbr0'), ('eno1', 'eno1'), ('virbr0-nic', 'virbr0-nic')], default=None, max_length=20)), - ('media_disk', models.CharField(default='/', help_text='should be a mount point, for statistics', max_length=255)), - ('extra_extensions', models.CharField(blank=True, default='', help_text='file extensions, that are only visible in GUI', max_length=255, null=True)), - ], - options={ - 'verbose_name_plural': 'guisettings', - }, - ), - ] diff --git a/ffplayout/api/migrations/0002_messengepresets.py b/ffplayout/api/migrations/0002_messengepresets.py deleted file mode 100644 index 87b38f5b..00000000 --- a/ffplayout/api/migrations/0002_messengepresets.py +++ /dev/null @@ -1,32 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-28 13:47 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('api', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='MessengePresets', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(help_text='the preset name', max_length=255)), - ('message', models.CharField(blank=True, default='', max_length=1024, null=True)), - ('x', models.CharField(blank=True, default='', max_length=512, null=True)), - ('y', models.CharField(blank=True, default='', max_length=512, null=True)), - ('font_size', models.IntegerField(default=24)), - ('font_spacing', models.IntegerField(default=4)), - ('font_color', models.CharField(default='#ffffff', max_length=12)), - ('font_alpha', models.FloatField(default=1.0)), - ('show_box', models.BooleanField(default=True)), - ('box_color', models.CharField(default='#000000', max_length=12)), - ('box_alpha', models.FloatField(default=0.8)), - ('border_width', models.IntegerField(default=4)), - ('overall_alpha', models.CharField(blank=True, default='', max_length=255, null=True)), - ], - ), - ] diff --git a/ffplayout/api/__init__.py b/ffplayout/api_player/__init__.py similarity index 100% rename from ffplayout/api/__init__.py rename to ffplayout/api_player/__init__.py diff --git a/ffplayout/api/admin.py b/ffplayout/api_player/admin.py similarity index 82% rename from ffplayout/api/admin.py rename to ffplayout/api_player/admin.py index 595e4e28..02e3c895 100644 --- a/ffplayout/api/admin.py +++ b/ffplayout/api_player/admin.py @@ -1,7 +1,6 @@ +from api_player.models import GuiSettings from django.contrib import admin -from api.models import GuiSettings - class GuiSettingsAdmin(admin.ModelAdmin): diff --git a/ffplayout/api_player/apps.py b/ffplayout/api_player/apps.py new file mode 100644 index 00000000..43fc82da --- /dev/null +++ b/ffplayout/api_player/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ApiPlayerConfig(AppConfig): + name = 'api_player' diff --git a/ffplayout/api/migrations/__init__.py b/ffplayout/api_player/migrations/__init__.py similarity index 100% rename from ffplayout/api/migrations/__init__.py rename to ffplayout/api_player/migrations/__init__.py diff --git a/ffplayout/api/models.py b/ffplayout/api_player/models.py similarity index 100% rename from ffplayout/api/models.py rename to ffplayout/api_player/models.py diff --git a/ffplayout/api/serializers.py b/ffplayout/api_player/serializers.py similarity index 97% rename from ffplayout/api/serializers.py rename to ffplayout/api_player/serializers.py index 6245d748..bd3b4cb1 100644 --- a/ffplayout/api/serializers.py +++ b/ffplayout/api_player/serializers.py @@ -1,9 +1,7 @@ +from api_player.models import GuiSettings, MessengePresets from django.contrib.auth.models import User - from rest_framework import serializers -from api.models import GuiSettings, MessengePresets - class UserSerializer(serializers.ModelSerializer): new_password = serializers.CharField(write_only=True, required=False) diff --git a/ffplayout/api/tests.py b/ffplayout/api_player/tests.py similarity index 100% rename from ffplayout/api/tests.py rename to ffplayout/api_player/tests.py diff --git a/ffplayout/api_player/urls.py b/ffplayout/api_player/urls.py new file mode 100644 index 00000000..6e1a0d3f --- /dev/null +++ b/ffplayout/api_player/urls.py @@ -0,0 +1,26 @@ +from django.urls import include, path, re_path +from rest_framework import routers + +from . import views + +router = routers.DefaultRouter() +router.register(r'users', views.UserViewSet) +router.register(r'guisettings', views.GuiSettingsViewSet, 'guisettings') +router.register(r'messenger', views.MessengerViewSet, 'messenger') + +app_name = 'api_player' + +urlpatterns = [ + path('player/', include(router.urls)), + path('player/config/', views.Config.as_view()), + path('player/system/', views.SystemCtl.as_view()), + path('player/playlist/', views.Playlist.as_view()), + path('player/stats/', views.Statistics.as_view()), + path('player/log/', views.LogReader.as_view()), + path('player/current/user/', views.CurrentUserView.as_view()), + path('player/media/', views.Media.as_view()), + path('player/send/', views.MessegeSender.as_view()), + re_path(r'^player/media/upload/(?P[^/]+)$', + views.FileUpload.as_view()), + path('player/media/op/', views.FileOperations.as_view()), +] diff --git a/ffplayout/api/utils.py b/ffplayout/api_player/utils.py similarity index 97% rename from ffplayout/api/utils.py rename to ffplayout/api_player/utils.py index f09412a6..61857083 100644 --- a/ffplayout/api/utils.py +++ b/ffplayout/api_player/utils.py @@ -1,17 +1,17 @@ import json import os from platform import uname -from subprocess import run, PIPE, STDOUT +from subprocess import PIPE, STDOUT, run from time import sleep import psutil + import yaml import zmq +from api_player.models import GuiSettings from django.conf import settings -from pymediainfo import MediaInfo - -from api.models import GuiSettings from natsort import natsorted +from pymediainfo import MediaInfo def read_yaml(): @@ -244,8 +244,6 @@ def get_media_path(extensions, dir=None): media_dir = media_path.split('/')[-1] media_root = os.path.dirname(media_path) if not dir: - if not os.path.isdir(media_path): - return '' dir = media_path else: if '/..' in dir: @@ -257,7 +255,8 @@ def get_media_path(extensions, dir=None): if dir.startswith(media_dir): dir = dir[len(media_dir):] - dir = os.path.join(media_root, media_dir, os.path.abspath('/' + dir).strip('/')) + dir = os.path.join( + media_root, media_dir, os.path.abspath('/' + dir).strip('/')) for root, dirs, files in os.walk(dir, topdown=True): root = root.rstrip('/') diff --git a/ffplayout/api/views.py b/ffplayout/api_player/views.py similarity index 93% rename from ffplayout/api/views.py rename to ffplayout/api_player/views.py index cb3a5bf2..920a9d0e 100644 --- a/ffplayout/api/views.py +++ b/ffplayout/api_player/views.py @@ -2,9 +2,9 @@ import os import shutil from urllib.parse import unquote -from api.models import GuiSettings, MessengePresets -from api.serializers import (GuiSettingsSerializer, MessengerSerializer, - UserSerializer) +from api_player.models import GuiSettings, MessengePresets +from api_player.serializers import (GuiSettingsSerializer, MessengerSerializer, + UserSerializer) from django.contrib.auth.models import User from django_filters import rest_framework as filters from rest_framework import viewsets @@ -13,7 +13,7 @@ from rest_framework.response import Response from rest_framework.views import APIView from .utils import (PlayoutService, SystemStats, get_media_path, read_json, - read_yaml, write_json, write_yaml, read_log, send_message) + read_log, read_yaml, send_message, write_json, write_yaml) class CurrentUserView(APIView): @@ -71,7 +71,7 @@ class MessegeSender(APIView): class Config(APIView): """ read and write config from ffplayout engine - for reading endpoint is: http://127.0.0.1:8000/api/config/?config + for reading endpoint is: http://127.0.0.1:8000/api/player/config/?config """ parser_classes = [JSONParser] @@ -148,7 +148,8 @@ class LogReader(APIView): class Playlist(APIView): """ read and write config from ffplayout engine - for reading endpoint: http://127.0.0.1:8000/api/playlist/?date=2020-04-12 + for reading endpoint: + http://127.0.0.1:8000/api/player/playlist/?date=2020-04-12 """ def get(self, request, *args, **kwargs): @@ -176,7 +177,7 @@ class Playlist(APIView): class Statistics(APIView): """ get system statistics: cpu, ram, etc. - for reading, endpoint is: http://127.0.0.1:8000/api/stats/?stats=all + for reading, endpoint is: http://127.0.0.1:8000/api/player/stats/?stats=all """ def get(self, request, *args, **kwargs): @@ -192,7 +193,7 @@ class Statistics(APIView): class Media(APIView): """ get folder/files tree, for building a file explorer - for reading, endpoint is: http://127.0.0.1:8000/api/media/?path + for reading, endpoint is: http://127.0.0.1:8000/api/player/media/?path """ def get(self, request, *args, **kwargs): diff --git a/ffplayout/db.sqlite3 b/ffplayout/db.sqlite3 index 0d998b13e7759df774a990ffc92e11b8f247529e..efcf4107a820c1c4dc96106da0dc81cff8a5d77d 100644 GIT binary patch delta 2033 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 RX{YPL!8;v7_a|DP=O4)OYL);1 diff --git a/ffplayout/ffplayout/settings/common.py b/ffplayout/ffplayout/settings/common.py index 9f476e97..42468ab9 100644 --- a/ffplayout/ffplayout/settings/common.py +++ b/ffplayout/ffplayout/settings/common.py @@ -29,7 +29,7 @@ INSTALLED_APPS = [ 'django_filters', 'rest_framework', 'corsheaders', - 'api' + 'api_player' ] MIDDLEWARE = [ diff --git a/ffplayout/ffplayout/urls.py b/ffplayout/ffplayout/urls.py index 7c48bd0d..4f563404 100644 --- a/ffplayout/ffplayout/urls.py +++ b/ffplayout/ffplayout/urls.py @@ -14,34 +14,13 @@ Including another URLconf 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import include, path, re_path - -from rest_framework import routers -from api import views - -from rest_framework_simplejwt.views import ( - TokenObtainPairView, - TokenRefreshView, -) - -router = routers.DefaultRouter() -router.register(r'users', views.UserViewSet) -router.register(r'guisettings', views.GuiSettingsViewSet, 'guisettings') -router.register(r'messenger', views.MessengerViewSet, 'messenger') +from django.urls import include, path +from rest_framework_simplejwt.views import (TokenObtainPairView, + TokenRefreshView) urlpatterns = [ path('admin/', admin.site.urls), - path('api/', include(router.urls)), - path('api/config/', views.Config.as_view()), - path('api/system/', views.SystemCtl.as_view()), - path('api/playlist/', views.Playlist.as_view()), - path('api/stats/', views.Statistics.as_view()), - path('api/log/', views.LogReader.as_view()), - path('api/current/user/', views.CurrentUserView.as_view()), - path('api/media/', views.Media.as_view()), - path('api/send/', views.MessegeSender.as_view()), - re_path(r'^api/media/upload/(?P[^/]+)$', views.FileUpload.as_view()), - path('api/media/op/', views.FileOperations.as_view()), + path('api/', include('api_player.urls', namespace='api_player')), path('api-auth/', include( 'rest_framework.urls', namespace='rest_framework')), path('auth/token/', TokenObtainPairView.as_view(), diff --git a/ffplayout/frontend/pages/index.vue b/ffplayout/frontend/pages/index.vue index d68bb1e9..86de2ff4 100644 --- a/ffplayout/frontend/pages/index.vue +++ b/ffplayout/frontend/pages/index.vue @@ -210,13 +210,13 @@ export default { }, async sysStats () { - const response = await this.$axios.get('api/stats/?stats=all') + const response = await this.$axios.get('api/player/stats/?stats=all') this.stat = response.data if (process.browser) { this.interval = setInterval(async () => { await this.$store.dispatch('auth/inspectToken') - const response = await this.$axios.get('api/stats/?stats=all') + const response = await this.$axios.get('api/player/stats/?stats=all') this.stat = response.data }, 2000) } diff --git a/ffplayout/frontend/pages/logging.vue b/ffplayout/frontend/pages/logging.vue index 4a56ed50..fe734a49 100644 --- a/ffplayout/frontend/pages/logging.vue +++ b/ffplayout/frontend/pages/logging.vue @@ -75,7 +75,7 @@ export default { methods: { async getLog (type) { await this.$store.dispatch('auth/inspectToken') - const response = await this.$axios.get(`api/log/?type=${type}`) + const response = await this.$axios.get(`api/player/log/?type=${type}`) if (response.data.log) { this.currentLog = response.data.log @@ -83,7 +83,7 @@ export default { }, async getSystemLog () { await this.$store.dispatch('auth/inspectToken') - const response = await this.$axios.post('api/system/', { run: 'log' }) + const response = await this.$axios.post('api/player/system/', { run: 'log' }) if (response.data.data) { this.currentLog = response.data.data diff --git a/ffplayout/frontend/pages/media.vue b/ffplayout/frontend/pages/media.vue index 65d4bd95..ca7b651e 100644 --- a/ffplayout/frontend/pages/media.vue +++ b/ffplayout/frontend/pages/media.vue @@ -36,7 +36,7 @@ - + @@ -70,7 +70,7 @@ {{ file.file }} - + @@ -78,7 +78,7 @@ {{ file.duration | toMin }} - + @@ -276,7 +276,7 @@ export default { await this.$store.dispatch('auth/inspectToken') await this.$axios.post( - 'api/media/op/', + 'api/player/media/op/', { folder: this.folderName, path: this.crumbs.map(e => e.text).join('/') } ) @@ -322,7 +322,7 @@ export default { } await this.$axios.put( - `api/media/upload/${encodeURIComponent(file.name)}?path=${encodeURIComponent(this.crumbs.map(e => e.text).join('/'))}`, + `api/player/media/upload/${encodeURIComponent(file.name)}?path=${encodeURIComponent(this.crumbs.map(e => e.text).join('/'))}`, file, config ) @@ -403,7 +403,7 @@ export default { pathName = this.deleteSource } - await this.$axios.delete(`api/media/op/?file=${encodeURIComponent(file)}&path=${encodeURIComponent(pathName)}`) + await this.$axios.delete(`api/player/media/op/?file=${encodeURIComponent(file)}&path=${encodeURIComponent(pathName)}`) .catch(err => console.log(err)) this.$root.$emit('bv::hide::modal', 'delete-modal') diff --git a/ffplayout/frontend/pages/message.vue b/ffplayout/frontend/pages/message.vue index 09b7466b..fa49ec03 100644 --- a/ffplayout/frontend/pages/message.vue +++ b/ffplayout/frontend/pages/message.vue @@ -281,7 +281,7 @@ export default { if (preset) { req = `?name=${preset}` } - const response = await this.$axios.get(`api/messenger/${req}`) + const response = await this.$axios.get(`api/player/messenger/${req}`) if (response.data && !preset) { for (const item of response.data) { @@ -333,7 +333,7 @@ export default { overall_alpha: this.form.overallAlpha } - const response = await this.$axios.post('api/messenger/', preset) + const response = await this.$axios.post('api/player/messenger/', preset) if (response.status === 201) { this.success = true @@ -365,7 +365,7 @@ export default { overall_alpha: this.form.overallAlpha } - const response = await this.$axios.put(`api/messenger/${this.form.id}/`, preset) + const response = await this.$axios.put(`api/player/messenger/${this.form.id}/`, preset) if (response.status === 200) { this.success = true @@ -385,7 +385,7 @@ export default { async deletePreset () { await this.$store.dispatch('auth/inspectToken') if (this.selected) { - await this.$axios.delete(`api/messenger/${this.form.id}/`) + await this.$axios.delete(`api/player/messenger/${this.form.id}/`) } this.$bvModal.hide('delete-modal') @@ -411,7 +411,7 @@ export default { boxborderw: this.form.border } - const response = await this.$axios.post('api/send/', { data: obj }) + const response = await this.$axios.post('api/player/send/', { data: obj }) if (response.data && response.data.status.Success && response.data.status.Success === '0 Success') { this.success = true diff --git a/ffplayout/frontend/pages/player.vue b/ffplayout/frontend/pages/player.vue index e29a51bb..66006f7b 100644 --- a/ffplayout/frontend/pages/player.vue +++ b/ffplayout/frontend/pages/player.vue @@ -372,7 +372,7 @@ export default { async getStatus () { await this.$store.dispatch('auth/inspectToken') - const status = await this.$axios.post('api/system/', { run: 'status' }) + const status = await this.$axios.post('api/player/system/', { run: 'status' }) if (status.data.data && status.data.data === 'active') { this.isPlaying = 'is-playing' @@ -382,7 +382,7 @@ export default { }, async playoutControl (state) { await this.$store.dispatch('auth/inspectToken') - await this.$axios.post('api/system/', { run: state }) + await this.$axios.post('api/player/system/', { run: state }) setTimeout(() => { this.getStatus() }, 1000) }, @@ -447,7 +447,7 @@ export default { const saveList = this.playlist.map(({ begin, ...item }) => item) await this.$axios.post( - 'api/playlist/', + 'api/player/playlist/', { data: { channel: this.$store.state.playlist.playlistChannel, date: this.listDate, program: saveList } } ) } diff --git a/ffplayout/frontend/plugins/axios.js b/ffplayout/frontend/plugins/axios.js index 6cc779ba..f8f1b113 100644 --- a/ffplayout/frontend/plugins/axios.js +++ b/ffplayout/frontend/plugins/axios.js @@ -6,7 +6,7 @@ export default function ({ $axios, store, redirect }) { } // disable progress on auth and stats - if (config.url.includes('stats') || config.url.includes('auth')) { + if (config.url.includes('stats') || config.url.includes('auth') || config.url.includes('system')) { config.progress = false } }) diff --git a/ffplayout/frontend/store/config.js b/ffplayout/frontend/store/config.js index 9a605c40..ef25fe27 100644 --- a/ffplayout/frontend/store/config.js +++ b/ffplayout/frontend/store/config.js @@ -26,8 +26,8 @@ export const mutations = { export const actions = { async getGuiConfig ({ commit, state }) { - const options = await this.$axios.options('api/guisettings/') - const response = await this.$axios.get('api/guisettings/') + const options = await this.$axios.options('api/player/guisettings/') + const response = await this.$axios.get('api/player/guisettings/') if (options.data) { const choices = options.data.actions.POST.net_interface.choices.map(function (obj) { @@ -46,12 +46,12 @@ export const actions = { async setGuiConfig ({ commit, state }, obj) { const stringObj = JSON.parse(JSON.stringify(obj)) stringObj.extra_extensions = obj.extra_extensions.join(' ') - const update = await this.$axios.put('api/guisettings/1/', stringObj) + const update = await this.$axios.put('api/player/guisettings/1/', stringObj) return update }, async getPlayoutConfig ({ commit, state }) { - const response = await this.$axios.get('api/config/?configPlayout') + const response = await this.$axios.get('api/player/config/?configPlayout') if (response.data) { commit('UPDATE_PLAYLOUT_CONFIG', response.data) @@ -59,13 +59,13 @@ export const actions = { }, async setPlayoutConfig ({ commit, state }, obj) { - const update = await this.$axios.post('api/config/?configPlayout', { data: obj }) + const update = await this.$axios.post('api/player/config/?configPlayout', { data: obj }) return update }, async getUserConfig ({ commit, state }) { - const user = await this.$axios.get('api/current/user/') - const response = await this.$axios.get(`api/users/?username=${user.data.username}`) + const user = await this.$axios.get('api/player/current/user/') + const response = await this.$axios.get(`api/player/users/?username=${user.data.username}`) if (user.data) { commit('SET_CURRENT_USER', user.data.username) @@ -76,7 +76,7 @@ export const actions = { }, async setUserConfig ({ commit, state }, obj) { - const update = await this.$axios.put(`api/users/${obj.id}/`, obj) + const update = await this.$axios.put(`api/player/users/${obj.id}/`, obj) return update } } diff --git a/ffplayout/frontend/store/media.js b/ffplayout/frontend/store/media.js index db6489d0..f63109c8 100644 --- a/ffplayout/frontend/store/media.js +++ b/ffplayout/frontend/store/media.js @@ -20,7 +20,7 @@ export const actions = { async getTree ({ commit, dispatch, state }, { extensions, path }) { const crumbs = [] let root = '/' - const response = await this.$axios.get(`api/media/?extensions=${extensions}&path=${path}`) + const response = await this.$axios.get(`api/player/media/?extensions=${extensions}&path=${path}`) if (response.data.tree) { const pathArr = response.data.tree[0].split('/') diff --git a/ffplayout/frontend/store/playlist.js b/ffplayout/frontend/store/playlist.js index beb51249..afc23ac4 100644 --- a/ffplayout/frontend/store/playlist.js +++ b/ffplayout/frontend/store/playlist.js @@ -46,7 +46,7 @@ export const mutations = { export const actions = { async getPlaylist ({ commit, dispatch, state }, { dayStart, date }) { - const response = await this.$axios.get(`api/playlist/?date=${date}`) + const response = await this.$axios.get(`api/player/playlist/?date=${date}`) if (response.data && response.data.program) { commit('UPDATE_PLAYLIST_CHANNEL', response.data.channel)