fix(api): allow importing single files using fs-import API endpoint
This commit is contained in:
parent
b4b8a36516
commit
bf1f146b63
|
@ -1,3 +1,5 @@
|
|||
import os
|
||||
import pathlib
|
||||
import urllib.parse
|
||||
|
||||
from django import urls
|
||||
|
@ -884,13 +886,17 @@ class FSImportSerializer(serializers.Serializer):
|
|||
prune = serializers.BooleanField(required=False, default=True)
|
||||
outbox = serializers.BooleanField(required=False, default=False)
|
||||
broadcast = serializers.BooleanField(required=False, default=False)
|
||||
replace = serializers.BooleanField(required=False, default=False)
|
||||
batch_size = serializers.IntegerField(required=False, default=1000)
|
||||
verbosity = serializers.IntegerField(required=False, default=1)
|
||||
|
||||
def validate_path(self, value):
|
||||
try:
|
||||
utils.browse_dir(settings.MUSIC_DIRECTORY_PATH, value)
|
||||
except (NotADirectoryError, FileNotFoundError, ValueError):
|
||||
except NotADirectoryError:
|
||||
if not os.path.isfile(pathlib.Path(settings.MUSIC_DIRECTORY_PATH) / value):
|
||||
raise serializers.ValidationError("Invalid path")
|
||||
except (FileNotFoundError, ValueError):
|
||||
raise serializers.ValidationError("Invalid path")
|
||||
|
||||
return value
|
||||
|
|
|
@ -1209,6 +1209,7 @@ def fs_import(
|
|||
prune=True,
|
||||
outbox=False,
|
||||
broadcast=False,
|
||||
replace=False,
|
||||
batch_size=1000,
|
||||
verbosity=1,
|
||||
):
|
||||
|
@ -1229,7 +1230,7 @@ def fs_import(
|
|||
"batch_size": batch_size,
|
||||
"async_": False,
|
||||
"prune": prune,
|
||||
"replace": False,
|
||||
"replace": replace,
|
||||
"verbosity": verbosity,
|
||||
"exit_on_failure": False,
|
||||
"outbox": outbox,
|
||||
|
|
|
@ -386,6 +386,7 @@ class LibraryViewSet(
|
|||
prune=serializer.validated_data["prune"],
|
||||
outbox=serializer.validated_data["outbox"],
|
||||
broadcast=serializer.validated_data["broadcast"],
|
||||
replace=serializer.validated_data["replace"],
|
||||
batch_size=serializer.validated_data["batch_size"],
|
||||
verbosity=serializer.validated_data["verbosity"],
|
||||
)
|
||||
|
|
|
@ -1528,6 +1528,7 @@ def test_fs_import_post(
|
|||
prune=True,
|
||||
outbox=False,
|
||||
broadcast=False,
|
||||
replace=False,
|
||||
batch_size=1000,
|
||||
verbosity=1,
|
||||
)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Allow importing single files using fs-import API endpoint
|
Loading…
Reference in New Issue