diff --git a/src/synclean/service/user_service.py b/src/synclean/service/user_service.py index e69de29..367c8c9 100644 --- a/src/synclean/service/user_service.py +++ b/src/synclean/service/user_service.py @@ -0,0 +1,50 @@ +from typing import Optional, List + +from synclean.api.users import UserAPI +from synclean.models.enums import UserMediaOrderBy, Direction, UserOrderBy +from synclean.models.pagination import UserMediaPaginationParams, UserPaginationParams +from synclean.models.user import UserList +from synclean.models.user_media import UserMediaList + + +class UserService: + def __init__(self, user_api: UserAPI): + self.user_api = user_api + + def get_users_list_by_media( + self, + limit: int, + offset: int, + order_by: str, + direction: str, + search: Optional[str] + ) -> UserMediaList | None: + order_by_enum = UserMediaOrderBy(order_by) + direction_enum = Direction(direction) + + pagination_params = UserMediaPaginationParams(limit, offset, order_by_enum, direction_enum, search) + + users = self.user_api.get_users_list_by_media(pagination_params) + if users: + return users + return None + + def get_users_list( + self, + limit: int, + offset: int, + order_by: str, + direction: str, + search: Optional[str] + ) -> UserList | None: + order_by_enum = UserOrderBy(order_by) + direction_enum = Direction(direction) + + pagination_params = UserPaginationParams(limit, offset, order_by_enum, direction_enum, search) + users = self.user_api.get_users_list(pagination_params) + if users: + return users + return None + + def get_user_details_by_id(self, user_id: str): + pass \ No newline at end of file