UNPKG

@mikle7/litty-api-client

Version:

TypeScript client for Litty API with clean, semantic type definitions

662 lines (661 loc) 31.9 kB
/* 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 { AnswerQuestion200ResponseFromJSON, AnswerQuestionRequestToJSON, CompleteSession200ResponseFromJSON, CompleteSessionRequestToJSON, CreateContest201ResponseFromJSON, CreateContestRequestToJSON, CreateContestRewards201ResponseFromJSON, CreateContestRewardsRequestToJSON, CreateContestTypeRequestToJSON, DebugCalculateWinners200ResponseFromJSON, EnterContest201ResponseFromJSON, EnterContestRequestToJSON, GetAllContestTypes200ResponseInnerFromJSON, GetAllContests200ResponseInnerFromJSON, GetContestById200ResponseFromJSON, GetContestEntries200ResponseFromJSON, GetContestPredictions200ResponseInnerFromJSON, GetContestRewards200ResponseInnerFromJSON, GetContestSession200ResponseFromJSON, GetContestSettlements200ResponseInnerFromJSON, SettleContest200ResponseFromJSON, SettleContestRequestToJSON, UpdateContestStatus200ResponseFromJSON, UpdateContestStatusRequestToJSON, } from '../models/index'; /** * */ export class ContestsApi extends runtime.BaseAPI { /** * Submit an answer for a contest question (Pick Pack or Traditional). * Answer contest question */ async answerQuestionRaw(requestParameters, initOverrides) { if (requestParameters['answerQuestionRequest'] == null) { throw new runtime.RequiredError('answerQuestionRequest', 'Required parameter "answerQuestionRequest" was null or undefined when calling answerQuestion().'); } 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/sessions/answer`, method: 'POST', headers: headerParameters, query: queryParameters, body: AnswerQuestionRequestToJSON(requestParameters['answerQuestionRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => AnswerQuestion200ResponseFromJSON(jsonValue)); } /** * Submit an answer for a contest question (Pick Pack or Traditional). * Answer contest question */ async answerQuestion(requestParameters, initOverrides) { const response = await this.answerQuestionRaw(requestParameters, initOverrides); return await response.value(); } /** * Mark a contest session as completed (Pick Pack or Traditional). * Complete contest session */ async completeSessionRaw(requestParameters, initOverrides) { if (requestParameters['completeSessionRequest'] == null) { throw new runtime.RequiredError('completeSessionRequest', 'Required parameter "completeSessionRequest" was null or undefined when calling completeSession().'); } 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/sessions/complete`, method: 'POST', headers: headerParameters, query: queryParameters, body: CompleteSessionRequestToJSON(requestParameters['completeSessionRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => CompleteSession200ResponseFromJSON(jsonValue)); } /** * Mark a contest session as completed (Pick Pack or Traditional). * Complete contest session */ async completeSession(requestParameters, initOverrides) { const response = await this.completeSessionRaw(requestParameters, initOverrides); return await response.value(); } /** * Create a new contest with flexible content linking options. Can be linked to shows, seasons, episodes, or be standalone. * Create a new contest */ async createContestRaw(requestParameters, initOverrides) { if (requestParameters['createContestRequest'] == null) { throw new runtime.RequiredError('createContestRequest', 'Required parameter "createContestRequest" was null or undefined when calling createContest().'); } 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`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreateContestRequestToJSON(requestParameters['createContestRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => CreateContest201ResponseFromJSON(jsonValue)); } /** * Create a new contest with flexible content linking options. Can be linked to shows, seasons, episodes, or be standalone. * Create a new contest */ async createContest(requestParameters, initOverrides) { const response = await this.createContestRaw(requestParameters, initOverrides); return await response.value(); } /** * Create reward structure for a specific contest. * Create contest rewards */ async createContestRewardsRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling createContestRewards().'); } if (requestParameters['createContestRewardsRequest'] == null) { throw new runtime.RequiredError('createContestRewardsRequest', 'Required parameter "createContestRewardsRequest" was null or undefined when calling createContestRewards().'); } 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/{id}/rewards`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'POST', headers: headerParameters, query: queryParameters, body: CreateContestRewardsRequestToJSON(requestParameters['createContestRewardsRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => CreateContestRewards201ResponseFromJSON(jsonValue)); } /** * Create reward structure for a specific contest. * Create contest rewards */ async createContestRewards(requestParameters, initOverrides) { const response = await this.createContestRewardsRaw(requestParameters, initOverrides); return await response.value(); } /** * Create a new contest type with the provided details. * Create a new contest type */ async createContestTypeRaw(requestParameters, initOverrides) { if (requestParameters['createContestTypeRequest'] == null) { throw new runtime.RequiredError('createContestTypeRequest', 'Required parameter "createContestTypeRequest" was null or undefined when calling createContestType().'); } 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/types`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreateContestTypeRequestToJSON(requestParameters['createContestTypeRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => GetAllContestTypes200ResponseInnerFromJSON(jsonValue)); } /** * Create a new contest type with the provided details. * Create a new contest type */ async createContestType(requestParameters, initOverrides) { const response = await this.createContestTypeRaw(requestParameters, initOverrides); return await response.value(); } /** * Calculate and preview contest winners without settling the contest. * Debug calculate winners */ async debugCalculateWinnersRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling debugCalculateWinners().'); } 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/{id}/debug-winners`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => DebugCalculateWinners200ResponseFromJSON(jsonValue)); } /** * Calculate and preview contest winners without settling the contest. * Debug calculate winners */ async debugCalculateWinners(requestParameters, initOverrides) { const response = await this.debugCalculateWinnersRaw(requestParameters, initOverrides); return await response.value(); } /** * Submit an entry for any type of contest. The system automatically detects contest type and handles entry accordingly. * Enter a contest (Unified for all contest types) */ async enterContestRaw(requestParameters, initOverrides) { if (requestParameters['enterContestRequest'] == null) { throw new runtime.RequiredError('enterContestRequest', 'Required parameter "enterContestRequest" was null or undefined when calling enterContest().'); } 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/entries`, method: 'POST', headers: headerParameters, query: queryParameters, body: EnterContestRequestToJSON(requestParameters['enterContestRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => EnterContest201ResponseFromJSON(jsonValue)); } /** * Submit an entry for any type of contest. The system automatically detects contest type and handles entry accordingly. * Enter a contest (Unified for all contest types) */ async enterContest(requestParameters, initOverrides) { const response = await this.enterContestRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieve a list of all available contest types. * Get all contest types */ async getAllContestTypesRaw(initOverrides) { 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/types`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GetAllContestTypes200ResponseInnerFromJSON)); } /** * Retrieve a list of all available contest types. * Get all contest types */ async getAllContestTypes(initOverrides) { const response = await this.getAllContestTypesRaw(initOverrides); return await response.value(); } /** * Retrieve a list of all contests with their associated markets and rewards, ordered by creation date (newest first). * Get all contests */ async getAllContestsRaw(initOverrides) { 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`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GetAllContests200ResponseInnerFromJSON)); } /** * Retrieve a list of all contests with their associated markets and rewards, ordered by creation date (newest first). * Get all contests */ async getAllContests(initOverrides) { const response = await this.getAllContestsRaw(initOverrides); return await response.value(); } /** * Retrieve a specific contest by its ID, including all associated markets and options. * Get contest by ID */ async getContestByIdRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getContestById().'); } 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/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => GetContestById200ResponseFromJSON(jsonValue)); } /** * Retrieve a specific contest by its ID, including all associated markets and options. * Get contest by ID */ async getContestById(requestParameters, initOverrides) { const response = await this.getContestByIdRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieve all entries for a specific contest with user information. * Get contest entries */ async getContestEntriesRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getContestEntries().'); } 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/{id}/entries`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => GetContestEntries200ResponseFromJSON(jsonValue)); } /** * Retrieve all entries for a specific contest with user information. * Get contest entries */ async getContestEntries(requestParameters, initOverrides) { const response = await this.getContestEntriesRaw(requestParameters, initOverrides); return await response.value(); } /** */ async getContestFlowDataRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getContestFlowData().'); } 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/flow-data/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** */ async getContestFlowData(requestParameters, initOverrides) { await this.getContestFlowDataRaw(requestParameters, initOverrides); } /** * Retrieve all predictions for a specific contest. * Get contest predictions */ async getContestPredictionsRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getContestPredictions().'); } 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/{id}/predictions`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GetContestPredictions200ResponseInnerFromJSON)); } /** * Retrieve all predictions for a specific contest. * Get contest predictions */ async getContestPredictions(requestParameters, initOverrides) { const response = await this.getContestPredictionsRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieve reward information for a specific contest. * Get contest rewards */ async getContestRewardsRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getContestRewards().'); } 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/{id}/rewards`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GetContestRewards200ResponseInnerFromJSON)); } /** * Retrieve reward information for a specific contest. * Get contest rewards */ async getContestRewards(requestParameters, initOverrides) { const response = await this.getContestRewardsRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieve session information for a contest entry. * Get contest session */ async getContestSessionRaw(requestParameters, initOverrides) { if (requestParameters['entryId'] == null) { throw new runtime.RequiredError('entryId', 'Required parameter "entryId" was null or undefined when calling getContestSession().'); } 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/entries/{entryId}/session`.replace(`{${"entryId"}}`, encodeURIComponent(String(requestParameters['entryId']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => GetContestSession200ResponseFromJSON(jsonValue)); } /** * Retrieve session information for a contest entry. * Get contest session */ async getContestSession(requestParameters, initOverrides) { const response = await this.getContestSessionRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieve settlement information for a specific contest. * Get contest settlements */ async getContestSettlementsRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getContestSettlements().'); } 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/{id}/settlements`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GetContestSettlements200ResponseInnerFromJSON)); } /** * Retrieve settlement information for a specific contest. * Get contest settlements */ async getContestSettlements(requestParameters, initOverrides) { const response = await this.getContestSettlementsRaw(requestParameters, initOverrides); return await response.value(); } /** * Retrieve a specific contest type by its ID. * Get contest type by ID */ async getContestTypeByIdRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getContestTypeById().'); } 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/types/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => GetAllContestTypes200ResponseInnerFromJSON(jsonValue)); } /** * Retrieve a specific contest type by its ID. * Get contest type by ID */ async getContestTypeById(requestParameters, initOverrides) { const response = await this.getContestTypeByIdRaw(requestParameters, initOverrides); return await response.value(); } /** * Settle a contest by providing the correct answers and calculating winners. * Settle a contest */ async settleContestRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling settleContest().'); } if (requestParameters['settleContestRequest'] == null) { throw new runtime.RequiredError('settleContestRequest', 'Required parameter "settleContestRequest" was null or undefined when calling settleContest().'); } 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/{id}/settle`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'POST', headers: headerParameters, query: queryParameters, body: SettleContestRequestToJSON(requestParameters['settleContestRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => SettleContest200ResponseFromJSON(jsonValue)); } /** * Settle a contest by providing the correct answers and calculating winners. * Settle a contest */ async settleContest(requestParameters, initOverrides) { const response = await this.settleContestRaw(requestParameters, initOverrides); return await response.value(); } /** * Update the status of an existing contest. * Update contest status */ async updateContestStatusRaw(requestParameters, initOverrides) { if (requestParameters['id'] == null) { throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateContestStatus().'); } if (requestParameters['updateContestStatusRequest'] == null) { throw new runtime.RequiredError('updateContestStatusRequest', 'Required parameter "updateContestStatusRequest" was null or undefined when calling updateContestStatus().'); } 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/{id}/status`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))), method: 'PATCH', headers: headerParameters, query: queryParameters, body: UpdateContestStatusRequestToJSON(requestParameters['updateContestStatusRequest']), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => UpdateContestStatus200ResponseFromJSON(jsonValue)); } /** * Update the status of an existing contest. * Update contest status */ async updateContestStatus(requestParameters, initOverrides) { const response = await this.updateContestStatusRaw(requestParameters, initOverrides); return await response.value(); } }