Coverage for src/paperap/resources/users.py: 80%
15 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-20 13:17 -0400
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-20 13:17 -0400
1"""
2----------------------------------------------------------------------------
4 METADATA:
6 File: users.py
7 Project: paperap
8 Created: 2025-03-04
9 Version: 0.0.8
10 Author: Jess Mann
11 Email: jess@jmann.me
12 Copyright (c) 2025 Jess Mann
14----------------------------------------------------------------------------
16 LAST MODIFIED:
18 2025-03-04 By Jess Mann
20"""
22from __future__ import annotations
24from typing import Any, Optional
26from paperap.exceptions import ObjectNotFoundError
27from paperap.models.user import Group, GroupQuerySet, User, UserQuerySet
28from paperap.resources.base import BaseResource, StandardResource
31class UserResource(StandardResource[User, UserQuerySet]):
32 """Resource for managing users."""
34 model_class = User
35 queryset_class = UserQuerySet
37 def get_current(self) -> User:
38 """
39 Get the current authenticated user.
41 Returns:
42 The current user.
44 """
45 if not (response := self.client.request("GET", "users/me/")):
46 raise ObjectNotFoundError("Failed to get current user")
47 return User.from_dict(response)
50class GroupResource(StandardResource[Group, GroupQuerySet]):
51 """Resource for managing groups."""
53 model_class = Group
54 queryset_class = GroupQuerySet