@mikle7/litty-api-client
Version:
TypeScript client for Litty API with clean, semantic type definitions
215 lines (214 loc) • 11.4 kB
JavaScript
/* tslint:disable */
/* eslint-disable */
/**
* Litty API
* Complete API documentation for the Litty platform. ## Authentication Most endpoints require authentication via Supabase JWT tokens. Include the token in the Authorization header: `Bearer <token>` ## API Structure - **Contests**: Create and manage contests, entries, and settlements - **Markets**: Manage prediction markets within contests - **Transactions**: Handle financial transactions for contest entries and rewards - **Wallet**: Manage user wallet balances (cashable, points, tickets) - **Users**: User management and profiles - **Leaderboards**: Competition rankings and scoring - **Uploads**: File upload management - **Shows**: TV show and episode management (admin only) ## Response Formats All endpoints return JSON responses with consistent error handling. Error responses include `statusCode`, `message`, and `error` fields.
*
* The version of the OpenAPI document: 1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import * as runtime from '../runtime';
import { CreateMarket201ResponseFromJSON, GetMarketsByContestId200ResponseInnerFromJSON, SettleMarket200ResponseFromJSON, UpdateMarket200ResponseFromJSON, UpdateMarketStatus200ResponseFromJSON, } from '../models/index';
/**
*
*/
export class ContestsMarketsApi extends runtime.BaseAPI {
/**
* Create a new prediction market for a contest with multiple options for users to choose from.
* Create a new market
*/
async createMarketRaw(requestParameters, initOverrides) {
if (requestParameters['contestId'] == null) {
throw new runtime.RequiredError('contestId', 'Required parameter "contestId" was null or undefined when calling createMarket().');
}
if (requestParameters['body'] == null) {
throw new runtime.RequiredError('body', 'Required parameter "body" was null or undefined when calling createMarket().');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
const token = this.configuration.accessToken;
const tokenString = await token("JWT-auth", []);
if (tokenString) {
headerParameters["Authorization"] = `Bearer ${tokenString}`;
}
}
const response = await this.request({
path: `/contests/{contestId}/markets`.replace(`{${"contestId"}}`, encodeURIComponent(String(requestParameters['contestId']))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: requestParameters['body'],
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => CreateMarket201ResponseFromJSON(jsonValue));
}
/**
* Create a new prediction market for a contest with multiple options for users to choose from.
* Create a new market
*/
async createMarket(requestParameters, initOverrides) {
const response = await this.createMarketRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve all markets associated with a specific contest, including their options.
* Get markets for a contest
*/
async getMarketsByContestIdRaw(requestParameters, initOverrides) {
if (requestParameters['contestId'] == null) {
throw new runtime.RequiredError('contestId', 'Required parameter "contestId" was null or undefined when calling getMarketsByContestId().');
}
const queryParameters = {};
const headerParameters = {};
if (this.configuration && this.configuration.accessToken) {
const token = this.configuration.accessToken;
const tokenString = await token("JWT-auth", []);
if (tokenString) {
headerParameters["Authorization"] = `Bearer ${tokenString}`;
}
}
const response = await this.request({
path: `/contests/{contestId}/markets`.replace(`{${"contestId"}}`, encodeURIComponent(String(requestParameters['contestId']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GetMarketsByContestId200ResponseInnerFromJSON));
}
/**
* Retrieve all markets associated with a specific contest, including their options.
* Get markets for a contest
*/
async getMarketsByContestId(requestParameters, initOverrides) {
const response = await this.getMarketsByContestIdRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Settle a market by specifying the correct answer/winning option.
* Settle a market
*/
async settleMarketRaw(requestParameters, initOverrides) {
if (requestParameters['contestId'] == null) {
throw new runtime.RequiredError('contestId', 'Required parameter "contestId" was null or undefined when calling settleMarket().');
}
if (requestParameters['marketId'] == null) {
throw new runtime.RequiredError('marketId', 'Required parameter "marketId" was null or undefined when calling settleMarket().');
}
if (requestParameters['body'] == null) {
throw new runtime.RequiredError('body', 'Required parameter "body" was null or undefined when calling settleMarket().');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
const token = this.configuration.accessToken;
const tokenString = await token("JWT-auth", []);
if (tokenString) {
headerParameters["Authorization"] = `Bearer ${tokenString}`;
}
}
const response = await this.request({
path: `/contests/{contestId}/markets/{marketId}/settle`.replace(`{${"contestId"}}`, encodeURIComponent(String(requestParameters['contestId']))).replace(`{${"marketId"}}`, encodeURIComponent(String(requestParameters['marketId']))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: requestParameters['body'],
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => SettleMarket200ResponseFromJSON(jsonValue));
}
/**
* Settle a market by specifying the correct answer/winning option.
* Settle a market
*/
async settleMarket(requestParameters, initOverrides) {
const response = await this.settleMarketRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Update market details such as name, description, or point value.
* Update a market
*/
async updateMarketRaw(requestParameters, initOverrides) {
if (requestParameters['contestId'] == null) {
throw new runtime.RequiredError('contestId', 'Required parameter "contestId" was null or undefined when calling updateMarket().');
}
if (requestParameters['marketId'] == null) {
throw new runtime.RequiredError('marketId', 'Required parameter "marketId" was null or undefined when calling updateMarket().');
}
if (requestParameters['body'] == null) {
throw new runtime.RequiredError('body', 'Required parameter "body" was null or undefined when calling updateMarket().');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
const token = this.configuration.accessToken;
const tokenString = await token("JWT-auth", []);
if (tokenString) {
headerParameters["Authorization"] = `Bearer ${tokenString}`;
}
}
const response = await this.request({
path: `/contests/{contestId}/markets/{marketId}`.replace(`{${"contestId"}}`, encodeURIComponent(String(requestParameters['contestId']))).replace(`{${"marketId"}}`, encodeURIComponent(String(requestParameters['marketId']))),
method: 'PATCH',
headers: headerParameters,
query: queryParameters,
body: requestParameters['body'],
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => UpdateMarket200ResponseFromJSON(jsonValue));
}
/**
* Update market details such as name, description, or point value.
* Update a market
*/
async updateMarket(requestParameters, initOverrides) {
const response = await this.updateMarketRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Update the status of a market (Draft, Open, Closed, Settled).
* Update market status
*/
async updateMarketStatusRaw(requestParameters, initOverrides) {
if (requestParameters['contestId'] == null) {
throw new runtime.RequiredError('contestId', 'Required parameter "contestId" was null or undefined when calling updateMarketStatus().');
}
if (requestParameters['marketId'] == null) {
throw new runtime.RequiredError('marketId', 'Required parameter "marketId" was null or undefined when calling updateMarketStatus().');
}
if (requestParameters['body'] == null) {
throw new runtime.RequiredError('body', 'Required parameter "body" was null or undefined when calling updateMarketStatus().');
}
const queryParameters = {};
const headerParameters = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
const token = this.configuration.accessToken;
const tokenString = await token("JWT-auth", []);
if (tokenString) {
headerParameters["Authorization"] = `Bearer ${tokenString}`;
}
}
const response = await this.request({
path: `/contests/{contestId}/markets/{marketId}/status`.replace(`{${"contestId"}}`, encodeURIComponent(String(requestParameters['contestId']))).replace(`{${"marketId"}}`, encodeURIComponent(String(requestParameters['marketId']))),
method: 'PATCH',
headers: headerParameters,
query: queryParameters,
body: requestParameters['body'],
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => UpdateMarketStatus200ResponseFromJSON(jsonValue));
}
/**
* Update the status of a market (Draft, Open, Closed, Settled).
* Update market status
*/
async updateMarketStatus(requestParameters, initOverrides) {
const response = await this.updateMarketStatusRaw(requestParameters, initOverrides);
return await response.value();
}
}