bam-ticketing-sdk
Version:
SDK for B.A.M Ticketing API
503 lines • 24 kB
TypeScript
import { AxiosInstance } from 'axios';
import { HealthStatus, IdParam, ListInfo, QRCodePayload, StringIdParam } from '../common/types';
import { BlockchainFunctionParams } from '../blockchain/types';
import { TicketConfigId, Event, OrganizerSpecificId, NewEvent, OrganizerName, UpdatableEvent, TicketConfig, ListEventsQuery, SingleEventQuery, MyEventsQuery, PublicKey, TicketCount, QrCodeTicketConfig, CreateNftDrop, NftDrop, NftDropQuery, SingleNftDropQuery, UpdateNftDrop, NftDropFilterId, ListOrganizerEventsQuery, ListOrganizerEventTicketConfigsQuery, SingleOrganizerEventQuery, TicketDiscount, CreateTicketDiscount, UpdateTicketDiscount, SingleTicketDiscountQuery, CreateDiscountBatch, ListTicketDiscountQuery, TicketDiscountIdParam, CreatePromoSection, PromoSectionId, UpdatePromoSection, PromoSection, PrivateEventQuery, CreateTicketConfig, Sector, CreateSector, UpdateSector, SectorId, SingleSectorQuery, ListSectorQuery, Timeslot, CreateTimeslot, TimeslotId, UpdateTimeslot, SingleTimeslotQuery, ListTimeslotsQuery, ListInformationEmailQuery, InformationEmail, SingleInformationEmailQuery, CreateInformationEmail, UpdateInformationEmail, InformationEmailId, TicketFormat, Category, ListCategoryQuery, EventHolderList, ListQuestionnaireQuery, Questionnaire, CreateQuestionnaire, QuestionnaireQuery, UpdateQuestionnaire, ListQuestionQuery, Question, CreateQuestion, SendTicketsData, SendTicketsResponse } from './types';
/**
* Service class for event API calls. Requires an organizer to be set (call to `useOrganizer`)
*/
export declare class EventService {
readonly client: AxiosInstance;
readonly version: string;
constructor(client: AxiosInstance, version: string);
/**
* Returns true if the service is reachable
*
* @returns Services' online status
*/
health(): Promise<HealthStatus>;
/**
* Creates a new event. Subobjects except for the subcategory can be added later.
* `endAt` needs to be after `startAt` and both need to be in the future.
* After an event is created, it needs to be published to be available for purchase.
* To publish an event, it needs to have at least one ticket configuration.
*
* @returns new Event
*/
createEvent(name: OrganizerName, newEvent: NewEvent): Promise<Event>;
/**
* Updates existing event.
* @param id Org ID and event ID of the event you want to update
* @param updatedEventFields Fields on the event to be updated
* @returns new Event
*/
updateEvent(id: OrganizerSpecificId, updatedEventFields: UpdatableEvent): Promise<Event>;
/**
* Deletes existing event.
* @param id Org ID and event ID of the event you want to delete
*/
deleteEvent(id: OrganizerSpecificId): Promise<any>;
/**
* Cancels existing event.
* @param id Org ID and event ID of the event you want to cancel
*/
cancelEvent(id: OrganizerSpecificId): Promise<any>;
/**
* @param id Org ID and event ID of the event you want to publish
* @returns Publish event payload
*/
getEventPublishingPayload(id: OrganizerSpecificId): Promise<BlockchainFunctionParams>;
/**
* Returns payload when creating an event on the blockchain.
*
* @param id Org ID and event ID of the event you want to publish
* @returns payload to be when creating it on the blockchain
*/
getEventPublishPayload(id: OrganizerSpecificId): Promise<Event>;
/**
* Returns QR Code payload when creating an event on the blockchain.
*
* @param id Org ID and event ID of the event you want to publish
* @returns QR Code payload
*/
getEventPublishQRCodePayload(id: OrganizerSpecificId): Promise<QRCodePayload>;
/**
* Returns payload when updating an event on the blockchain.
*
* @param id Org ID and event ID of the event you want to publish
* @returns payload when updating an even on the blockchain
*/
getEventUpdatePayload(id: OrganizerSpecificId): Promise<Event>;
/**
* Returns QR Code payload when updating an event on the blockchain.
*
* @param id Org ID and event ID of the event you want to publish
* @returns QR Code payload
*/
getEventUpdateQRCodePayload(id: OrganizerSpecificId): Promise<QRCodePayload>;
/**
* Returns the public key for ticket signature validation
*
* @param id Org ID and event ID of the tickets
* @returns Public key for signature validation
*/
getTicketSigningKey(id: OrganizerSpecificId): Promise<PublicKey>;
/**
* Returns an event by its ID.
*
* @param req ID and additional query params
* @returns Event object
*/
getEvent(req: SingleEventQuery): Promise<Event>;
/**
* Returns an unpublished event by its ID.
*
* @param req ID and access_token of the event and additional query params
* @returns Event object
*/
getPrivateEvent(req: PrivateEventQuery): Promise<Event>;
/**
* Returns a list of active events.
*
* @param req.q String value for text-based search on event
* @param req.start_at Date range where the event start_at field is filtered
* @param req.include_occurrences If true, in case of recurring events it includes occurrences
* @param req.with Field selector query attribute
* @returns
*/
listEvents(req?: ListEventsQuery): Promise<ListInfo<Event>>;
listOrganizerEvents(id: OrganizerName, req?: ListOrganizerEventsQuery): Promise<ListInfo<Event>>;
getOrganizerEvent(id: OrganizerSpecificId, req?: SingleOrganizerEventQuery): Promise<Event>;
listOrganizerEventTicketConfigs(id: OrganizerSpecificId, req?: ListOrganizerEventTicketConfigsQuery): Promise<ListInfo<TicketConfig>>;
/**
* Returns a ticket configuration.
*
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.ticketConfigId ID of the ticket config
* @returns
*/
getTicketConfig(id: TicketConfigId): Promise<TicketConfig>;
/**
* Returns newly created ticket configuration.
*
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.id ID of the event to which the ticket config belongs to
* @param ticketConfig data based on which ticket config should be created
* @returns new ticket config
*/
createTicketConfig(id: OrganizerSpecificId, ticketConfig: CreateTicketConfig): Promise<TicketConfig>;
/**
* Returns updated ticket configuration.
*
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.ticketConfigId ID of the ticket config to be updated
* @param ticketConfig data based on which ticket config should be updated
* @returns new ticket config
*/
updateTicketConfig(id: TicketConfigId, ticketConfig: Partial<CreateTicketConfig>): Promise<TicketConfig>;
/**
* Deletes ticket config.
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.ticketConfigId ID of the ticket config to be deleted
*/
deleteTicketConfig(id: TicketConfigId): Promise<void>;
/**
* Returns payload when publishing a ticket config on the blockchain.
*
* @param id Org ID, event ID and ID of the ticket config you want to publish
* @returns payload when publishing a ticket config on the blockchain.
*/
getTicketConfigPublishPayload(id: TicketConfigId): Promise<TicketConfig>;
/**
* Returns QR Code payload when publishing a ticket config on the blockchain.
*
* @param id Org ID, event ID and ID of the ticket config you want to publish
* @returns QR Code payload
*/
getTicketConfigPublishQRCodePayload(id: TicketConfigId): Promise<QRCodePayload>;
/**
* Returns payload when updating a ticket config on the blockchain.
*
* @param id Org ID, event ID and ID of the ticket config you want to update
* @returns payload when updating a ticket config on the blockchain.
*/
getTicketConfigUpdatePayload(id: TicketConfigId): Promise<TicketConfig>;
/**
* Returns QR Code payload when updating a ticket config on the blockchain.
*
* @param id Org ID, event ID and ID of the ticket config you want to update
* @returns QR Code payload
*/
getTicketConfigUpdateQRCodePayload(id: TicketConfigId): Promise<QRCodePayload>;
/**
* Returns events with secure tickets for the authorized enrolled user.
*
* @param req.date Filter events by `end_at` date comparing with `midnight`. Expected values are `future`, `past` and `all`.
* @returns
*/
getMyEvents(req: MyEventsQuery): Promise<any>;
/**
* Returns ticket counts for a given event (one entry per ticket-configuration)
*
* @param req
* @returns
*/
getTicketCount(req: SingleEventQuery): Promise<TicketCount[]>;
/**
* Returns all qr-codes (for unused tickets) for a given event
*
* @param req
* @returns
*/
getQrCodes(req: SingleEventQuery): Promise<QrCodeTicketConfig[]>;
createNftDrop(nftDrop: CreateNftDrop): Promise<NftDrop>;
updateNftDrop(nftDrop: UpdateNftDrop): Promise<NftDrop>;
sendNftDrop(id: OrganizerSpecificId): Promise<void>;
deleteNftDrop(id: OrganizerSpecificId): Promise<void>;
deleteNftDropFilter(id: NftDropFilterId): Promise<void>;
/**
* Returns a specific NFT collection with the given relations
*/
getNftDrop(id: OrganizerSpecificId, req?: SingleNftDropQuery): Promise<NftDrop>;
listNftDrops(id: OrganizerName, req?: NftDropQuery): Promise<ListInfo<NftDrop>>;
/**
* Creates a ticket discount.
* @param id.organizerId Name of the organizer to whom the ticket discount belongs to
* @param id.eventId ID of the event to which the ticket discount belongs to
* @returns new TicketDiscount
*/
createTicketDiscount(id: OrganizerSpecificId, ticketDiscount: CreateTicketDiscount): Promise<TicketDiscount>;
/**
* Updates ticket discount.
* @param id.organizerId Name of the organizer to whom the ticket discount belongs to
* @param id.eventId ID of the event to which the ticket discount belongs to
* @param id.id ID of the ticket discount to update
* @returns updated ticket discount
*/
updateTicketDiscount(id: TicketDiscountIdParam, ticketDiscount: UpdateTicketDiscount): Promise<TicketDiscount>;
/**
* Deletes ticket discount.
* @param id.organizerId Name of the organizer to whom the ticket discount belongs to
* @param id.eventId ID of the event to which the ticket discount belongs to
* @param id.id ID of the ticket discount to be deleted
*/
deleteTicketDiscount(id: TicketDiscountIdParam): Promise<void>;
/**
* Fetches ticket discount.
* @param id.organizerId Name of the organizer to whom the ticket discount belongs to
* @param id.eventId ID of the event to which the ticket discount belongs to
* @param id.id ID of the ticket discount to be fetched
*/
getTicketDiscount(id: TicketDiscountIdParam, req?: SingleTicketDiscountQuery): Promise<TicketDiscount>;
/**
* Creates discounts in batches.
* @param id.organizerId Name of the organizer to whom the ticket discount belongs to
* @param id.eventId ID of the event to which the ticket discount belongs to
* @param id.id ID of the ticket discount to be duplicated
*/
createDiscountBatch(id: TicketDiscountIdParam, discountBatch: CreateDiscountBatch): Promise<TicketDiscount>;
listTicketDiscounts(id: OrganizerSpecificId, req?: ListTicketDiscountQuery): Promise<ListInfo<TicketDiscount>>;
/**
* Create a single promo section
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.TicketConfigId ID of the ticket config which the promo section should belong to
* @param promoSection Created promo section
* @returns The created promo section
*/
createPromoSection(id: TicketConfigId, promoSection: CreatePromoSection): Promise<PromoSection>;
/**
* Update a single promo section
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.ticketConfigId ID of the ticket config which the promo section belongs to
* @param id.id ID of the promo section
* @param promoSection Updated promo section
* @returns The updated promo section
*/
updatePromoSection(id: PromoSectionId, promoSection: UpdatePromoSection): Promise<PromoSection>;
/**
* Get a single promo section
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.ticketConfigId ID of the ticket config which the promo section belongs to
* @param id.id ID of the promo section
* @returns Single promo section
*/
getPromoSection(id: PromoSectionId): Promise<PromoSection>;
/**
* List promo sections
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.ticketConfigId ID of the ticket config which the promo section belongs to
* @returns List of the promo sections
*/
listPromoSections(id: TicketConfigId): Promise<ListInfo<PromoSection>>;
/**
* Delete a single promo section
* @param id.organizerId Name of the organizer to whom the ticket config belongs to
* @param id.eventId ID of the event to which the ticket config belongs to
* @param id.ticketConfigId ID of the ticket config which the promo section belongs to
* @param id.id ID of the promo section
*/
deletePromoSection(id: PromoSectionId): Promise<void>;
/**
* Create a sector on an event.
* @param id.id ID of the event the sector should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param sector The sector that should be created
* @param sector.ticketConfig IDs of the ticket configs that should be applied to the sector
*/
createSector(id: OrganizerSpecificId, sector: CreateSector): Promise<Sector>;
/**
* Update a sector on an event.
* @param id.eventId ID of the event which the sector belongs to
* @param id.organizerId Name of the organizer the event is belonging to
* @param id.id ID of the sector that should be updated
* @param sector.ticketConfig IDs of the ticket configs that should be applied to the sector
*/
updateSector(id: SectorId, sector: UpdateSector): Promise<Sector>;
/**
* List sectors on an event
* @param id.id ID of the event the sector should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param query.with Allows fetching the associated ticket configs with the sector
*/
listSectors(id: OrganizerSpecificId, query?: ListSectorQuery): Promise<ListInfo<Sector>>;
/**
* Get a sector on an event
* @param id.eventId ID of the event which the sector belongs to
* @param id.organizerId Name of the organizer the event is belonging to
* @param id.id ID of the sector that should be fetched
* @param query Allows fetching the associated ticket configs with the sector
*/
getSector(id: SectorId, query?: SingleSectorQuery): Promise<Sector>;
/**
* Delete a sector from an event
* @param id.eventId ID of the event which the sector belongs to
* @param id.organizerId Name of the organizer the event is belonging to
* @param id.id ID of the sector that should be deleted
*/
deleteSector(id: SectorId): Promise<void>;
/**
* Create a timeslot on an event.
* @param id.id ID of the event the timeslot should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param timeslot The timeslot that should be created
* @param timeslot.ticketConfig IDs of the ticket configs that should be applied to the timeslot
*/
createTimeslot(id: OrganizerSpecificId, timeslot: CreateTimeslot): Promise<Timeslot>;
/**
* Update a timeslot on an event.
* @param id.eventId ID of the event which the timeslot belongs to
* @param id.organizerId Name of the organizer the event is belonging to
* @param id.id ID of the timeslot that should be updated
* @param timeslot.ticketConfig IDs of the ticket configs that should be applied to the timeslot
*/
updateTimeslot(id: TimeslotId, timeslot: UpdateTimeslot): Promise<Timeslot>;
/**
* Get a timeslot on an event
* @param id.eventId ID of the event which the timeslot belongs to
* @param id.organizerId Name of the organizer the event is belonging to
* @param id.id ID of the timeslot that should be fetched
* @param query Allows fetching the associated ticket configs with the timeslot
*/
getTimeslot(id: TimeslotId, query?: SingleTimeslotQuery): Promise<Timeslot>;
/**
* Delete a timeslot from an event
* @param id.eventId ID of the event which the timeslot belongs to
* @param id.organizerId Name of the organizer the event is belonging to
* @param id.id ID of the timeslot that should be deleted
*/
deleteTimeslot(id: TimeslotId): Promise<void>;
/**
* List timeslots on an event
* @param id.id ID of the event the timeslot should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param query.with Allows fetching the associated ticket configs with the timeslots
*/
listTimeslots(id: OrganizerSpecificId, query?: ListTimeslotsQuery): Promise<ListInfo<Timeslot>>;
/**
* List all emails in all states for an event.
* @param id.id ID of the event the emails should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param query.with Allows fetching the associated ticket configs for the information email filter
*/
listInformationEmails(id: OrganizerSpecificId, query?: ListInformationEmailQuery): Promise<ListInfo<InformationEmail>>;
/**
* Get one information email.
* @param id.id ID of the event the emails should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param emailId ID of the information email that should be fetched
*/
getInformationEmail(id: InformationEmailId, query?: SingleInformationEmailQuery): Promise<InformationEmail>;
/**
* Saves an information email.
* @param id.id ID of the event the emails should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param informationEmail Information email data that should be saved
*/
saveInformationEmail(id: OrganizerSpecificId, informationEmail: CreateInformationEmail): Promise<InformationEmail>;
/**
* Update an information email.
* @param id.eventId ID of the event the emails should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param id.id ID of the information email that should be updated
* @param informationEmail Information email data that should be updated
*/
updateInformationEmail(id: InformationEmailId, informationEmail: UpdateInformationEmail): Promise<InformationEmail>;
/**
* Send an information email to all recipients.
* @param id.eventId ID of the event the emails should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param id.id ID of the information email that should be sent
*/
sendInformationEmail(id: InformationEmailId): Promise<void>;
/**
* Delete an information email.
* @param id.eventId ID of the event the emails should belong to
* @param id.organizerId Name of the organizer whom the event belongs to
* @param id.id ID of the information email that should be sent
*/
deleteInformationEmail(id: InformationEmailId): Promise<void>;
/**
* List ticket formats
* @returns Array of ticket formats
*/
listTicketFormats(): Promise<ListInfo<TicketFormat>>;
/**
* Fetch ticket format
* @param id.id ID of the ticket format
* @returns ticket format
*/
getTicketFormat(id: IdParam): Promise<TicketFormat>;
/**
* List event categories
* @returns Array of categories
*/
listEventCategories(req?: ListCategoryQuery): Promise<ListInfo<Category>>;
/**
* Returns a per-ticket-config array of enrollment IDs for ticket holders
*
* @param id Org ID and event ID of the tickets
* @returns Public key for signature validation
*/
getHolderList(id: OrganizerSpecificId): Promise<EventHolderList>;
/**
* Returns all questionnaires for given organizer
*
* @param id.id Organizer ID
*/
listOrganizerQuestionnaires(id: StringIdParam, query?: ListQuestionnaireQuery): Promise<ListInfo<Questionnaire>>;
/**
* Creates new questionnaire
*
* @param id.id Organizer ID
* @param questionnaireData Data based on which new questionnaire is created
*/
createQuestionnaire(id: StringIdParam, questionnaireData: CreateQuestionnaire): Promise<Questionnaire>;
/**
* Fetches queried questionnaire
*
* @param id.id Questionnaire ID
* @param id.organizerId Organizer ID
*/
getOrganizerQuestionnaire(id: OrganizerSpecificId, query?: QuestionnaireQuery): Promise<Questionnaire>;
/**
* Updates existing questionnaire
*
* @param id.id Questionnaire ID
* @param id.organizerId Organizer ID
* @param questionnaireData Data based on which questionnaire is updated
*/
updateQuestionnaire(id: OrganizerSpecificId, questionnaireData: UpdateQuestionnaire): Promise<Questionnaire>;
/**
* Deletes questionnaire with specified ID
*
* @param id.id Questionnaire ID
* @param id.organizerId Organizer ID
*/
deleteQuestionnaire(id: OrganizerSpecificId): Promise<void>;
/**
* Fetches queried questionnaire
*
* @param id.id Questionnaire ID
*/
getQuestionnaire(id: StringIdParam, query?: QuestionnaireQuery): Promise<Questionnaire>;
/**
* Returns all questions for given organizer
*
* @param id.id Organizer ID
*/
listOrganizerQuestions(id: StringIdParam, query?: ListQuestionQuery): Promise<ListInfo<Question>>;
/**
* Creates new question
*
* @param id.id Organizer ID
* @param questionData Data based on which new question is created
*/
createQuestion(id: StringIdParam, questionData: CreateQuestion): Promise<Question>;
/**
* Fetches queried question
*
* @param id.id Question ID
* @param id.organizerId Organizer ID
*/
getQuestion(id: OrganizerSpecificId): Promise<Question>;
/**
* Deletes question with specified ID
*
* @param id.id Question ID
* @param id.organizerId Organizer ID
*/
deleteQuestion(id: OrganizerSpecificId): Promise<void>;
/**
* Sends tickets to users with provided emails
*
* @param ticketsData Data based on which the tickets are sent
*/
sendTickets(ticketsData: SendTicketsData): Promise<SendTicketsResponse>;
}
//# sourceMappingURL=service.d.ts.map