wip
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from http import HTTPStatus
|
||||
|
||||
@@ -17,7 +18,7 @@ from config import (
|
||||
)
|
||||
from middlewares import Tenant, TenantMiddleware
|
||||
from models import Course, Enrollment, User
|
||||
from rules.enrollment import enroll
|
||||
from rules.enrollment import DeduplicationWindow, Vacancy, enroll
|
||||
|
||||
router = Router()
|
||||
|
||||
@@ -31,9 +32,18 @@ processor = BatchProcessor()
|
||||
class Item(BaseModel):
|
||||
user: User
|
||||
course: Course
|
||||
deduplication_window: dict = {}
|
||||
vacancy: Vacancy | None = None
|
||||
deduplication_window: DeduplicationWindow | None = None
|
||||
schedule_date: datetime | None = None
|
||||
|
||||
@property
|
||||
def id(self) -> str:
|
||||
if not self.vacancy:
|
||||
return str(uuid.uuid4())
|
||||
|
||||
_, idx = self.vacancy.sk.split('#')
|
||||
return idx
|
||||
|
||||
|
||||
class Payload(BaseModel):
|
||||
items: tuple[Item, ...]
|
||||
@@ -59,6 +69,7 @@ def enroll_(payload: Payload):
|
||||
def handler(record: Item, context: dict):
|
||||
tenant: Tenant = context['tenant']
|
||||
enrollment = Enrollment(
|
||||
id=record.id,
|
||||
user=record.user,
|
||||
course=record.course,
|
||||
)
|
||||
@@ -69,7 +80,8 @@ def handler(record: Item, context: dict):
|
||||
'id': str(tenant.id),
|
||||
'name': tenant.name,
|
||||
},
|
||||
deduplication_window=record.deduplication_window, # type: ignore
|
||||
deduplication_window=record.deduplication_window,
|
||||
vacancy=record.vacancy,
|
||||
persistence_layer=enrollment_layer,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user