PUT with the same preview_id twice should be a 200 no-op, and DELETE on
an asset with no preview set should still return 204. The existing test
file covered set/clear happy paths and the 404/400 error cases but did
not exercise idempotence, which is part of the documented contract for
both verbs.
- Drop unused 'result' assignment in clear_asset_preview_route (DELETE
returns 204, the result isn't needed).
- Remove unused 'pytest' import from test_preview.py.
- PUT /api/assets/{id}/preview: sets the preview asset for an existing asset,
returns the full updated Asset object. Returns 404 if asset ID doesn't exist.
- DELETE /api/assets/{id}/preview: clears the preview asset link, returns 204.
Returns 404 if asset ID doesn't exist.
Added OpenAPI spec entries under the assets tag with no x-runtime restriction.
Implemented handlers using the existing set_asset_preview service function.
Added integration tests covering happy paths and 404 cases.
Co-authored-by: Matt Miller <MillerMedia@users.noreply.github.com>