Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(api): implement file deletion #2960

Merged
merged 4 commits into from
May 5, 2024

Conversation

caveman99
Copy link
Contributor

Description

This adds a implementation of file delete to the Django API. Right now the code will only manipulate the database but leave the file in place.

No documentation change is needed as the API Documentation is auto-generated from the code.
Testing Notes

Playground server with new code successfully executed DELETE api call.

Copy link

codecov bot commented Feb 20, 2024

Codecov Report

Attention: Patch coverage is 84.84848% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 93.58%. Comparing base (2b119ad) to head (3c06112).
Report is 59 commits behind head on main.

Files Patch % Lines
api/libretime_api/storage/views/file.py 82.14% 5 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #2960       +/-   ##
===========================================
+ Coverage   70.36%   93.58%   +23.21%     
===========================================
  Files         149       95       -54     
  Lines        4033     1497     -2536     
===========================================
- Hits         2838     1401     -1437     
+ Misses       1195       96     -1099     
Flag Coverage Δ
analyzer ?
api 93.58% <84.84%> (-0.15%) ⬇️
api-client ?
playout ?
shared ?
worker ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@caveman99 caveman99 changed the title feat(api): implement file deletion - new fork feat(api): implement file deletion Feb 20, 2024
@jooola
Copy link
Contributor

jooola commented Apr 13, 2024

We are missing an error schema for our API error responses. Returning a simple HTTP status code is not enough.

@paddatrapper
Copy link
Contributor

We are missing an error schema for our API error responses. Returning a simple HTTP status code is not enough.

Do we want to define it here or merge this with basic human-readable errors for now and spend time defining it outside this?

@jooola jooola force-pushed the api-delete-files-new branch 2 times, most recently from 60396d0 to cd683e1 Compare May 5, 2024 20:06
@jooola
Copy link
Contributor

jooola commented May 5, 2024

We can implement a custom exceptions handler in the future, but I refactored the code to raise API exceptions instead of returning empty responses.

@caveman99 Let me know if you are ok with this implementation, and I'll be happy to merge this.

@caveman99
Copy link
Contributor Author

@jooola looks good to me ... :-)

@jooola jooola merged commit 9757b1b into libretime:main May 5, 2024
21 checks passed
jooola added a commit that referenced this pull request May 5, 2024
🤖 I have created a release *beep* *boop*
---


## [4.1.0](4.0.0...4.1.0)
(2024-05-05)


### Features

