/* * 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 { DateFilterBy, GetV1CompaniesCompanyIdPayrollsHeaderXGustoAPIVersion, GetV1CompaniesCompanyIdPayrollsQueryParamInclude, GetV1CompaniesCompanyIdPayrollsRequest, ProcessingStatuses, QueryParamPayrollTypes, SortOrder, } from "../models/operations/getv1companiescompanyidpayrolls.js"; import { useGustoEmbeddedContext } from "./_context.js"; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes, } from "./_types.js"; import { buildPayrollsListQuery, PayrollsListQueryData, prefetchPayrollsList, queryKeyPayrollsList, } from "./payrollsList.core.js"; export { buildPayrollsListQuery, type PayrollsListQueryData, prefetchPayrollsList, queryKeyPayrollsList, }; export type PayrollsListQueryError = | NotFoundErrorObject | GustoEmbeddedError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError; /** * Get all payrolls for a company * * @remarks * Returns a list of payrolls for a company. You can change the payrolls returned by updating the processing_status, payroll_types, start_date, & end_date params. * * By default, will return processed, regular payrolls for the past 6 months. * * Notes: * * Dollar amounts are returned as string representations of numeric decimals, are represented to the cent. * * end_date can be at most 3 months in the future and start_date and end_date can't be more than 1 year apart. * * Results are paginated. Maximum page size is 100 payrolls per request; the default page size is 25. * * scope: `payrolls:read` */ export function usePayrollsList( request: GetV1CompaniesCompanyIdPayrollsRequest, options?: QueryHookOptions, ): UseQueryResult { const client = useGustoEmbeddedContext(); return useQuery({ ...buildPayrollsListQuery( client, request, options, ), ...options, }); } /** * Get all payrolls for a company * * @remarks * Returns a list of payrolls for a company. You can change the payrolls returned by updating the processing_status, payroll_types, start_date, & end_date params. * * By default, will return processed, regular payrolls for the past 6 months. * * Notes: * * Dollar amounts are returned as string representations of numeric decimals, are represented to the cent. * * end_date can be at most 3 months in the future and start_date and end_date can't be more than 1 year apart. * * Results are paginated. Maximum page size is 100 payrolls per request; the default page size is 25. * * scope: `payrolls:read` */ export function usePayrollsListSuspense( request: GetV1CompaniesCompanyIdPayrollsRequest, options?: SuspenseQueryHookOptions< PayrollsListQueryData, PayrollsListQueryError >, ): UseSuspenseQueryResult { const client = useGustoEmbeddedContext(); return useSuspenseQuery({ ...buildPayrollsListQuery( client, request, options, ), ...options, }); } export function setPayrollsListData( client: QueryClient, queryKeyBase: [ companyId: string, parameters: { xGustoAPIVersion?: | GetV1CompaniesCompanyIdPayrollsHeaderXGustoAPIVersion | undefined; processingStatuses?: Array | undefined; payrollTypes?: Array | undefined; processed?: boolean | undefined; includeOffCycle?: boolean | undefined; include?: | Array | undefined; startDate?: string | undefined; endDate?: string | undefined; dateFilterBy?: DateFilterBy | undefined; page?: number | undefined; per?: number | undefined; sortOrder?: SortOrder | undefined; }, ], data: PayrollsListQueryData, ): PayrollsListQueryData | undefined { const key = queryKeyPayrollsList(...queryKeyBase); return client.setQueryData(key, data); } export function invalidatePayrollsList( client: QueryClient, queryKeyBase: TupleToPrefixes< [ companyId: string, parameters: { xGustoAPIVersion?: | GetV1CompaniesCompanyIdPayrollsHeaderXGustoAPIVersion | undefined; processingStatuses?: Array | undefined; payrollTypes?: Array | undefined; processed?: boolean | undefined; includeOffCycle?: boolean | undefined; include?: | Array | undefined; startDate?: string | undefined; endDate?: string | undefined; dateFilterBy?: DateFilterBy | undefined; page?: number | undefined; per?: number | undefined; sortOrder?: SortOrder | undefined; }, ] >, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: ["@gusto/embedded-api", "Payrolls", "list", ...queryKeyBase], }); } export function invalidateAllPayrollsList( client: QueryClient, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: ["@gusto/embedded-api", "Payrolls", "list"], }); }