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

1""" 

2---------------------------------------------------------------------------- 

3 

4 METADATA: 

5 

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 

13 

14---------------------------------------------------------------------------- 

15 

16 LAST MODIFIED: 

17 

18 2025-03-04 By Jess Mann 

19 

20""" 

21 

22from __future__ import annotations 

23 

24from typing import Any, Optional 

25 

26from paperap.exceptions import ObjectNotFoundError 

27from paperap.models.user import Group, GroupQuerySet, User, UserQuerySet 

28from paperap.resources.base import BaseResource, StandardResource 

29 

30 

31class UserResource(StandardResource[User, UserQuerySet]): 

32 """Resource for managing users.""" 

33 

34 model_class = User 

35 queryset_class = UserQuerySet 

36 

37 def get_current(self) -> User: 

38 """ 

39 Get the current authenticated user. 

40 

41 Returns: 

42 The current user. 

43 

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) 

48 

49 

50class GroupResource(StandardResource[Group, GroupQuerySet]): 

51 """Resource for managing groups.""" 

52 

53 model_class = Group 

54 queryset_class = GroupQuerySet