* **api:** implement file deletion
([#2960](#2960))
([9757b1b](9757b1b))
* build schedule events exclusively in playout
([#2946](#2946))
([40b4fc7](40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](#2881))
([95283ef](95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](#2903))
([170d095](170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](#2897))
([a95ce3d](a95ce3d))
* **legacy:** visual cue point editor
([#2947](#2947))
([da02e74](da02e74))
* start celery worker programmatically
([#2988](#2988))
([9c548b3](9c548b3))


### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](#2931))
([29f73e0](29f73e0)),
closes [#2910](#2910)
* apply replay gain preferences on scheduled files
([#2945](#2945))
([35d0dec](35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](#2899))
([3e05748](3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](#2963))
([22c303c](22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](#2972))
([9192aaa](9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](#2993))
([a2cf769](a2cf769))
* incorrect docker compose version
([#2975](#2975))
([634e6e2](634e6e2))
* **installer:** setup the worker entrypoint
([#2996](#2996))
([71b20ae](71b20ae))
* **legacy:** allow deleting file with api token
([#2995](#2995))
([86da46e](86da46e))
* **legacy:** allow updating track types code
([#2955](#2955))
([270aa08](270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](#2915))
([12dd477](12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](#2985))
([5ad69bf](5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](#2932))
([f4b260f](f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](#2943))
([37d1a76](37d1a76))
* remove obsolete docker compose version
([#2982](#2982))
([fb0584b](fb0584b))
* trigger legacy tasks manager every 5m
([#2987](#2987))
([7040d0e](7040d0e))
* **worker:** ensure celery beat is started
([#3007](#3007))
([bfde17e](bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
paddatrapper pushed a commit to libretime/website that referenced this pull request May 5, 2024
🤖 I have created a release *beep* *boop*
---

## [4.1.0](libretime/libretime@4.0.0...4.1.0)
(2024-05-05)

### Features

* **api:** implement file deletion
([#2960](libretime/libretime#2960))
([9757b1b](libretime/libretime@9757b1b))
* build schedule events exclusively in playout
([#2946](libretime/libretime#2946))
([40b4fc7](libretime/libretime@40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](libretime/libretime#2881))
([95283ef](libretime/libretime@95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](libretime/libretime#2903))
([170d095](libretime/libretime@170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](libretime/libretime#2897))
([a95ce3d](libretime/libretime@a95ce3d))
* **legacy:** visual cue point editor
([#2947](libretime/libretime#2947))
([da02e74](libretime/libretime@da02e74))
* start celery worker programmatically
([#2988](libretime/libretime#2988))
([9c548b3](libretime/libretime@9c548b3))

### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](libretime/libretime#2931))
([29f73e0](libretime/libretime@29f73e0)),
closes [#2910](libretime/libretime#2910)
* apply replay gain preferences on scheduled files
([#2945](libretime/libretime#2945))
([35d0dec](libretime/libretime@35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](libretime/libretime#2899))
([3e05748](libretime/libretime@3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](libretime/libretime#2963))
([22c303c](libretime/libretime@22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](libretime/libretime#2972))
([9192aaa](libretime/libretime@9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](libretime/libretime#2993))
([a2cf769](libretime/libretime@a2cf769))
* incorrect docker compose version
([#2975](libretime/libretime#2975))
([634e6e2](libretime/libretime@634e6e2))
* **installer:** setup the worker entrypoint
([#2996](libretime/libretime#2996))
([71b20ae](libretime/libretime@71b20ae))
* **legacy:** allow deleting file with api token
([#2995](libretime/libretime#2995))
([86da46e](libretime/libretime@86da46e))
* **legacy:** allow updating track types code
([#2955](libretime/libretime#2955))
([270aa08](libretime/libretime@270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](libretime/libretime#2915))
([12dd477](libretime/libretime@12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](libretime/libretime#2985))
([5ad69bf](libretime/libretime@5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](libretime/libretime#2932))
([f4b260f](libretime/libretime@f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](libretime/libretime#2943))
([37d1a76](libretime/libretime@37d1a76))
* remove obsolete docker compose version
([#2982](libretime/libretime#2982))
([fb0584b](libretime/libretime@fb0584b))
* trigger legacy tasks manager every 5m
([#2987](libretime/libretime#2987))
([7040d0e](libretime/libretime@7040d0e))
* **worker:** ensure celery beat is started
([#3007](libretime/libretime#3007))
([bfde17e](libretime/libretime@bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
libretime/libretime@1a985a4
paddatrapper pushed a commit to libretime/website that referenced this pull request May 5, 2024
🤖 I have created a release *beep* *boop*
---

## [4.1.0](libretime/libretime@4.0.0...4.1.0)
(2024-05-05)

### Features

* **api:** implement file deletion
([#2960](libretime/libretime#2960))
([9757b1b](libretime/libretime@9757b1b))
* build schedule events exclusively in playout
([#2946](libretime/libretime#2946))
([40b4fc7](libretime/libretime@40b4fc7))
* **legacy:** add aac/opus support to dashboard player
([#2881](libretime/libretime#2881))
([95283ef](libretime/libretime@95283ef))
* **legacy:** disable public radio page and redirect to login
([#2903](libretime/libretime#2903))
([170d095](libretime/libretime@170d095))
* **legacy:** trim overbooked shows after autoloading a playlist
([#2897](libretime/libretime#2897))
([a95ce3d](libretime/libretime@a95ce3d))
* **legacy:** visual cue point editor
([#2947](libretime/libretime#2947))
([da02e74](libretime/libretime@da02e74))
* start celery worker programmatically
([#2988](libretime/libretime#2988))
([9c548b3](libretime/libretime@9c548b3))

### Bug Fixes

* **analyzer:** backslash non utf-8 data when probing replaygain
([#2931](libretime/libretime#2931))
([29f73e0](libretime/libretime@29f73e0)),
closes [#2910](libretime/libretime#2910)
* apply replay gain preferences on scheduled files
([#2945](libretime/libretime#2945))
([35d0dec](libretime/libretime@35d0dec))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.49.1
([#2899](libretime/libretime#2899))
([3e05748](libretime/libretime@3e05748))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.51.1
([#2963](libretime/libretime#2963))
([22c303c](libretime/libretime@22c303c))
* **deps:** update dependency friendsofphp/php-cs-fixer to &lt;3.53.1
([#2972](libretime/libretime#2972))
([9192aaa](libretime/libretime@9192aaa))
* **deps:** update dependency gunicorn to v22 (security)
([#2993](libretime/libretime#2993))
([a2cf769](libretime/libretime@a2cf769))
* incorrect docker compose version
([#2975](libretime/libretime#2975))
([634e6e2](libretime/libretime@634e6e2))
* **installer:** setup the worker entrypoint
([#2996](libretime/libretime#2996))
([71b20ae](libretime/libretime@71b20ae))
* **legacy:** allow deleting file with api token
([#2995](libretime/libretime#2995))
([86da46e](libretime/libretime@86da46e))
* **legacy:** allow updating track types code
([#2955](libretime/libretime#2955))
([270aa08](libretime/libretime@270aa08))
* **legacy:** avoid crash when lot of streams in configuration
([#2915](libretime/libretime#2915))
([12dd477](libretime/libretime@12dd477))
* **legacy:** ensure validation is performed on the track type form
([#2985](libretime/libretime#2985))
([5ad69bf](libretime/libretime@5ad69bf))
* **legacy:** fix hidden fields in edit file form
([#2932](libretime/libretime#2932))
([f4b260f](libretime/libretime@f4b260f))
* **legacy:** replay_gain_modifier should be a system preference
([#2943](libretime/libretime#2943))
([37d1a76](libretime/libretime@37d1a76))
* remove obsolete docker compose version
([#2982](libretime/libretime#2982))
([fb0584b](libretime/libretime@fb0584b))
* trigger legacy tasks manager every 5m
([#2987](libretime/libretime#2987))
([7040d0e](libretime/libretime@7040d0e))
* **worker:** ensure celery beat is started
([#3007](libretime/libretime#3007))
([bfde17e](libretime/libretime@bfde17e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: jo <ljonas@riseup.net>
libretime/libretime@1a985a4
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.

None yet

3 participants