bam-ticketing-sdk
Version:
SDK for B.A.M Ticketing API
51 lines (43 loc) • 1.14 kB
text/typescript
import { AxiosInstance } from 'axios'
import { HealthStatus, IdParam } from '../common/types'
import { Offer } from './types'
/**
* Service class for orderbook API calls. Requires an organizer to be set (call to `useOrganizer`)
*/
export class OrderbookService {
constructor(readonly client: AxiosInstance, readonly version: string) { }
/**
* Returns true if the service is reachable
* Currently the
*
* @returns Services' online status
*/
async health(): Promise<HealthStatus> {
try {
const res = await this.client.get(`orderbook/health`)
if (res.data.status === 'ok') {
return { online: true }
}
} catch (e) {
// Do nothing
}
return { online: false }
}
/**
* Returns all offers which belong to the current user
*
* @returns
*/
async getMine(): Promise<Offer[]> {
const res = await this.client.get(`orderbook/${this.version}/offer/mine`)
return res.data.data
}
/**
* Delete the given offer from the orderbook
*
* @param offerId
*/
async deleteOffer(offerId: IdParam): Promise<void> {
await this.client.delete(`orderbook/${this.version}/offer/${offerId.id}`)
}
}