Skip to content

Conversation

@myndaaa
Copy link
Owner

@myndaaa myndaaa commented Aug 22, 2025

  • removal of exiting song upload and stream functions which used to return just the file path or POST a song entity.
  • added missing album and albumsong data models crud functions and endpoints.
  • updates in backend/app/crud/artist.py and backend/app/schemas/artist.py for consistency with album/song usage.
  • file service, song service schemas and functionalities implemented to assist in uploading of images and songs, and rendering of images and streaming of songs
  • for song service, used mutagen library to extract audio metadata

Logic Implemented:

  • On upload, file is temporarily stored, validated then metadata is extracted. Once done a database record created with empty file_path, then file is moved to permanent location with unique filename format: {type}{id}{uuid}.{ext}), and database updated with actual file path.
  • For streaming /stream/song/{song_id} checks database for song existence, validates file exists on disk, then handles HTTP Range headers for seeking, parses "bytes=start-end" format and validates range bounds, then seeks to start position in file & reads only requested chunk [returns 206 Partial Content]

@myndaaa myndaaa self-assigned this Aug 22, 2025
@myndaaa myndaaa changed the base branch from sub-feat/crud-playlist to dev August 22, 2025 09:26
- genre search is case insensitive
- genre name taken check is case insensitive
- no redundant double GET endpoints for genre, only one get endpoint to get all and get via query param.
- Get endpoint allows close matches
- fixed redundant and useless usage of /admin endpoints to : no deletion option for genre, only disable option., admin see all genre others only active ones
- single db call for genre create, removed prechecks and returning exception error based on crud returns
…as {name} in endpoints which might have whitespaces.

- added fuzzy search to song.
- rmeoved /search endpoint in song and resuing current get endpoint with query params
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants