ohmyapi 0.1.9__py3-none-any.whl → 0.1.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,4 +4,5 @@ from .routes import (
4
4
  require_authenticated,
5
5
  require_admin,
6
6
  require_staff,
7
+ require_group,
7
8
  )
@@ -95,7 +95,7 @@ async def require_admin(current_user: User = Depends(get_current_user)) -> User:
95
95
 
96
96
  async def require_staff(current_user: User = Depends(get_current_user)) -> User:
97
97
  """Ensure the current user is a staff member."""
98
- if not current_user.is_staff:
98
+ if not current_user.is_admin and not current_user.is_staff:
99
99
  raise HTTPException(403, "Staff privileges required")
100
100
  return current_user
101
101
 
@@ -152,17 +152,13 @@ async def refresh_token(refresh_token: str):
152
152
  return {"access_token": new_access, "token_type": "bearer"}
153
153
 
154
154
 
155
+ @router.get("/introspect")
156
+ async def introspect(token: Dict = Depends(get_token)):
157
+ return token
158
+
159
+
155
160
  @router.get("/me")
156
161
  async def me(user: User = Depends(get_current_user)):
157
162
  """Return the currently authenticated user."""
158
- return {
159
- "email": user.email,
160
- "username": user.username,
161
- "is_admin": user.is_admin,
162
- "is_staff": user.is_staff,
163
- }
164
-
163
+ return user
165
164
 
166
- @router.get("/introspect")
167
- async def introspect(token: Dict = Depends(get_token)):
168
- return token
@@ -1,11 +1,15 @@
1
1
  from ohmyapi.router import APIRouter
2
+
2
3
  from . import models
3
4
 
4
- router = APIRouter(prefix="/{{ app_name }}")
5
+ # Expose your app's routes via `router = fastapi.APIRouter`.
6
+ # Use prefixes wisely to avoid cross-app namespace-collisions.
7
+ # Tags improve the UX of the OpenAPI docs at /docs.
8
+ router = APIRouter(prefix="/{{ app_name }}", tags=[{{ app_name }}])
5
9
 
6
10
 
7
11
  @router.get("/")
