feat(promo): Refactor CompanyPromoDetailView to RetrieveUpdateAPIView#31
Merged
RandomProgramm3r merged 1 commit intomainfrom Apr 26, 2025
Merged
feat(promo): Refactor CompanyPromoDetailView to RetrieveUpdateAPIView#31RandomProgramm3r merged 1 commit intomainfrom
RandomProgramm3r merged 1 commit intomainfrom
Conversation
Refactor CompanyPromoDetailView from a generic APIView to DRF’s RetrieveUpdateAPIView in order to leverage built-in retrieve/update behavior and simplify the implementation. Key changes: - Use `RetrieveUpdateAPIView` as the base class to get object lookup, serialization, validation and response handling for free - Remove manual `get()` and `patch()` methods - Add `business.permissions.IsPromoOwner` to `permission_classes` for declarative authorization - Define `queryset = Promo.objects.with_related().only(...).for_company()` on the view to centralize and optimize data access - Implement `with_related()` and `for_company(user)` on the Promo queryset/manager for efficient prefetching and filtering - Drop unused imports and old helper code This change reduces boilerplate, improves consistency with DRF idioms, and makes permission checks and queryset logic easier to maintain.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refactor CompanyPromoDetailView from a generic APIView to DRF’s RetrieveUpdateAPIView in order to leverage built-in retrieve/update behavior and simplify the implementation.
Key changes:
RetrieveUpdateAPIViewas the base class to get object lookup, serialization, validation and response handling for freeget()andpatch()methodsbusiness.permissions.IsPromoOwnertopermission_classesfor declarative authorizationqueryset = Promo.objects.with_related().only(...).for_company()on the view to centralize and optimize data accesswith_related()andfor_company(user)on the Promo queryset/manager for efficient prefetching and filteringThis change reduces boilerplate, improves consistency with DRF idioms, and makes permission checks and queryset logic easier to maintain.