export type GetApiV1CustomersFacilityFacilityCodeArgs = {facilityCode: string, type?: ('GUEST' | 'PUNCH CARD' | 'MEMBER' | 'CORPORATE') | undefined, status?: ('TERMINATED' | 'FROZEN' | 'EXPIRED' | 'OK') | undefined, waiverSigned?: boolean | undefined, birthdayMonth?: number | undefined, birthdayUpcoming?: number | undefined, firstContactDateEnding?: string | undefined, firstContactDateStarting?: string | undefined, lastVisitDateEnding?: string | undefined, lastVisitDateStarting?: string | undefined, lastEditDateEnding?: string | undefined, lastEditDateStarting?: string | undefined, firstName?: string | undefined, middleName?: string | undefined, lastName?: string | undefined, city?: string | undefined, state?: string | undefined, postalCode?: string | undefined, country?: string | undefined, ageGreaterThan?: number | undefined, ageLessThan?: number | undefined, onlineAccountLinked?: boolean | undefined, emailAddressPopulated?: boolean | undefined, emailAllowMarketing?: boolean | undefined, emailTouchDateEnding?: string | undefined, emailTouchDateStarting?: string | undefined, emailAddress?: string | undefined, customText1?: string | undefined, customText2?: string | undefined, limit?: number | undefined, page?: number | undefined}; export type GetApiV1CustomersFacilityFacilityCodeOptions = {baseUrl: string, https?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; /** * Get filtered customer data * * GET /v1/customers/facility/{facilityCode} */ export const getApiV1CustomersFacilityFacilityCode = async (args: GetApiV1CustomersFacilityFacilityCodeArgs, options: GetApiV1CustomersFacilityFacilityCodeOptions) => { const {baseUrl, fetch: fetchFn = fetch, https} = options ?? {} const query = new URLSearchParams() const headers = new Headers() if (args.type != null) query.append("type", String(args.type)) if (args.status != null) query.append("status", String(args.status)) if (args.waiverSigned != null) query.append("waiverSigned", String(args.waiverSigned)) if (args.birthdayMonth != null) query.append("birthdayMonth", String(args.birthdayMonth)) if (args.birthdayUpcoming != null) query.append("birthdayUpcoming", String(args.birthdayUpcoming)) if (args.firstContactDateEnding != null) query.append("firstContactDateEnding", String(args.firstContactDateEnding)) if (args.firstContactDateStarting != null) query.append("firstContactDateStarting", String(args.firstContactDateStarting)) if (args.lastVisitDateEnding != null) query.append("lastVisitDateEnding", String(args.lastVisitDateEnding)) if (args.lastVisitDateStarting != null) query.append("lastVisitDateStarting", String(args.lastVisitDateStarting)) if (args.lastEditDateEnding != null) query.append("lastEditDateEnding", String(args.lastEditDateEnding)) if (args.lastEditDateStarting != null) query.append("lastEditDateStarting", String(args.lastEditDateStarting)) if (args.firstName != null) query.append("firstName", String(args.firstName)) if (args.middleName != null) query.append("middleName", String(args.middleName)) if (args.lastName != null) query.append("lastName", String(args.lastName)) if (args.city != null) query.append("city", String(args.city)) if (args.state != null) query.append("state", String(args.state)) if (args.postalCode != null) query.append("postalCode", String(args.postalCode)) if (args.country != null) query.append("country", String(args.country)) if (args.ageGreaterThan != null) query.append("ageGreaterThan", String(args.ageGreaterThan)) if (args.ageLessThan != null) query.append("ageLessThan", String(args.ageLessThan)) if (args.onlineAccountLinked != null) query.append("onlineAccountLinked", String(args.onlineAccountLinked)) if (args.emailAddressPopulated != null) query.append("emailAddressPopulated", String(args.emailAddressPopulated)) if (args.emailAllowMarketing != null) query.append("emailAllowMarketing", String(args.emailAllowMarketing)) if (args.emailTouchDateEnding != null) query.append("emailTouchDateEnding", String(args.emailTouchDateEnding)) if (args.emailTouchDateStarting != null) query.append("emailTouchDateStarting", String(args.emailTouchDateStarting)) if (args.emailAddress != null) query.append("emailAddress", String(args.emailAddress)) if (args.customText1 != null) query.append("customText1", String(args.customText1)) if (args.customText2 != null) query.append("customText2", String(args.customText2)) if (args.limit != null) query.append("limit", String(args.limit)) if (args.page != null) query.append("page", String(args.page)) if (https !== undefined) headers.set('authorization', `Basic ${btoa(`${https.username}:${https.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/customers/facility/${encodeURIComponent(String(args.facilityCode))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };