37 lines
810 B
Python
37 lines
810 B
Python
from typing import Optional
|
||
|
||
from fastapi import APIRouter, Body, Query, Form,Request
|
||
from pydantic import BaseModel
|
||
|
||
from ..rotation_service import rotate as rotate_impl, status as status_impl ,citie_list as cities_impl
|
||
|
||
|
||
router = APIRouter()
|
||
|
||
|
||
class RotateRequest(BaseModel):
|
||
id: Optional[int] = None
|
||
citys: Optional[str] = None
|
||
|
||
|
||
@router.post("/rotate")
|
||
def rotate(
|
||
req: Optional[RotateRequest] = Body(...),
|
||
):
|
||
# 优先级:Query > Form > JSON
|
||
client_id = req.id
|
||
cities = str(req.citys).split(',')
|
||
# effective_cityhash = req.cityhash
|
||
# effective_num = req.num
|
||
result = rotate_impl(client_id=client_id,cities =cities)
|
||
return result
|
||
|
||
|
||
@router.get("/status")
|
||
def get_status():
|
||
return status_impl()
|
||
|
||
@router.get("/cities")
|
||
def get_cities():
|
||
return cities_impl()
|