Пример #1
0
def get_messages(session: DBSession, recipient_id: int) -> List['DBMessage']:

    recipient = session.get_employee_by_id(eid=recipient_id)

    if recipient is None:
        raise DBEmployeeNotExistsException()

    return session.messages().filter(DBMessage.recipient_id == recipient_id)
Пример #2
0
def create_message(session: DBSession, message: RequestCreateMessageDto, sid: int) -> DBMessage:

    rid = get_employee_id_by_login(session, message.recipient)

    try:
        session.get_employee_by_id(rid)
    except DBEmployeeNotExistsException:
        raise SanicEmployeeNotFound('Employee not found')

    new_message = DBMessage(
        sender_id=sid,
        recipient_id=rid,
        message=message.message,
    )

    session.add_model(new_message)

    return new_message
Пример #3
0
def patch_employee(session: DBSession, employee: RequestPatchEmployeeDto, employee_id: int) -> DBEmployee:
    db_employee = session.get_employee_by_id(employee_id)

    for attr in employee.fields:
        if hasattr(employee, attr):
            value = getattr(employee, attr)
            setattr(db_employee, attr, value)

    return db_employee
Пример #4
0
def patch_employee(session: DBSession, employee: RequestPatchEmployeeDto,
                   employee_id: int) -> DBEmployee:
    db_employee = session.get_employee_by_id(employee_id)

    # attrs = ('first_name', 'last_name', 'position', 'department')
    for attr in employee.fields:
        if hasattr(employee, attr):
            value = getattr(employee, attr)
            setattr(db_employee, attr, value)

    return db_employee
Пример #5
0
def get_employee(session: DBSession, *, login: str = None, employee_id: int = None) -> DBEmployee:
    db_employee = None

    if login is not None:
        db_employee = session.get_employee_by_login(login)
    elif employee_id is not None:
        db_employee = session.get_employee_by_id(employee_id)

    if db_employee is None:
        raise DBEmployeeNotExistsException
    return db_employee
Пример #6
0
def patch_employee(session: DBSession, employee: RequestPatchEmployeeDto,
                   employee_id: int) -> DBEmployee:

    db_employee = session.get_employee_by_id(employee_id)

    if db_employee is None:
        raise DBEmployeeNotExistsException()

    # attrs = ('first_name', 'last_name', 'position', 'department')
    # for attr in attrs:
    for attr in employee.fields:
        if hasattr(employee, attr):
            value = getattr(employee, attr)
            setattr(db_employee, attr, value)

    return db_employee
Пример #7
0
def delete_employee(session: DBSession, employee_id: int) -> DBEmployee:
    db_employee = session.get_employee_by_id(employee_id)
    db_employee.is_delete = True
    return db_employee