/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { InvalidateQueryFilters, QueryClient, useQuery, UseQueryResult, useSuspenseQuery, UseSuspenseQueryResult, } from "@tanstack/react-query"; import { GustoEmbeddedError } from "../models/errors/gustoembeddederror.js"; import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError, } from "../models/errors/httpclienterrors.js"; import { NotFoundErrorObject } from "../models/errors/notfounderrorobject.js"; import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; import { UnprocessableEntityError } from "../models/errors/unprocessableentityerror.js"; import { GetV1CompaniesCompanyUuidTimeOffRequestsHeaderXGustoAPIVersion, GetV1CompaniesCompanyUuidTimeOffRequestsRequest, } from "../models/operations/getv1companiescompanyuuidtimeoffrequests.js"; import { useGustoEmbeddedContext } from "./_context.js"; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes, } from "./_types.js"; import { buildTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQuery, prefetchTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests, queryKeyTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests, TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData, } from "./timeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests.core.js"; export { buildTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQuery, prefetchTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests, queryKeyTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests, type TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData, }; export type TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryError = | NotFoundErrorObject | UnprocessableEntityError | GustoEmbeddedError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError; /** * List time off requests for a company * * @remarks * Get all time off requests for a company. Supports filtering by status, employee, and date ranges. * * Possible statuses: * - `pending` — awaiting approval * - `approved` — approved by an admin but not yet processed in a payroll * - `declined` — declined by an admin * - `consumed` — processed in a completed payroll * * Allowed values for `status`: pending, approved, declined, consumed. * * scope: `time_off_requests:read` */ export function useTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests( request: GetV1CompaniesCompanyUuidTimeOffRequestsRequest, options?: QueryHookOptions< TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData, TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryError >, ): UseQueryResult< TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData, TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryError > { const client = useGustoEmbeddedContext(); return useQuery({ ...buildTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQuery( client, request, options, ), ...options, }); } /** * List time off requests for a company * * @remarks * Get all time off requests for a company. Supports filtering by status, employee, and date ranges. * * Possible statuses: * - `pending` — awaiting approval * - `approved` — approved by an admin but not yet processed in a payroll * - `declined` — declined by an admin * - `consumed` — processed in a completed payroll * * Allowed values for `status`: pending, approved, declined, consumed. * * scope: `time_off_requests:read` */ export function useTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsSuspense( request: GetV1CompaniesCompanyUuidTimeOffRequestsRequest, options?: SuspenseQueryHookOptions< TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData, TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryError >, ): UseSuspenseQueryResult< TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData, TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryError > { const client = useGustoEmbeddedContext(); return useSuspenseQuery({ ...buildTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQuery( client, request, options, ), ...options, }); } export function setTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsData( client: QueryClient, queryKeyBase: [ companyUuid: string, parameters: { xGustoAPIVersion?: | GetV1CompaniesCompanyUuidTimeOffRequestsHeaderXGustoAPIVersion | undefined; employeeUuids?: string | undefined; status?: string | undefined; startDate?: string | undefined; endDate?: string | undefined; sortOrder?: string | undefined; page?: number | undefined; per?: number | undefined; }, ], data: TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData, ): | TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData | undefined { const key = queryKeyTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests( ...queryKeyBase, ); return client.setQueryData< TimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequestsQueryData >(key, data); } export function invalidateTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests( client: QueryClient, queryKeyBase: TupleToPrefixes< [ companyUuid: string, parameters: { xGustoAPIVersion?: | GetV1CompaniesCompanyUuidTimeOffRequestsHeaderXGustoAPIVersion | undefined; employeeUuids?: string | undefined; status?: string | undefined; startDate?: string | undefined; endDate?: string | undefined; sortOrder?: string | undefined; page?: number | undefined; per?: number | undefined; }, ] >, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: [ "@gusto/embedded-api", "Time Off Requests", "getV1CompaniesCompanyUuidTimeOffRequests", ...queryKeyBase, ], }); } export function invalidateAllTimeOffRequestsGetV1CompaniesCompanyUuidTimeOffRequests( client: QueryClient, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: [ "@gusto/embedded-api", "Time Off Requests", "getV1CompaniesCompanyUuidTimeOffRequests", ], }); }