coconut-open-api-js
Version:
Coconut Calendar JS Open API SDK
81 lines (80 loc) • 2.84 kB
TypeScript
import { AxiosInstance } from 'axios';
import { Pageable } from '../index';
import Conditional, { ConditionalResource } from './conditional';
export interface LocatableLocationParameters {
[key: string]: any;
city?: string;
country?: string;
region?: string;
}
export interface LocationFilter {
[key: string]: any;
assigned?: boolean;
invitable?: number;
invite_only_resources?: boolean;
preferred?: number;
method?: number;
services?: number | number[] | string | string[];
resource?: string;
user?: number | string;
user_category?: number | string;
virtual?: number;
}
export interface LocationParameters {
assignments?: number;
city?: string;
client_view_meeting_method?: number;
country?: string;
invite_only?: number;
invite_only_resources?: number;
preferred?: number;
province?: string;
service?: number | number[] | string | string[];
resource?: string;
user?: number | string;
user_category?: number | string;
virtual?: number;
}
export interface LocationResource extends Pageable, ConditionalResource {
assigned(assigned: boolean): this;
containing(user: number | string): this;
details(identifier: string): Promise<any>;
invitable(): this;
located(details: LocatableLocationParameters): this;
preferred(): this;
physical(): this;
providing(services: number | number[] | string | string[]): this;
suggest(query: string): Promise<any>;
supporting(method: number): this;
through(resource: string): this;
virtual(): this;
withInviteOnly(inviteOnlyResources?: boolean): this;
withinUserCategory(userCategory: number | string): this;
}
export default class Location extends Conditional implements LocationResource {
protected client: AxiosInstance;
protected filters: LocationFilter;
protected page: number | null;
protected sortable: string | null;
protected limit: number | null;
constructor(client: AxiosInstance);
assigned(assigned?: boolean): this;
containing(user: number | string): this;
details(identifier: string): Promise<any>;
get(): Promise<any>;
invitable(): this;
located(details: LocatableLocationParameters): this;
on(page: number): this;
preferred(): this;
physical(): this;
providing(services: number | number[] | string | string[]): this;
sortBy(sortable: string): this;
suggest(query: string): Promise<any>;
supporting(method: number): this;
take(limit: number): this;
through(resource: string): this;
virtual(): this;
withInviteOnly(inviteOnlyResources?: boolean): this;
withinUserCategory(userCategory: number | string): this;
protected params(): LocationParameters;
}