@stackend/api
Version:
JS bindings to api.stackend.com
101 lines • 3.01 kB
TypeScript
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