feat: a lot of a lot
This commit is contained in:
		@@ -12,3 +12,4 @@ from .marketplace import marketplace_router
 | 
			
		||||
from .payroll import payroll_router
 | 
			
		||||
from .time_tracking import time_tracking_router
 | 
			
		||||
from .billing import billing_router
 | 
			
		||||
from .task import task_router
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
from typing import Annotated
 | 
			
		||||
 | 
			
		||||
from fastapi import APIRouter, Depends
 | 
			
		||||
from fastapi import APIRouter, Depends, Request
 | 
			
		||||
from sqlalchemy.ext.asyncio import AsyncSession
 | 
			
		||||
 | 
			
		||||
from backend.session import get_session
 | 
			
		||||
@@ -16,3 +16,11 @@ auth_router = APIRouter(
 | 
			
		||||
@auth_router.post('/login', response_model=AuthLoginResponse)
 | 
			
		||||
async def login(request: AuthLoginRequest, session: Annotated[AsyncSession, Depends(get_session)]):
 | 
			
		||||
    return await AuthService(session).authenticate(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@auth_router.post('/test')
 | 
			
		||||
async def test(
 | 
			
		||||
        request: Request
 | 
			
		||||
):
 | 
			
		||||
    print(request.headers)
 | 
			
		||||
    return {'a': "a"}
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,8 @@ client_router = APIRouter(
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@client_router.get('/search', operation_id='search_clients')
 | 
			
		||||
async def search_clients(
 | 
			
		||||
        name: str,
 | 
			
		||||
@@ -52,7 +54,7 @@ async def get_all_clients(
 | 
			
		||||
 | 
			
		||||
@client_router.post(
 | 
			
		||||
    '/create',
 | 
			
		||||
    operation_id='create_client',
 | 
			
		||||
    operation_id='create_client_api',
 | 
			
		||||
    response_model=ClientCreateResponse
 | 
			
		||||
)
 | 
			
		||||
async def create_client(
 | 
			
		||||
 
 | 
			
		||||
@@ -21,3 +21,51 @@ async def get_all(
 | 
			
		||||
        session: SessionDependency
 | 
			
		||||
):
 | 
			
		||||
    return await MarketplaceService(session).get_all_base_marketplaces()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@marketplace_router.post(
 | 
			
		||||
    '/get',
 | 
			
		||||
    operation_id='get_client_marketplaces',
 | 
			
		||||
    response_model=GetClientMarketplacesResponse
 | 
			
		||||
)
 | 
			
		||||
async def get(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: GetClientMarketplacesRequest
 | 
			
		||||
):
 | 
			
		||||
    return await MarketplaceService(session).get_client_marketplaces(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@marketplace_router.post(
 | 
			
		||||
    '/create',
 | 
			
		||||
    operation_id='create_marketplace',
 | 
			
		||||
    response_model=CreateMarketplaceResponse
 | 
			
		||||
)
 | 
			
		||||
async def create(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: CreateMarketplaceRequest
 | 
			
		||||
):
 | 
			
		||||
    return await MarketplaceService(session).create_marketplace(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@marketplace_router.post(
 | 
			
		||||
    '/delete',
 | 
			
		||||
    operation_id='delete_marketplace',
 | 
			
		||||
    response_model=DeleteMarketplaceResponse
 | 
			
		||||
)
 | 
			
		||||
async def delete(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: DeleteMarketplaceRequest
 | 
			
		||||
):
 | 
			
		||||
    return await MarketplaceService(session).delete_marketplace(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@marketplace_router.post(
 | 
			
		||||
    '/update',
 | 
			
		||||
    operation_id='update_marketplace',
 | 
			
		||||
    response_model=UpdateMarketplaceResponse
 | 
			
		||||
)
 | 
			
		||||
async def update(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: UpdateMarketplaceRequest
 | 
			
		||||
):
 | 
			
		||||
    return await MarketplaceService(session).update_marketplace(request)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								routers/task.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								routers/task.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
from celery.result import AsyncResult
 | 
			
		||||
from fastapi import APIRouter
 | 
			
		||||
 | 
			
		||||
import background.tasks.marketplace
 | 
			
		||||
from background.celery_app import celery
 | 
			
		||||
from schemas.task import *
 | 
			
		||||
 | 
			
		||||
task_router = APIRouter(
 | 
			
		||||
    prefix='/task',
 | 
			
		||||
    tags=["task"],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@task_router.post(
 | 
			
		||||
    '/synchronize-marketplace',
 | 
			
		||||
    operation_id='create_synchronize_marketplace_task',
 | 
			
		||||
    response_model=CreateTaskResponse
 | 
			
		||||
)
 | 
			
		||||
async def synchronize_marketplace(
 | 
			
		||||
        request: SynchronizeMarketplaceRequest
 | 
			
		||||
):
 | 
			
		||||
    marketplace_id = request.marketplace_id
 | 
			
		||||
    task: AsyncResult = background.tasks.marketplace.synchronize_marketplace.delay(marketplace_id)
 | 
			
		||||
    return CreateTaskResponse(task_id=task.id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@task_router.get(
 | 
			
		||||
    '/info/{task_id}',
 | 
			
		||||
    operation_id='get_task_info',
 | 
			
		||||
    response_model=TaskInfoResponse
 | 
			
		||||
)
 | 
			
		||||
def task_info(task_id: str):
 | 
			
		||||
    task = AsyncResult(task_id, app=celery)
 | 
			
		||||
    return TaskInfoResponse(
 | 
			
		||||
        task_id=task_id,
 | 
			
		||||
        status=task.status
 | 
			
		||||
    )
 | 
			
		||||
		Reference in New Issue
	
	Block a user