[REF] Add caching to function to determine if activity type is permitted. #13329
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.
Overview
This reduces the number of queries that run when calling Activity.get api
Before
Currently the Activity.get api gets a number of queries and then checks the permission for each one (this is something I'd like to change) and in each check it runs an sql query to determine if the contact can access the activity type of that activity. There are other places (forms, pages) where permissions are determined on multiple activities by running multiple queries
After
A list of accessible activity types is cached in a php static variable. The query only runs once
Technical Details
This is being cached in a php static variable rather than being queried multiple times.
It would be nice if this could be cached in Redis in a future iteration
We would want to be able to flush this whenever one of the following
happens
It seems like it would be good for functions that do caching to register themselves
against actions that may affect them.
Comments