Skip to content

Schedule

qgendapy.resources.schedule

ScheduleResource(client)

Bases: BaseResource

Synchronous schedule endpoints.

Source code in src/qgendapy/resources/_base.py
def __init__(self, client: QGendaClient) -> None:
    self._client = client

list(*, start_date, end_date=None, includes=None, odata=None, expand=None)

Source code in src/qgendapy/resources/schedule.py
def list(
    self,
    *,
    start_date: str,
    end_date: str | None = None,
    includes: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[ScheduleEntry]:
    if end_date and _date_chunks(start_date, end_date) != [(start_date, end_date)]:
        return self._chunked_list(
            start_date=start_date,
            end_date=end_date,
            includes=includes,
            odata=odata,
            expand=expand,
        )
    params: dict[str, str] = {
        "startDate": start_date,
        "companyKey": self._client.company_key,
    }
    if end_date:
        params["endDate"] = end_date
    if includes:
        params["includes"] = includes
    return self._get(
        "/schedule",
        params=params,
        model=ScheduleEntry,
        odata=merge_expand(expand, odata),
    )

audit_log(*, schedule_start_date=None, schedule_end_date=None, since_modified_timestamp=None, odata=None, expand=None)

Source code in src/qgendapy/resources/schedule.py
def audit_log(
    self,
    *,
    schedule_start_date: str | None = None,
    schedule_end_date: str | None = None,
    since_modified_timestamp: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[AuditLogEntry]:
    params: dict[str, str] = {"companyKey": self._client.company_key}
    if schedule_start_date:
        params["scheduleStartDate"] = schedule_start_date
    if schedule_end_date:
        params["scheduleEndDate"] = schedule_end_date
    if since_modified_timestamp:
        params["sinceModifiedTimestamp"] = since_modified_timestamp
    return self._get(
        "/schedule/auditLog",
        params=params,
        model=AuditLogEntry,
        odata=merge_expand(expand, odata),
    )

open_shifts(*, start_date, end_date=None, includes=None, odata=None, expand=None)

Source code in src/qgendapy/resources/schedule.py
def open_shifts(
    self,
    *,
    start_date: str,
    end_date: str | None = None,
    includes: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[OpenShift]:
    if end_date and _date_chunks(start_date, end_date) != [(start_date, end_date)]:
        return self._chunked_open_shifts(
            start_date=start_date,
            end_date=end_date,
            includes=includes,
            odata=odata,
            expand=expand,
        )
    params: dict[str, str] = {
        "startDate": start_date,
        "companyKey": self._client.company_key,
    }
    if end_date:
        params["endDate"] = end_date
    if includes:
        params["includes"] = includes
    return self._get(
        "/schedule/openshifts",
        params=params,
        model=OpenShift,
        odata=merge_expand(expand, odata),
    )

rotations(*, range_start_date=None, range_end_date=None, odata=None, expand=None)

Source code in src/qgendapy/resources/schedule.py
def rotations(
    self,
    *,
    range_start_date: str | None = None,
    range_end_date: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[Rotation]:
    params: dict[str, str] = {"companyKey": self._client.company_key}
    if range_start_date:
        params["rangeStartDate"] = range_start_date
    if range_end_date:
        params["rangeEndDate"] = range_end_date
    return self._get(
        "/schedule/rotations",
        params=params,
        model=Rotation,
        odata=merge_expand(expand, odata),
    )

AsyncScheduleResource(client)

Bases: AsyncBaseResource

Asynchronous schedule endpoints.

Source code in src/qgendapy/resources/_base.py
def __init__(self, client: AsyncQGendaClient) -> None:
    self._client = client

list(*, start_date, end_date=None, includes=None, odata=None, expand=None) async

Source code in src/qgendapy/resources/schedule.py
async def list(
    self,
    *,
    start_date: str,
    end_date: str | None = None,
    includes: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[ScheduleEntry]:
    if end_date and _date_chunks(start_date, end_date) != [(start_date, end_date)]:
        return await self._chunked_list(
            start_date=start_date,
            end_date=end_date,
            includes=includes,
            odata=odata,
            expand=expand,
        )
    params: dict[str, str] = {
        "startDate": start_date,
        "companyKey": self._client.company_key,
    }
    if end_date:
        params["endDate"] = end_date
    if includes:
        params["includes"] = includes
    return await self._get(
        "/schedule",
        params=params,
        model=ScheduleEntry,
        odata=merge_expand(expand, odata),
    )

audit_log(*, schedule_start_date=None, schedule_end_date=None, since_modified_timestamp=None, odata=None, expand=None) async

Source code in src/qgendapy/resources/schedule.py
async def audit_log(
    self,
    *,
    schedule_start_date: str | None = None,
    schedule_end_date: str | None = None,
    since_modified_timestamp: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[AuditLogEntry]:
    params: dict[str, str] = {"companyKey": self._client.company_key}
    if schedule_start_date:
        params["scheduleStartDate"] = schedule_start_date
    if schedule_end_date:
        params["scheduleEndDate"] = schedule_end_date
    if since_modified_timestamp:
        params["sinceModifiedTimestamp"] = since_modified_timestamp
    return await self._get(
        "/schedule/auditLog",
        params=params,
        model=AuditLogEntry,
        odata=merge_expand(expand, odata),
    )

open_shifts(*, start_date, end_date=None, includes=None, odata=None, expand=None) async

Source code in src/qgendapy/resources/schedule.py
async def open_shifts(
    self,
    *,
    start_date: str,
    end_date: str | None = None,
    includes: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[OpenShift]:
    if end_date and _date_chunks(start_date, end_date) != [(start_date, end_date)]:
        return await self._chunked_open_shifts(
            start_date=start_date,
            end_date=end_date,
            includes=includes,
            odata=odata,
            expand=expand,
        )
    params: dict[str, str] = {
        "startDate": start_date,
        "companyKey": self._client.company_key,
    }
    if end_date:
        params["endDate"] = end_date
    if includes:
        params["includes"] = includes
    return await self._get(
        "/schedule/openshifts",
        params=params,
        model=OpenShift,
        odata=merge_expand(expand, odata),
    )

rotations(*, range_start_date=None, range_end_date=None, odata=None, expand=None) async

Source code in src/qgendapy/resources/schedule.py
async def rotations(
    self,
    *,
    range_start_date: str | None = None,
    range_end_date: str | None = None,
    odata: OData | None = None,
    expand: str | Sequence[str] | None = None,
) -> QGendaResponse[Rotation]:
    params: dict[str, str] = {"companyKey": self._client.company_key}
    if range_start_date:
        params["rangeStartDate"] = range_start_date
    if range_end_date:
        params["rangeEndDate"] = range_end_date
    return await self._get(
        "/schedule/rotations",
        params=params,
        model=Rotation,
        odata=merge_expand(expand, odata),
    )