Coverage for src/paperap/resources/users.py: 77%
13 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-11 21:37 -0400
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-11 21:37 -0400
1"""
2----------------------------------------------------------------------------
4 METADATA:
6 File: users.py
7 Project: paperap
8 Created: 2025-03-04
9 Version: 0.0.5
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
36 def get_current(self) -> User:
37 """
38 Get the current authenticated user.
40 Returns:
41 The current user.
43 """
44 if not (response := self.client.request("GET", "users/me/")):
45 raise ObjectNotFoundError("Failed to get current user")
46 return User.from_dict(response)
49class GroupResource(StandardResource[Group, GroupQuerySet]):
50 """Resource for managing groups."""
52 model_class = Group