Events

Methods and related types for `scrims.events`.

Events (scrims.events)

Table of Contents

Methods

Method Signature
fetch fetch(eventId: string) => Promise<ScrimsEvent>
fetchAll fetchAll(calendarId: string) => Promise<CalendarEventsResponse>
update update(eventId: string, data: EventUpdateInput, newEtag: string) => Promise<EventUpsertResponse>
create create(data: EventCreateInput, etag: string) => Promise<EventUpsertResponse>
createBulk createBulk(events: EventCreateInput[]) => Promise<EventBulkCreateResponse>
updateBulk updateBulk(events: EventBulkUpdateInput[]) => Promise<EventBulkUpdateResponse>

Method Signatures

fetch

fetch(
  eventId: string,
): Promise<ScrimsEvent>

fetchAll

fetchAll(
  calendarId: string,
): Promise<CalendarEventsResponse>

update

update(
  eventId: string,
  data: EventUpdateInput,
  newEtag: string,
): Promise<EventUpsertResponse>

create

create(
  data: EventCreateInput,
  etag: string,
): Promise<EventUpsertResponse>

createBulk

createBulk(
  events: EventCreateInput[],
): Promise<EventBulkCreateResponse>

updateBulk

updateBulk(
  events: EventBulkUpdateInput[],
): Promise<EventBulkUpdateResponse>

Related Type References

JsonObject

type JsonObject = Record<string, unknown>;

ScrimsIdInput

type ScrimsIdInput = string;

ScrimsEvent

type ScrimsEvent = JsonObject
  & {
        _id?: string;
        calendar?: string;
        owner_id?: string;
        start_time?: string | Date;
        end_time?: string | Date;
        start_timezone?: string;
        end_timezone?: string;
        is_all_day?: boolean;
        recurrence?: string[];
        recurrence_id?: string;
        title?: string;
        subheading?: string;
        remove_assigned_roles?: boolean;
        descriptions?: EventDescription;
        color?: string;
        image_url?: string;
        location_meta?: LocationMeta;
        allowed_roles?: string[];
        banned_roles?: string[];
        assign_roles?: string[];
        primarily_hosting?: boolean;
        archived?: boolean;
        no_further_occurrence?: boolean;
        discarded?: boolean;
        guest_can_edit?: boolean;
        is_private?: boolean;
        logs?: JsonObject[];
        etag?: string;
        notifications?: EventNotification[];
        send_notifications?: boolean;
        template?: string | null;
        tickets?: EventTicket[];
        emailTemplates?: EmailTemplates;
        general?: General;
        register?: Register;
        waitlist?: Waitlist;
        estimate_guest_count?: number;
        migration_overrides?: JsonObject;
        created_at?: string | Date;
        updated_at?: string | Date;
      };

EventDescription

type EventDescription = JsonObject
  & {
        description?: string;
        objectives?: string[];
        specialNotes?: string[];
      };

EventNotification

type EventNotification = JsonObject
  & {
        message?: string;
        status?: number;
        before_in_minutes?: number;
        recipient?: string;
        ticket_type?: string;
      };

CustomQuestionValidation

type CustomQuestionValidation = JsonObject
  & {
        min_length?: number;
        max_length?: number;
        min_value?: number;
        max_value?: number;
        pattern?: string;
        custom_message?: string;
      };

CustomQuestion

type CustomQuestion = JsonObject
  & {
        _id?: string;
        question?: string;
        type?: string;
        required?: boolean;
        placeholder?: string;
        options?: string[];
        validation?: CustomQuestionValidation;
        help_text?: string;
        icon?: string;
        order?: number;
      };

RegistrationDeadline

type RegistrationDeadline = JsonObject
  & {
        days?: number;
        hours?: number;
        minutes?: number;
      };

General

type General = JsonObject
  & {
        allow_multiple_hosts?: boolean;
        allow_multiple_specs?: boolean;
        add_creator_as_host?: boolean;
        enable_tickets?: boolean;
        enable_registration_deadline?: boolean;
        total_capacity?: number;
        specs_label?: string;
        ticket_label?: string;
        host_label?: string;
        invited_label?: string;
        confirmed_label?: string;
        late_label?: string;
        tentative_label?: string;
        absence_label?: string;
        kicked_label?: string;
        ticket_icon?: string;
        invited_icon?: string;
        confirmed_icon?: string;
        late_icon?: string;
        tentative_icon?: string;
        absence_icon?: string;
        kicked_icon?: string;
        host_icon?: string;
        empty_icon?: string;
        signups_icon?: string;
        countdown_icon?: string;
        static_icon?: string;
        reset_specs_icon?: string;
        enable_bundles?: boolean;
        members_only?: boolean;
        allow_multiple_ticket?: boolean;
        registration_deadline?: RegistrationDeadline;
      };

LocationMeta

type LocationMeta = JsonObject
  & {
        address?: string;
        link?: string;
        type?: string;
      };

Register

type Register = JsonObject
  & {
        show_form?: boolean;
        custom_questions?: CustomQuestion[];
      };

Waitlist

type Waitlist = JsonObject
  & {
        waitlist_enabled?: boolean;
        waitlist_label?: string;
        waitlist_icon?: string;
        waitlist_message?: string;
        waitlist_time?: string;
        waitlist_threshold?: number;
        waitlist_max_capacity?: number;
        open_waitlist_if?: string[];
      };

EmailTemplates

type EmailTemplates = JsonObject
  & {
        accept_join_request?: string;
        decline_join_request?: string;
        invite_guests?: string;
        reminder?: string;
        cancellation?: string;
      };

TicketTag

type TicketTag = JsonObject
  & {
        name?: string;
        icon?: string;
      };

Fee

type Fee = JsonObject
  & {
        high?: number;
        low?: number;
        discount?: number;
        offer?: string;
        currency?: string;
        tax?: number;
      };

SalesPeriod

type SalesPeriod = JsonObject
  & {
        sales_start?: string | Date;
        sales_end?: string | Date;
        timezone?: string;
        utc?: string | Date;
      };

Capacity

type Capacity = JsonObject
  & {
        max_quantity_per_order?: number;
        min_quantity_per_order?: number;
        quantity_required?: number;
        max_quantity?: number;
        quantity_remaining?: number;
      };

Refunds

type Refunds = JsonObject
  & {
        allowed?: boolean;
        processed_by?: string;
      };

BoosterOverrides

type BoosterOverrides = JsonObject
  & {
        sales_period?: JsonObject;
        fee?: JsonObject;
        requires_approval?: boolean;
      };

EventTicket

type EventTicket = JsonObject
  & {
        _id?: string;
        name?: string;
        description?: string;
        color?: string;
        icon?: string;
        image?: string;
        ticket_specs?: TicketSpec[];
        ticket_tags?: TicketTag[];
        fee?: Fee;
        sales_period?: SalesPeriod;
        capacity?: Capacity;
        requires_approval?: boolean;
        refunds?: Refunds;
        booster_overrides?: BoosterOverrides;
      };

TicketSpec

type TicketSpec = JsonObject
  & {
        name?: string;
        icon?: string;
        color?: string;
        description?: string;
        max_capacity?: number;
      };

EventCreateInput

type EventCreateInput = JsonObject
  & {
        calendar?: (
        ScrimsIdInput
              | {
                        _id?: ScrimsIdInput;
                      }
        );
        owner_id?: ScrimsIdInput;
        title?: string;
        subheading?: string;
        start_time?: string;
        end_time?: string;
        start_timezone?: string;
        end_timezone?: string;
        is_all_day?: boolean;
        recurrence?: string[];
        recurrence_id?: string;
        remove_assigned_roles?: boolean;
        descriptions?: EventDescription;
        color?: string;
        image_url?: string;
        location_meta?: LocationMeta;
        allowed_roles?: string[];
        banned_roles?: string[];
        assign_roles?: string[];
        primarily_hosting?: boolean;
        guest_can_edit?: boolean;
        is_private?: boolean;
        notifications?: EventNotification[];
        send_notifications?: boolean;
        template?: ScrimsIdInput | null;
        tickets?: EventTicket[];
        emailTemplates?: EmailTemplates;
        general?: General;
        register?: Register;
        waitlist?: Waitlist;
        estimate_guest_count?: number;
        migration_overrides?: JsonObject;
        etag?: string;
      };

EventUpdateInput

type EventUpdateInput = JsonObject
  & {
        _id?: ScrimsIdInput;
        calendar?: (
        ScrimsIdInput
              | {
                        _id?: ScrimsIdInput;
                      }
        );
        owner_id?: ScrimsIdInput;
        title?: string;
        subheading?: string;
        start_time?: string;
        end_time?: string;
        start_timezone?: string;
        end_timezone?: string;
        is_all_day?: boolean;
        recurrence?: string[];
        recurrence_id?: string;
        remove_assigned_roles?: boolean;
        descriptions?: EventDescription;
        color?: string;
        image_url?: string;
        location_meta?: LocationMeta;
        allowed_roles?: string[];
        banned_roles?: string[];
        assign_roles?: string[];
        primarily_hosting?: boolean;
        archived?: boolean;
        no_further_occurrence?: boolean;
        discarded?: boolean;
        guest_can_edit?: boolean;
        is_private?: boolean;
        notifications?: EventNotification[];
        send_notifications?: boolean;
        template?: ScrimsIdInput | null;
        tickets?: EventTicket[];
        emailTemplates?: EmailTemplates;
        general?: General;
        register?: Register;
        waitlist?: Waitlist;
        estimate_guest_count?: number;
        migration_overrides?: JsonObject;
        etag?: string;
      };

EventBulkUpdateInput

type EventBulkUpdateInput = EventUpdateInput
  & {
        _id: ScrimsIdInput;
        etag: string;
      };

EventUpsertResponse

type EventUpsertResponse = {
  events: ScrimsEvent[];
  event: ScrimsEvent;
  saved: ScrimsEvent;
};

EventBulkCreateResponse

type EventBulkCreateResponse = {
    events: string[];
  }
  & JsonObject;

EventBulkUpdateResponse

type EventBulkUpdateResponse = {
    events: string[];
    saved?: string[];
    ids?: string[];
  }
  & JsonObject;

CalendarEventsResponse

type CalendarEventsResponse = {
    events: ScrimsEvent[];
  }
  & JsonObject;