/* * 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 { GetV1CompanyBenefitsCompanyBenefitIdHeaderXGustoAPIVersion, GetV1CompanyBenefitsCompanyBenefitIdQueryParamInclude, GetV1CompanyBenefitsCompanyBenefitIdRequest, } from "../models/operations/getv1companybenefitscompanybenefitid.js"; import { useGustoEmbeddedContext } from "./_context.js"; import { QueryHookOptions, SuspenseQueryHookOptions, TupleToPrefixes, } from "./_types.js"; import { buildCompanyBenefitsGetQuery, CompanyBenefitsGetQueryData, prefetchCompanyBenefitsGet, queryKeyCompanyBenefitsGet, } from "./companyBenefitsGet.core.js"; export { buildCompanyBenefitsGetQuery, type CompanyBenefitsGetQueryData, prefetchCompanyBenefitsGet, queryKeyCompanyBenefitsGet, }; export type CompanyBenefitsGetQueryError = | NotFoundErrorObject | GustoEmbeddedError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError; /** * Get a company benefit * * @remarks * Company benefits represent the benefits that a company is offering to employees. This ties together a particular supported benefit with the company-specific information for the offering of that benefit. * * Note that company benefits can be deactivated only when no employees are enrolled. * * When with_employee_benefits parameter with true value is passed, employee_benefits:read scope is required to return employee_benefits. * * scope: `company_benefits:read` */ export function useCompanyBenefitsGet( request: GetV1CompanyBenefitsCompanyBenefitIdRequest, options?: QueryHookOptions< CompanyBenefitsGetQueryData, CompanyBenefitsGetQueryError >, ): UseQueryResult { const client = useGustoEmbeddedContext(); return useQuery({ ...buildCompanyBenefitsGetQuery( client, request, options, ), ...options, }); } /** * Get a company benefit * * @remarks * Company benefits represent the benefits that a company is offering to employees. This ties together a particular supported benefit with the company-specific information for the offering of that benefit. * * Note that company benefits can be deactivated only when no employees are enrolled. * * When with_employee_benefits parameter with true value is passed, employee_benefits:read scope is required to return employee_benefits. * * scope: `company_benefits:read` */ export function useCompanyBenefitsGetSuspense( request: GetV1CompanyBenefitsCompanyBenefitIdRequest, options?: SuspenseQueryHookOptions< CompanyBenefitsGetQueryData, CompanyBenefitsGetQueryError >, ): UseSuspenseQueryResult< CompanyBenefitsGetQueryData, CompanyBenefitsGetQueryError > { const client = useGustoEmbeddedContext(); return useSuspenseQuery({ ...buildCompanyBenefitsGetQuery( client, request, options, ), ...options, }); } export function setCompanyBenefitsGetData( client: QueryClient, queryKeyBase: [ companyBenefitId: string, parameters: { xGustoAPIVersion?: | GetV1CompanyBenefitsCompanyBenefitIdHeaderXGustoAPIVersion | undefined; withEmployeeBenefits?: boolean | undefined; include?: | GetV1CompanyBenefitsCompanyBenefitIdQueryParamInclude | undefined; }, ], data: CompanyBenefitsGetQueryData, ): CompanyBenefitsGetQueryData | undefined { const key = queryKeyCompanyBenefitsGet(...queryKeyBase); return client.setQueryData(key, data); } export function invalidateCompanyBenefitsGet( client: QueryClient, queryKeyBase: TupleToPrefixes< [ companyBenefitId: string, parameters: { xGustoAPIVersion?: | GetV1CompanyBenefitsCompanyBenefitIdHeaderXGustoAPIVersion | undefined; withEmployeeBenefits?: boolean | undefined; include?: | GetV1CompanyBenefitsCompanyBenefitIdQueryParamInclude | undefined; }, ] >, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: [ "@gusto/embedded-api", "companyBenefits", "get", ...queryKeyBase, ], }); } export function invalidateAllCompanyBenefitsGet( client: QueryClient, filters?: Omit, ): Promise { return client.invalidateQueries({ ...filters, queryKey: ["@gusto/embedded-api", "companyBenefits", "get"], }); }