UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

101 lines 3.01 kB
import { XcapJsonResult, Thunk, XcapOptionalParameters } from '../api'; import XcapObject from '../api/XcapObject'; import CreatedDateAware from '../api/CreatedDateAware'; import ModifiedDateAware from '../api/ModifiedDateAware'; import CreatorUserIdAware from '../api/CreatorUserIdAware'; import ReferenceAble from '../api/ReferenceAble'; import ModerationAware from '../api/ModerationAware'; import NameAware from '../api/NameAware'; import ReferenceIdAware from '../api/ReferenceIdAware'; export declare const CALENDAR_CONTEXT = "calendar"; export declare const EVENT_CLASS = "net.josh.community.eventcalendar.Event"; /** * Event definition */ export interface Event extends XcapObject, CreatedDateAware, ModifiedDateAware, CreatorUserIdAware, ReferenceAble, ModerationAware { __type: 'net.josh.community.eventcalendar.Event'; calendarId: number; calendarRef: EventCalendar; locationId: number; categoryId: number; categoryRef: any; startDate: number; endDate: number; copyOf: number; eventDescriptionId: number; multipleDays: boolean; /** * Additional data (title, location, startTime, endTime, link) */ data: { [key: string]: string | number; }; rsvp: RsvpCounters; } /** * An event calendar */ export interface EventCalendar extends XcapObject, NameAware, ReferenceIdAware<XcapObject>, ReferenceAble, CreatedDateAware, ModifiedDateAware, ModerationAware { __type: 'net.josh.community.eventcalendar.EventCalendar'; } export declare enum RSVPStatus { UNKNOWN = "UNKNOWN", ACCEPTED = "ACCEPTED", INTERESTED = "INTERESTED", DECLINED = "DECLINED" } export interface RsvpCounters { nAccepted: number; nDeclined: number; nInterested: number; } /** * Maps from eventId to RSVPStatus for the current user */ export interface CurrentUserRsvpStatuses { [eventId: number]: RSVPStatus; } /** * A "set" of user ids */ export interface RsvpUserIds { [userId: number]: number; } export interface RsvpResult extends XcapJsonResult { success: boolean; eventContext: string; eventId: number; counts: { status: RSVPStatus; rsvp: RsvpCounters & { accepted: RsvpUserIds; interested: RsvpUserIds; declined: RsvpUserIds; }; }; } /** * Respond to an event invitation * @param eventId * @param status */ export declare function rsvp({ eventId, status }: { eventId: number; status: RSVPStatus; } & XcapOptionalParameters): Thunk<Promise<RsvpResult>>; /** * List user attending an event. * * @param eventId {number} * @param status {RSVPStatus} * @param p {number} Page * @param pageSize {number} Page size (defaults to 10) * @returns {Promise} */ export declare function listRsvpUsers({ eventId, status, p, pageSize }: { eventId: number; status: RSVPStatus; p?: number; pageSize?: number; } & XcapOptionalParameters): Thunk<Promise<XcapJsonResult>>; //# sourceMappingURL=index.d.ts.map