Move utility functions to utils.

This commit is contained in:
Tom Hacohen 2020-12-27 18:54:06 +02:00
parent 629a84f432
commit 13d4121fc2
2 changed files with 18 additions and 14 deletions

View File

@ -1,4 +1,3 @@
import dataclasses
import typing as t import typing as t
from asgiref.sync import sync_to_async from asgiref.sync import sync_to_async
@ -8,7 +7,7 @@ from django.core.files.base import ContentFile
from django.db import transaction from django.db import transaction
from django.db.models import Q from django.db.models import Q
from django.db.models import QuerySet from django.db.models import QuerySet
from fastapi import APIRouter, Depends, status, Query, Request from fastapi import APIRouter, Depends, status, Request
from pydantic import BaseModel from pydantic import BaseModel
from django_etebase import models from django_etebase import models
@ -16,7 +15,7 @@ from .authentication import get_authenticated_user
from .exceptions import ValidationError, transform_validation_error from .exceptions import ValidationError, transform_validation_error
from .msgpack import MsgpackRoute, MsgpackResponse from .msgpack import MsgpackRoute, MsgpackResponse
from .stoken_handler import filter_by_stoken_and_limit, filter_by_stoken, get_stoken_obj, get_queryset_stoken from .stoken_handler import filter_by_stoken_and_limit, filter_by_stoken, get_stoken_obj, get_queryset_stoken
from .utils import get_object_or_404 from .utils import get_object_or_404, Context, Prefetch, PrefetchQuery
User = get_user_model() User = get_user_model()
collection_router = APIRouter(route_class=MsgpackRoute) collection_router = APIRouter(route_class=MsgpackRoute)
@ -24,16 +23,6 @@ default_queryset: QuerySet = models.Collection.objects.all()
default_item_queryset: QuerySet = models.CollectionItem.objects.all() default_item_queryset: QuerySet = models.CollectionItem.objects.all()
Prefetch = t.Literal["auto", "medium"]
PrefetchQuery = Query(default="auto")
@dataclasses.dataclass
class Context:
user: t.Optional[User]
prefetch: t.Optional[Prefetch]
class ListMulti(BaseModel): class ListMulti(BaseModel):
collectionTypes: t.List[bytes] collectionTypes: t.List[bytes]

View File

@ -1,10 +1,25 @@
from fastapi import status import dataclasses
import typing as t
from fastapi import status, Query
from django.db.models import QuerySet from django.db.models import QuerySet
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.contrib.auth import get_user_model
from .exceptions import ValidationError from .exceptions import ValidationError
User = get_user_model()
Prefetch = t.Literal["auto", "medium"]
PrefetchQuery = Query(default="auto")
@dataclasses.dataclass
class Context:
user: t.Optional[User]
prefetch: t.Optional[Prefetch]
def get_object_or_404(queryset: QuerySet, **kwargs): def get_object_or_404(queryset: QuerySet, **kwargs):
try: try: