46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import asyncio
|
|
from pathlib import Path
|
|
import os
|
|
|
|
import inject
|
|
import markdown
|
|
from litestar import (
|
|
Controller,
|
|
get,
|
|
post,
|
|
MediaType,
|
|
Litestar,
|
|
)
|
|
from litestar.enums import RequestEncodingType
|
|
from litestar.datastructures import UploadFile
|
|
from litestar.params import Body
|
|
from litestar.exceptions import HTTPException
|
|
from litestar.contrib.jinja import JinjaTemplateEngine
|
|
from litestar.template.config import TemplateConfig
|
|
from litestar.response import Template
|
|
from litestar.static_files import create_static_files_router
|
|
|
|
from server.infra import logger
|
|
from server.config import get_app_config
|
|
from server.infra.cache import LocalCacheRepository
|
|
from server.infra.db import AsyncDB
|
|
from server.modules.descriptions import CharactersService, Breed, CharactersRepository
|
|
from server.modules.recognizer import RecognizerService, RecognizerRepository
|
|
|
|
class BreedsController(Controller):
|
|
path = "/beerds"
|
|
|
|
@post("/dogs")
|
|
async def beerds_dogs(
|
|
self, data: UploadFile = Body(media_type=RequestEncodingType.MULTI_PART)
|
|
) -> dict:
|
|
body = await data.read()
|
|
return await recognizer_service.predict_dog_image(body)
|
|
|
|
@post("/cats")
|
|
async def beerds_cats(
|
|
self, data: UploadFile = Body(media_type=RequestEncodingType.MULTI_PART)
|
|
) -> dict:
|
|
body = await data.read()
|
|
return await recognizer_service.predict_cat_image(body)
|