See #228: now expose library track status in API

This commit is contained in:
Eliot Berriot 2018-05-24 18:33:26 +02:00
parent f12fe0047f
commit 4f8db661fa
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
4 changed files with 47 additions and 7 deletions

View file

@ -296,6 +296,7 @@ class APILibraryCreateSerializer(serializers.ModelSerializer):
class APILibraryTrackSerializer(serializers.ModelSerializer):
library = APILibrarySerializer()
status = serializers.SerializerMethodField()
class Meta:
model = models.LibraryTrack
@ -314,8 +315,20 @@ class APILibraryTrackSerializer(serializers.ModelSerializer):
'title',
'library',
'local_track_file',
'status',
]
def get_status(self, o):
try:
if o.local_track_file is not None:
return 'imported'
except music_models.TrackFile.DoesNotExist:
pass
for job in o.import_jobs.all():
if job.status == 'pending':
return 'import_pending'
return 'not_imported'
class FollowSerializer(serializers.Serializer):
id = serializers.URLField(max_length=500)