8
- def ping():
12
+ def hello_world():
9
13
  return {
10
14
  "project": "{{ project_name }}",
11
15
  "app": "{{ app_name }}",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ohmyapi
3
- Version: 0.1.9
3
+ Version: 0.1.11
4
4
  Summary: A Django-like but async web-framework based on FastAPI and TortoiseORM.
5
5
  License-Expression: MIT
6
6
  Keywords: fastapi,tortoise,orm,async,web-framework
@@ -158,7 +158,10 @@ from ohmyapi.db.exceptions import DoesNotExist
158
158
 
159
159
  from .models import Tournament
160
160
 
161
- router = APIRouter(prefix="/tournament")
161
+ # Expose your app's routes via `router = fastapi.APIRouter`.
162
+ # Use prefixes wisely to avoid cross-app namespace-collisions.
163
+ # Tags improve the UX of the OpenAPI docs at /docs.
164
+ router = APIRouter(prefix="/tournament", tags=['Tournament'])
162
165
 
163
166
 
164
167
  @router.get("/")
@@ -291,7 +294,6 @@ Use Tortoise's `Manager` to implement model-level permissions.
291
294
 
292
295
  ```python
293
296
  from ohmyapi.db import Manager
294
- from typing import Callable
295
297
 
296
298
 
297
299
  class TeamManager(Manager):
@@ -2,15 +2,15 @@ ohmyapi/__init__.py,sha256=UmLNQImTbKvHEgwQB2Wsyl6fq88X92imL9QZYJpQX4I,18
2
2
  ohmyapi/__main__.py,sha256=wcCrL4PjG51r5wVKqJhcoJPTLfHW0wNbD31DrUN0MWI,28
3
3
  ohmyapi/builtin/auth/__init__.py,sha256=TY1RKgwWmJ6FKz_v4J3m0Ang69qSmtVDLe4rqjLk4-E,69
4
4
  ohmyapi/builtin/auth/models.py,sha256=Xsxn9m5RTgY2a0PPfW3wTj77ocuuISytdl4ec_TR_kw,1524
5
- ohmyapi/builtin/auth/permissions.py,sha256=NKljLhgEHcEIlzpWgqFyz-1PeCT2u0Vqkja4xy-Zj68,126
6
- ohmyapi/builtin/auth/routes.py,sha256=DxlVzHSdMIbKMnWXMMGj_M-jUMFLHTt8avzBviM7Ia0,5625
5
+ ohmyapi/builtin/auth/permissions.py,sha256=jf-I2b9rIOw2EF4Kga-_Bz1ZPPHU0vHNaXGrDQSwhSI,145
6
+ ohmyapi/builtin/auth/routes.py,sha256=iMxmgP6TSpMrtSKf-g7mc60NcOiw8FRkngUroalGCyk,5519
7
7
  ohmyapi/cli.py,sha256=ZJVBRpSS297y00H4zffYQzkeIIVmVpGS4BYGpxT1FPo,3430
8
8
  ohmyapi/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  ohmyapi/core/runtime.py,sha256=l5zffc4VTwQOo7G9mfiYHsPGapMONRX_jtO_z9QaKHU,8577
10
10
  ohmyapi/core/scaffolding.py,sha256=iMymscokJ-YqzB0ZTC-gcc2T71o73577j9tnb2x8lH8,2572
11
11
  ohmyapi/core/templates/app/__init__.py.j2,sha256=QwVIQVUGZVhdH1d4NrvL7NTsK4-T4cihzYs8UVX2dt4,43
12
12
  ohmyapi/core/templates/app/models.py.j2,sha256=_3w-vFJ5fgsmncsCv34k_wyCMF78jufbSSglns4gbb0,119
13
- ohmyapi/core/templates/app/routes.py.j2,sha256=Ee3xeVdM_G5-TRw14_C6siJTrEXtnRUD5xhcHCbu5QA,229
13
+ ohmyapi/core/templates/app/routes.py.j2,sha256=o3XEBZDfHRhodx-6rX1ebnKpqqd-QApfw9ggruWl6y8,436
14
14
  ohmyapi/core/templates/project/README.md.j2,sha256=SjR4JIrg-8XRE-UntUDwiw8jDpYitD_UjwoKkYJ7GLw,22
15
15
  ohmyapi/core/templates/project/pyproject.toml.j2,sha256=X0VS6YT9aL3vpHFKPTfLFsdpD8423nY57ySQpSTMxmQ,895
16
16
  ohmyapi/core/templates/project/settings.py.j2,sha256=RBKGB8MZWPM3Bp0a57Y1YrSvSXxh502TUnJqbbu48Ig,138
@@ -19,7 +19,7 @@ ohmyapi/db/exceptions.py,sha256=I7AubrdqQF_UvAvzKqz2ve08-BkXHzEWXnwG300StHE,35
19
19
  ohmyapi/db/model/__init__.py,sha256=k3StTNuKatpwZo_Z5JBFa-927eJrzibFE8U4SA82asc,32
20
20
  ohmyapi/db/model/model.py,sha256=BajFtLlQ1s0mZ2hj-_JNQhLQmxuVe-Lw2LuW5t2C7Rw,1579
21
21
  ohmyapi/router.py,sha256=hutccsrP9RT8W5O6uBDhOJehwqrkRoPzaUI5zoHPh9A,55
22
- ohmyapi-0.1.9.dist-info/METADATA,sha256=9eAyhG-3i6ImpmWhEQaXlfGle9NGvysMCsSqbJ4e3Jc,8065
23
- ohmyapi-0.1.9.dist-info/WHEEL,sha256=M5asmiAlL6HEcOq52Yi5mmk9KmTVjY2RDPtO4p9DMrc,88
24
- ohmyapi-0.1.9.dist-info/entry_points.txt,sha256=wb3lw8-meAlpiv1mqcQ3m25ukL7djagU_w89GkrC37k,43
25
- ohmyapi-0.1.9.dist-info/RECORD,,
22
+ ohmyapi-0.1.11.dist-info/METADATA,sha256=GrlZqJvBkvNdRy-8KvRptZfoxF-gAChKDqvsZqUsBC0,8235
23
+ ohmyapi-0.1.11.dist-info/WHEEL,sha256=M5asmiAlL6HEcOq52Yi5mmk9KmTVjY2RDPtO4p9DMrc,88
24
+ ohmyapi-0.1.11.dist-info/entry_points.txt,sha256=wb3lw8-meAlpiv1mqcQ3m25ukL7djagU_w89GkrC37k,43
25
+ ohmyapi-0.1.11.dist-info/RECORD,,