🚀 feat(store.py): update get_components function to use async/await syntax for querying and counting components to improve readability and maintainability
🚀 feat(store.py): update read_component function to use async/await syntax for downloading component from the store to improve performance and avoid blocking the event loop
🚀 feat(store.py): update get_tags function to use async/await syntax for getting tags from the store to improve performance and avoid blocking the event loop
🚀 feat(store.py): update get_list_of_components_liked_by_user function to use async/await syntax for getting user likes from the store to improve performance and avoid blocking the event loop
🚀 feat(store.py): update like_component function to use async/await syntax for liking a component and getting the updated likes count from the store to improve performance and avoid blocking the event loop
🐛 fix(service.py): change _get method to async to make it compatible with async requests
✨ feat(service.py): change call_webhook method to async to make it compatible with async requests
🐛 fix(service.py): change count_components method to async to make it compatible with async requests
✨ feat(service.py): change query_components method to async to make it compatible with async requests
🐛 fix(service.py): change get_liked_by_user_components method to async to make it compatible with async requests
✨ feat(service.py): change get_components_in_users_collection method to async to make it compatible with async requests
🐛 fix(service.py): change download method to async to make it compatible with async requests
✨ feat(service.py): change upload method to async to make it compatible with async requests
🐛 fix(service.py): change get_tags method to async to make it compatible with async requests
✨ feat(service.py): change get_user_likes method to async to make it compatible with async requests
🐛 fix(service.py): change get_component_likes_count method to async to make it compatible with async requests
✨ feat(service.py): change like_component method to async to make it compatible with async requests
🐛 fix(utils.py): change update_components_with_user_data method to async to make it compatible with async requests
✨ feat(store.py): add build_liked_filter method to build filter conditions for querying liked components
✨ feat(store.py): add build_tags_filter method to build filter conditions for querying components with specific tags
✨ feat(store.py): add build_filter_conditions method to build filter conditions for querying components with various filters
✨ feat(store.py): modify query_components method to accept filter_conditions parameter for querying components with filters
🔧 chore(utils.py): reorder imports in get_factories_and_deps function
🔧 chore(utils.py): reorder imports in initialize_session_service function
✨ feat(store.py): add support for filtering components by liked status to get_components function
🐛 fix(store.py): remove in_user_collection attribute from ListComponentResponse schema as it is not used
🐛 fix(service.py): change _get method signature to accept Optional parameters and add type hints
✨ feat(service.py): add build_tags_filter method to build the tags filter for get_components function
🐛 fix(service.py): remove filter_by_user parameter from count_components function and adjust logic accordingly
✨ feat(service.py): add liked parameter to get_components function to filter components by liked status
🐛 fix(service.py): change get_components_in_users_collection method parameter type from List[UUID] to List[str]
🐛 fix(service.py): change download method parameter type from str to UUID
🐛 fix(utils.py): change update_components_with_user_data function parameter type from List["ListComponentResponse"] to List[ListComponentResponse]
🚀 feat(store.py): add support for pagination in get_components endpoint to limit the number of results returned
🔧 fix(store.py): fix count_components endpoint to handle cases where the number of results is less than the limit
✨ feat(store.py): add support for user_data_context to fetch and set user data to the context variable
🐛 fix(store.py): handle HTTPStatusError when fetching user data and raise ValueError for invalid API key
🐛 fix(service.py): handle HTTPStatusError when fetching user data and raise ValueError for invalid API key
🐛 fix(service.py): return count as int in count_components method
The variable `result` is updated with the value of `updated_result` after calling the `update_components_with_user_data` function. This change improves code readability and makes the intention clearer.
🔧 fix(service.py): add search, status, tags, and sort parameters to query_components function to enable filtering and sorting of components
✨ feat(service.py): add build_search_filter_conditions method to build filter conditions for search query in query_components function
🔧 chore(service.py): include 'last_tested_version' field in the list of fields to retrieve from the store API for better tracking of component versions
The logic for updating the `likes_count` and `liked_by_user` state variables in the `handleLike` function was incorrect. This commit fixes the logic to correctly update the state variables based on the previous values. Additionally, it adds error handling for the `postLikeComponent` API call and sets the `likes_count` and `liked_by_user` state variables to their previous values in case of an error.
🐛 fix(service.py): fix incorrect variable name in get_component_likes_count method
🐛 fix(service.py): convert likes count to integer to handle unexpected string values
🐛 fix(service.py): convert component_id to string before sending it in the request payload
✨ feat(schema.py): update UsersLikesResponse model to include likes_count and liked_by_user fields
✨ feat(service.py): add get_component_likes_count method to retrieve the number of likes for a component
🐛 fix(service.py): remove unused user_data parameter in get_liked_by_user_components function
🐛 fix(utils.py): rename in_users_collection attribute to in_user_collection for consistency
✨ feat(store.py): add support for user_data_context context manager to fetch and set user data for requests made inside the context
✨ feat(store.py): add support for in_user_collection attribute in ListComponentResponse schema to indicate if a component is in the user's collection
🐛 fix(store.py): fix get_liked_by_user_components function to use user_data_var context variable instead of making the request multiple times
🐛 fix(store.py): fix get_components_in_users_collection function to use user_data_var context variable instead of making the request multiple times
✨ feat(store.py): add update_components_with_user_data function to update components with user data (liked_by_user and in_users_collection attributes)
🐛 fix(schema.py): remove default value for liked_by_user attribute in ListComponentResponse
The indentation issue in `store.py` was causing the code to execute the wrong logic. The unnecessary comments were removed to improve code readability.
In `schema.py`, the default value for the `liked_by_user` attribute in the `ListComponentResponse` class was removed to ensure that it is only set when needed.
🔧 fix(schema.py): add liked_by_user field to ListComponentResponse schema
🔧 fix(service.py): add get_liked_by_user_components method to StoreService to retrieve liked components by user
The code was removing "page" and "limit" parameters from the params dictionary, but these parameters were not being used afterwards. Removing this unnecessary code improves code readability and maintainability.
The code was previously responsible for creating metadata for a component based on the nodes it contains. However, this functionality is no longer needed and has been removed to simplify the code and improve maintainability.
The `create_component` function in `store.py` has been modified to include the total count of each type in the metadata dictionary. This change improves the structure of the metadata and provides more comprehensive information about the types and their counts in the nodes.