UNPKG

coconut-open-api-js

Version:
87 lines (86 loc) 2.9 kB
import { AxiosInstance } from 'axios'; import { AttendeeModel } from '../models/attendee'; import { PreferenceModel } from '../models/preference'; import Conditional, { ConditionalResource } from './conditional'; export interface WaitListAttributes { notes?: string; } export interface WaitListParameters { data: { attributes: { details?: string; }; relationships: { client?: { data: object; }; location?: { data: { id: string; type: string; }; }; preferences?: { data: object[]; }; service?: { data: { id: string; type: string; }; }; user?: { data: { id: string; type: string; }; }; }; type: string; }; } export interface WaitListRelationship { attendee?: AttendeeModel; location?: number | string; preferences?: PreferenceModel | PreferenceModel[]; service?: number | string; user?: number | string; } export interface WaitListResource extends ConditionalResource { add(): Promise<any>; at(location: number | string): this; belonging(client: number | string): this; find(list: number | string): Promise<any>; for(attendee: AttendeeModel): this; include(includes: string): this; prefers(preferences: PreferenceModel | PreferenceModel[]): this; provided(notes: string): this; remove(list: number | string): Promise<any>; seeking(service: number | string): this; update(list: number | string): Promise<any>; with(user: number | string): this; } export interface WaitListUrlParameters { client?: number | string; include?: string; } export default class WaitList extends Conditional implements WaitListResource { protected attributes: WaitListAttributes; protected client: AxiosInstance; protected parameters: WaitListUrlParameters; protected relationships: WaitListRelationship; constructor(client: AxiosInstance); add(): Promise<any>; at(location: number | string): this; belonging(client: number | string): this; find(list: number | string): Promise<any>; for(attendee: AttendeeModel): this; include(includes: string): this; prefers(preferences: PreferenceModel | PreferenceModel[]): this; provided(notes: string): this; remove(list: number | string): Promise<any>; seeking(service: number | string): this; update(list: number | string): Promise<any>; with(user: number | string): this; protected params(): WaitListParameters; }