Обновить routers/client.py
This commit is contained in:
parent
32d070d8ce
commit
675eca167b
|
@ -1,317 +1,322 @@
|
||||||
from fastapi import FastAPI, HTTPException, APIRouter, Request, Header, Depends
|
from fastapi import FastAPI, HTTPException, APIRouter, Request, Header, Depends
|
||||||
from fastapi import BackgroundTasks
|
from fastapi import BackgroundTasks
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
import json
|
import json
|
||||||
from fastapi.templating import Jinja2Templates
|
from fastapi.templating import Jinja2Templates
|
||||||
from sqlalchemy.ext.asyncio import async_sessionmaker
|
from sqlalchemy.ext.asyncio import async_sessionmaker
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
import json
|
import json
|
||||||
from model.database import get_async_session, Client
|
from model.database import get_async_session, Client
|
||||||
from utils.clients import upsert_client, del_jobs, add_jobs, get_applied_jobs, get_filtered_jobs, client_list, get_avtopilot, get_delite, get_update
|
from utils.clients import upsert_client, del_jobs, add_jobs, get_applied_jobs, get_filtered_jobs, client_list, get_avtopilot, get_delite, get_update
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
|
from types import SimpleNamespace
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
router = APIRouter()
|
|
||||||
templates = Jinja2Templates(directory="templates")
|
|
||||||
API_KEY = "4545454"
|
router = APIRouter()
|
||||||
|
templates = Jinja2Templates(directory="templates")
|
||||||
|
API_KEY = "4545454"
|
||||||
|
|
||||||
|
|
||||||
def get_filtered_values(category, data):
|
|
||||||
values = data.get(category, {})
|
|
||||||
|
def get_filtered_values(category, data):
|
||||||
if isinstance(values, dict):
|
values = data.get(category, {})
|
||||||
# Фильтруем словарь, оставляем только значения, отличные от None
|
|
||||||
return [key for key, value in values.items() if value is not None]
|
if isinstance(values, dict):
|
||||||
elif isinstance(values, str) and values:
|
# Фильтруем словарь, оставляем только значения, отличные от None
|
||||||
# Если это строка, добавляем её как есть (если она не пустая)
|
return [key for key, value in values.items() if value is not None]
|
||||||
return [values]
|
elif isinstance(values, str) and values:
|
||||||
return []
|
# Если это строка, добавляем её как есть (если она не пустая)
|
||||||
|
return [values]
|
||||||
# Пример данных
|
return []
|
||||||
clients = {
|
|
||||||
1: {"username": "John Doe", "email": "john@example.com", "phone": "+123456781"},
|
# Пример данных
|
||||||
44: {"username": "Jane Smith", "email": "jane@example.com", "phone": "+987654321"}
|
|
||||||
}
|
@router.get("/get_client/{client_id}", include_in_schema=False)
|
||||||
@router.get("/get_client/{client_id}", include_in_schema=False)
|
async def get_client_modal(client_id: int, db: Session = Depends(get_async_session)):
|
||||||
async def get_client_modal(client_id: int, db: Session = Depends(get_async_session)):
|
data = SimpleNamespace(user_id=client_id)
|
||||||
# client = clients.get(client_id) # Используй clients вместо clients_db
|
print(data)
|
||||||
# print(f"==============================={type(client)}")
|
await get_update(db, data)
|
||||||
client = await client_list(client_id, db)
|
|
||||||
|
client = await client_list(client_id, db)
|
||||||
if not client:
|
|
||||||
raise HTTPException(status_code=404, detail="Client not found")
|
# print(client)
|
||||||
return JSONResponse(content=client)
|
|
||||||
|
|
||||||
class JsonData(BaseModel):
|
|
||||||
json_data: Union[dict, str]
|
if not client:
|
||||||
|
raise HTTPException(status_code=404, detail="Client not found")
|
||||||
|
return JSONResponse(content=client)
|
||||||
class jobs_delete(BaseModel):
|
|
||||||
user_id: int
|
class JsonData(BaseModel):
|
||||||
job_id:int
|
json_data: Union[dict, str]
|
||||||
|
|
||||||
|
|
||||||
class avtopilots(BaseModel):
|
class jobs_delete(BaseModel):
|
||||||
user_id: int
|
user_id: int
|
||||||
avtopilot:bool
|
job_id:int
|
||||||
|
|
||||||
class update(BaseModel):
|
|
||||||
user_id: int
|
class avtopilots(BaseModel):
|
||||||
|
user_id: int
|
||||||
|
avtopilot:bool
|
||||||
async def process_client_data(
|
|
||||||
db: Session,
|
class update(BaseModel):
|
||||||
data: JsonData,
|
user_id: int
|
||||||
user_id: str,
|
|
||||||
first_name: str,
|
|
||||||
last_name: str,
|
async def process_client_data(
|
||||||
email_addr: str,
|
db: Session,
|
||||||
phone_num: str
|
data: JsonData,
|
||||||
):
|
user_id: str,
|
||||||
"""Функция для обработки данных в фоне"""
|
first_name: str,
|
||||||
print(f"Получены данные для {first_name} {last_name} с email {email_addr}")
|
last_name: str,
|
||||||
|
email_addr: str,
|
||||||
async_session_maker = async_sessionmaker(bind=db.bind, expire_on_commit=False)
|
phone_num: str
|
||||||
async with async_session_maker() as db1, async_session_maker() as db2:
|
):
|
||||||
print("Запускаем задачи для обновления и удаления")
|
"""Функция для обработки данных в фоне"""
|
||||||
client_task = upsert_client(db1, user_id, first_name, last_name, email_addr, phone_num, str(data.json_data))
|
print(f"Получены данные для {first_name} {last_name} с email {email_addr}")
|
||||||
del_task = del_jobs(db2, user_id)
|
|
||||||
|
async_session_maker = async_sessionmaker(bind=db.bind, expire_on_commit=False)
|
||||||
client, _ = await asyncio.gather(client_task, del_task)
|
async with async_session_maker() as db1, async_session_maker() as db2:
|
||||||
|
print("Запускаем задачи для обновления и удаления")
|
||||||
job_level_values = get_filtered_values('job_level', data.json_data)
|
client_task = upsert_client(db1, user_id, first_name, last_name, email_addr, phone_num, str(data.json_data))
|
||||||
job_type_values = get_filtered_values('job_type', data.json_data)
|
del_task = del_jobs(db2, user_id)
|
||||||
location_type_values = get_filtered_values('location_type', data.json_data)
|
|
||||||
|
client, _ = await asyncio.gather(client_task, del_task)
|
||||||
print("Job Level:", ", ".join(job_level_values))
|
|
||||||
print("Job Type:", ", ".join(job_type_values))
|
job_level_values = get_filtered_values('job_level', data.json_data)
|
||||||
print("Location Type:", ", ".join(location_type_values))
|
job_type_values = get_filtered_values('job_type', data.json_data)
|
||||||
|
location_type_values = get_filtered_values('location_type', data.json_data)
|
||||||
jobs = await get_filtered_jobs(
|
|
||||||
db,
|
print("Job Level:", ", ".join(job_level_values))
|
||||||
user_job_titles=["Electronics Engineer", "Hardware Engineer"],
|
print("Job Type:", ", ".join(job_type_values))
|
||||||
minimum_annual_salary=None,
|
print("Location Type:", ", ".join(location_type_values))
|
||||||
salary_currency=None,
|
|
||||||
user_location_type=None,
|
jobs = await get_filtered_jobs(
|
||||||
user_locations=["Burnaby, Canada", "Vancouver, Canada", "Toronto, Canada"],
|
db,
|
||||||
user_levels=["Mid", "Senior", "Manager"],
|
user_job_titles=["3D Modeler,3D Printing Technician,3D Visualizer"],
|
||||||
user_job_types=["Full-time", "Permanent"]
|
minimum_annual_salary=None,
|
||||||
)
|
salary_currency=None,
|
||||||
|
user_location_type=None,
|
||||||
for job in jobs:
|
user_locations=["Burnaby, Canada", "Vancouver, Canada", "Toronto, Canada"],
|
||||||
print(job.job_title, job.location, job.job_level, job.job_type)
|
user_levels=["Mid", "Senior", "Manager"],
|
||||||
|
user_job_types=["Part-Time", "Permanent"]
|
||||||
ads = await add_jobs(db, user_id)
|
)
|
||||||
get_jobs = await get_applied_jobs(db, user_id)
|
|
||||||
|
for job in jobs:
|
||||||
# [ ]: NOTE Рабоиа в фоне BackgroundTasks process_client_data()
|
print(job.job_title, job.location, job.job_level, job.job_type)
|
||||||
@router.post("/client/", summary="Обновления json_data и переобновление вакансий",
|
|
||||||
description="Этот эндпоинт обновляет json_data, удаляет все вакансии со статусом Scheduled и создаёт по полученным данным новые вакансии")
|
ads = await add_jobs(db, user_id)
|
||||||
async def client(
|
get_jobs = await get_applied_jobs(db, user_id)
|
||||||
data: JsonData,
|
|
||||||
x_api_key: str = Header(...),
|
# [ ]: NOTE Рабоиа в фоне BackgroundTasks process_client_data()
|
||||||
db: Session = Depends(get_async_session),
|
@router.post("/client/", summary="Обновления json_data и переобновление вакансий",
|
||||||
background_tasks: BackgroundTasks = BackgroundTasks()
|
description="Этот эндпоинт обновляет json_data, удаляет все вакансии со статусом Scheduled и создаёт по полученным данным новые вакансии")
|
||||||
):
|
async def client(
|
||||||
if x_api_key != "4545454":
|
data: JsonData,
|
||||||
raise HTTPException(status_code=403, detail="Invalid API Key")
|
x_api_key: str = Header(...),
|
||||||
|
db: Session = Depends(get_async_session),
|
||||||
# Если json_data строка, декодируем её в словарь
|
background_tasks: BackgroundTasks = BackgroundTasks()
|
||||||
if isinstance(data.json_data, str):
|
):
|
||||||
try:
|
if x_api_key != "4545454":
|
||||||
data.json_data = json.loads(data.json_data)
|
raise HTTPException(status_code=403, detail="Invalid API Key")
|
||||||
except json.JSONDecodeError:
|
|
||||||
raise HTTPException(status_code=400, detail="Invalid JSON format")
|
# Если json_data строка, декодируем её в словарь
|
||||||
|
if isinstance(data.json_data, str):
|
||||||
# Проверяем что данные в нужном формате
|
try:
|
||||||
if not isinstance(data.json_data, dict):
|
data.json_data = json.loads(data.json_data)
|
||||||
raise HTTPException(status_code=400, detail="Invalid data format")
|
except json.JSONDecodeError:
|
||||||
|
raise HTTPException(status_code=400, detail="Invalid JSON format")
|
||||||
try:
|
|
||||||
# Извлекаем основные данные
|
# Проверяем что данные в нужном формате
|
||||||
first_name = data.json_data['first_name']
|
if not isinstance(data.json_data, dict):
|
||||||
last_name = data.json_data['last_name']
|
raise HTTPException(status_code=400, detail="Invalid data format")
|
||||||
email_addr = data.json_data['email_addr']
|
|
||||||
user_id = data.json_data['user_id']
|
try:
|
||||||
phone_num = data.json_data['phone_num']
|
# Извлекаем основные данные
|
||||||
|
first_name = data.json_data['first_name']
|
||||||
# Добавляем фоновые задачи
|
last_name = data.json_data['last_name']
|
||||||
background_tasks.add_task(
|
email_addr = data.json_data['email_addr']
|
||||||
process_client_data,
|
user_id = data.json_data['user_id']
|
||||||
db=db,
|
phone_num = data.json_data['phone_num']
|
||||||
data=data,
|
|
||||||
user_id=user_id,
|
# Добавляем фоновые задачи
|
||||||
first_name=first_name,
|
# background_tasks.add_task(
|
||||||
last_name=last_name,
|
# process_client_data,
|
||||||
email_addr=email_addr,
|
# db=db,
|
||||||
phone_num=phone_num
|
# data=data,
|
||||||
)
|
# user_id=user_id,
|
||||||
|
# first_name=first_name,
|
||||||
except KeyError as e:
|
# last_name=last_name,
|
||||||
raise HTTPException(status_code=400, detail=f"Missing required field: {e}")
|
# email_addr=email_addr,
|
||||||
|
# phone_num=phone_num
|
||||||
return {"status": "ok", "message": "Request received and is being processed"}
|
# )
|
||||||
|
|
||||||
|
except KeyError as e:
|
||||||
# @router.post("/client/")
|
raise HTTPException(status_code=400, detail=f"Missing required field: {e}")
|
||||||
# async def client(data: JsonData, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
|
||||||
# if x_api_key != "4545454":
|
return {"status": "ok", "message": "Request received and is being processed"}
|
||||||
# raise HTTPException(status_code=403, detail="Invalid API Key")
|
|
||||||
|
|
||||||
|
# @router.post("/client/")
|
||||||
# # Если json_data строка, декодируем её в словарь
|
# async def client(data: JsonData, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
||||||
# if isinstance(data.json_data, str):
|
# if x_api_key != "4545454":
|
||||||
# try:
|
# raise HTTPException(status_code=403, detail="Invalid API Key")
|
||||||
# data.json_data = json.loads(data.json_data) # Декодируем строку в словарь
|
|
||||||
# except json.JSONDecodeError:
|
|
||||||
# raise HTTPException(status_code=400, detail="Invalid JSON format")
|
# # Если json_data строка, декодируем её в словарь
|
||||||
|
# if isinstance(data.json_data, str):
|
||||||
# # Если json_data строка — декодируем
|
# try:
|
||||||
# # Теперь data.json_data гарантированно является словарем
|
# data.json_data = json.loads(data.json_data) # Декодируем строку в словарь
|
||||||
# if isinstance(data.json_data, dict):
|
# except json.JSONDecodeError:
|
||||||
# try:
|
# raise HTTPException(status_code=400, detail="Invalid JSON format")
|
||||||
# first_name = data.json_data['first_name']
|
|
||||||
# last_name = data.json_data['last_name']
|
# # Если json_data строка — декодируем
|
||||||
# email_addr = data.json_data['email_addr']
|
# # Теперь data.json_data гарантированно является словарем
|
||||||
# user_id = data.json_data['user_id']
|
# if isinstance(data.json_data, dict):
|
||||||
# phone_num = data.json_data['phone_num']
|
# try:
|
||||||
|
# first_name = data.json_data['first_name']
|
||||||
# print(f"Получены данные для {first_name} {last_name} с email {email_addr}")
|
# last_name = data.json_data['last_name']
|
||||||
|
# email_addr = data.json_data['email_addr']
|
||||||
# async_session_maker = async_sessionmaker(bind=db.bind, expire_on_commit=False)
|
# user_id = data.json_data['user_id']
|
||||||
# async with async_session_maker() as db1, async_session_maker() as db2:
|
# phone_num = data.json_data['phone_num']
|
||||||
# print("Запускаем задачи для обновления и удаления")
|
|
||||||
# client_task = upsert_client(db1, user_id, first_name, last_name, email_addr, phone_num, str(data.json_data))
|
# print(f"Получены данные для {first_name} {last_name} с email {email_addr}")
|
||||||
# del_task = del_jobs(db2, user_id)
|
|
||||||
|
# async_session_maker = async_sessionmaker(bind=db.bind, expire_on_commit=False)
|
||||||
# client, _ = await asyncio.gather(client_task, del_task)
|
# async with async_session_maker() as db1, async_session_maker() as db2:
|
||||||
|
# print("Запускаем задачи для обновления и удаления")
|
||||||
# job_level_values = get_filtered_values('job_level', data.json_data)
|
# client_task = upsert_client(db1, user_id, first_name, last_name, email_addr, phone_num, str(data.json_data))
|
||||||
# job_type_values = get_filtered_values('job_type', data.json_data)
|
# del_task = del_jobs(db2, user_id)
|
||||||
# location_type_values = get_filtered_values('location_type', data.json_data)
|
|
||||||
|
# client, _ = await asyncio.gather(client_task, del_task)
|
||||||
# #Результат
|
|
||||||
# print("Job Level:", ", ".join(job_level_values))
|
# job_level_values = get_filtered_values('job_level', data.json_data)
|
||||||
# print("Job Type:", ", ".join(job_type_values))
|
# job_type_values = get_filtered_values('job_type', data.json_data)
|
||||||
# print("Location Type:", ", ".join(location_type_values))
|
# location_type_values = get_filtered_values('location_type', data.json_data)
|
||||||
|
|
||||||
# # Пример использования функции
|
# #Результат
|
||||||
# jobs = await get_filtered_jobs(
|
# print("Job Level:", ", ".join(job_level_values))
|
||||||
# db,
|
# print("Job Type:", ", ".join(job_type_values))
|
||||||
# user_job_titles=["Electronics Engineer", "Hardware Engineer"],
|
# print("Location Type:", ", ".join(location_type_values))
|
||||||
# minimum_annual_salary=None,
|
|
||||||
# salary_currency=None,
|
# # Пример использования функции
|
||||||
# user_location_type=None,
|
# jobs = await get_filtered_jobs(
|
||||||
# user_locations=["Burnaby, Canada", "Vancouver, Canada", "Toronto, Canada"],
|
# db,
|
||||||
# user_levels=["Mid", "Senior", "Manager"],
|
# user_job_titles=["Electronics Engineer", "Hardware Engineer"],
|
||||||
# user_job_types=["Full-time", "Permanent"]
|
# minimum_annual_salary=None,
|
||||||
# )
|
# salary_currency=None,
|
||||||
|
# user_location_type=None,
|
||||||
|
# user_locations=["Burnaby, Canada", "Vancouver, Canada", "Toronto, Canada"],
|
||||||
# # Выводим вакансии
|
# user_levels=["Mid", "Senior", "Manager"],
|
||||||
# for job in jobs:
|
# user_job_types=["Full-time", "Permanent"]
|
||||||
# print(job.job_title, job.location, job.job_level, job.job_type)
|
# )
|
||||||
|
|
||||||
|
|
||||||
# ads = await add_jobs(db, user_id)
|
# # Выводим вакансии
|
||||||
# get_jobs = await get_applied_jobs(db, user_id)
|
# for job in jobs:
|
||||||
# # print(f"Полученные заявки: {get_jobs}")
|
# print(job.job_title, job.location, job.job_level, job.job_type)
|
||||||
|
|
||||||
# except KeyError as e:
|
|
||||||
# print(f"Ошибка при извлечении данных: {e}")
|
# ads = await add_jobs(db, user_id)
|
||||||
# raise HTTPException(status_code=400, detail="Missing required field in json_data")
|
# get_jobs = await get_applied_jobs(db, user_id)
|
||||||
|
# # print(f"Полученные заявки: {get_jobs}")
|
||||||
# else:
|
|
||||||
# # print(f"Неверный формат данных: {type(data.json_data)}")
|
# except KeyError as e:
|
||||||
# raise HTTPException(status_code=400, detail="Invalid data format")
|
# print(f"Ошибка при извлечении данных: {e}")
|
||||||
|
# raise HTTPException(status_code=400, detail="Missing required field in json_data")
|
||||||
# return {"status": "ok", "message": "JSON получен"}
|
|
||||||
|
# else:
|
||||||
|
# # print(f"Неверный формат данных: {type(data.json_data)}")
|
||||||
@router.post("/client_update", summary="Обновления клиента",
|
# raise HTTPException(status_code=400, detail="Invalid data format")
|
||||||
description="Этот эндпоинт получает ID пользователя, переходит по ссылки что бы получить json_data")
|
|
||||||
async def client_update(data: update, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
# return {"status": "ok", "message": "JSON получен"}
|
||||||
|
|
||||||
if x_api_key != "4545454":
|
|
||||||
raise HTTPException(status_code=403, detail="Invalid API Key")
|
@router.post("/client_update", summary="Обновления клиента",
|
||||||
|
description="Этот эндпоинт получает ID пользователя, переходит по ссылки что бы получить json_data")
|
||||||
try:
|
async def client_update(data: update, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
||||||
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
|
||||||
|
if x_api_key != "4545454":
|
||||||
await get_update(db, data)
|
raise HTTPException(status_code=403, detail="Invalid API Key")
|
||||||
|
|
||||||
|
try:
|
||||||
except Exception as e:
|
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
||||||
print(f"Ошибка при обработке данных: {e}")
|
|
||||||
raise HTTPException(status_code=400, detail="Error processing data")
|
await get_update(db, data)
|
||||||
|
|
||||||
return {"status": "ok", "message": "Data received", "user_id": user_id, }
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Ошибка при обработке данных: {e}")
|
||||||
|
raise HTTPException(status_code=400, detail="Error processing data")
|
||||||
@router.post("/client_jobs/", summary="Получить список работ по клиенту",
|
|
||||||
description="Этот эндпоинт получает ID пользователя, в ответ отдаёт список вакансий")
|
return {"status": "ok", "message": "Data received", "user_id": user_id, }
|
||||||
async def client_jobs(data: update, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
|
||||||
if x_api_key != "4545454":
|
|
||||||
raise HTTPException(status_code=403, detail="Invalid API Key")
|
|
||||||
|
@router.post("/client_jobs/", summary="Получить список работ по клиенту",
|
||||||
try:
|
description="Этот эндпоинт получает ID пользователя, в ответ отдаёт список вакансий")
|
||||||
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
async def client_jobs(data: update, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
||||||
get_jobs = await get_applied_jobs(db, user_id)
|
if x_api_key != "4545454":
|
||||||
print(f"Полученные данные: user_id={user_id}")
|
raise HTTPException(status_code=403, detail="Invalid API Key")
|
||||||
|
|
||||||
except Exception as e:
|
try:
|
||||||
print(f"Ошибка при обработке данных: {e}")
|
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
||||||
raise HTTPException(status_code=400, detail="Error processing data")
|
get_jobs = await get_applied_jobs(db, user_id)
|
||||||
|
print(f"Полученные данные: user_id={user_id}")
|
||||||
return {"status": "ok", "message": "Data received", "get_jobs": get_jobs}
|
|
||||||
# return {"message": "JSON получен", "data": get_jobs}
|
except Exception as e:
|
||||||
|
print(f"Ошибка при обработке данных: {e}")
|
||||||
|
raise HTTPException(status_code=400, detail="Error processing data")
|
||||||
@router.post("/avtopilot", summary="Автопилот вкл, выкл",
|
|
||||||
description="Этот эндпоинт получает ID пользователя, включает или отключает автопилот. При false все вакансии со статусом Scheduled становятся Paused при true наоборот!")
|
return {"status": "ok", "message": "Data received", "get_jobs": get_jobs}
|
||||||
async def avtopilot(data: avtopilots, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
# return {"message": "JSON получен", "data": get_jobs}
|
||||||
|
|
||||||
if x_api_key != "4545454":
|
|
||||||
raise HTTPException(status_code=403, detail="Invalid API Key")
|
@router.post("/avtopilot", summary="Автопилот вкл, выкл",
|
||||||
|
description="Этот эндпоинт получает ID пользователя, включает или отключает автопилот. При false все вакансии со статусом Scheduled становятся Paused при true наоборот!")
|
||||||
try:
|
async def avtopilot(data: avtopilots, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
||||||
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
|
||||||
avtopilotss = data.avtopilot # Так как data - это объект Pydantic модели
|
if x_api_key != "4545454":
|
||||||
|
raise HTTPException(status_code=403, detail="Invalid API Key")
|
||||||
await get_avtopilot(db, data)
|
|
||||||
|
try:
|
||||||
except Exception as e:
|
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
||||||
print(f"Ошибка при обработке данных: {e}")
|
avtopilotss = data.avtopilot # Так как data - это объект Pydantic модели
|
||||||
raise HTTPException(status_code=400, detail="Error processing data")
|
|
||||||
|
await get_avtopilot(db, data)
|
||||||
return {"status": "ok", "message": "Data received", "user_id": user_id, "avtopilotss": avtopilotss}
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Ошибка при обработке данных: {e}")
|
||||||
|
raise HTTPException(status_code=400, detail="Error processing data")
|
||||||
|
|
||||||
@router.post("/jobs_delete", summary="Удаление вакансии",
|
return {"status": "ok", "message": "Data received", "user_id": user_id, "avtopilotss": avtopilotss}
|
||||||
description="Этот эндпоинт получает ID пользователя и ID вакансии, Удаляет у пользователя вакансию")
|
|
||||||
async def jobs_delete(data: jobs_delete, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
|
||||||
if x_api_key != "4545454":
|
|
||||||
raise HTTPException(status_code=403, detail="Invalid API Key")
|
|
||||||
|
@router.post("/jobs_delete", summary="Удаление вакансии",
|
||||||
try:
|
description="Этот эндпоинт получает ID пользователя и ID вакансии, Удаляет у пользователя вакансию")
|
||||||
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
async def jobs_delete(data: jobs_delete, x_api_key: str = Header(...), db: Session = Depends(get_async_session)):
|
||||||
job_id = data.job_id # Так как data - это объект Pydantic модели
|
if x_api_key != "4545454":
|
||||||
|
raise HTTPException(status_code=403, detail="Invalid API Key")
|
||||||
await get_delite(db, data)
|
|
||||||
except Exception as e:
|
try:
|
||||||
print(f"Ошибка при обработке данных: {e}")
|
user_id = data.user_id # Обратите внимание на точку вместо квадратных скобок
|
||||||
raise HTTPException(status_code=400, detail="Error processing data")
|
job_id = data.job_id # Так как data - это объект Pydantic модели
|
||||||
|
|
||||||
return {"status": "ok", "message": "Data received", "user_id": user_id, "job_id": job_id}
|
await get_delite(db, data)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Ошибка при обработке данных: {e}")
|
||||||
|
raise HTTPException(status_code=400, detail="Error processing data")
|
||||||
|
|
||||||
|
return {"status": "ok", "message": "Data received", "user_id": user_id, "job_id": job_id}
|
||||||
|
|
Loading…
Reference in New Issue