@mikle7/litty-api-client
Version:
TypeScript client for Litty API with clean, semantic type definitions
214 lines (213 loc) • 10.7 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 { CreateTransactionDtoToJSON, GetUserTransactions200ResponseFromJSON, InitiateTransaction201ResponseFromJSON, TransactionResponseDtoFromJSON, } from '../models/index';
/**
*
*/
export class TransactionsApi extends runtime.BaseAPI {
/**
* Retrieve detailed information about a specific transaction including its status, amounts, and metadata.
* Get transaction by ID
*/
async getTransactionRaw(requestParameters, initOverrides) {
if (requestParameters['id'] == null) {
throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getTransaction().');
}
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: `/transactions/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => TransactionResponseDtoFromJSON(jsonValue));
}
/**
* Retrieve detailed information about a specific transaction including its status, amounts, and metadata.
* Get transaction by ID
*/
async getTransaction(requestParameters, initOverrides) {
const response = await this.getTransactionRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve a paginated list of transactions filtered by status, ordered by creation date (newest first).
* Get transactions by status
*/
async getTransactionsByStatusRaw(requestParameters, initOverrides) {
if (requestParameters['status'] == null) {
throw new runtime.RequiredError('status', 'Required parameter "status" was null or undefined when calling getTransactionsByStatus().');
}
const queryParameters = {};
if (requestParameters['limit'] != null) {
queryParameters['limit'] = requestParameters['limit'];
}
if (requestParameters['offset'] != null) {
queryParameters['offset'] = requestParameters['offset'];
}
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: `/transactions/status/{status}`.replace(`{${"status"}}`, encodeURIComponent(String(requestParameters['status']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => GetUserTransactions200ResponseFromJSON(jsonValue));
}
/**
* Retrieve a paginated list of transactions filtered by status, ordered by creation date (newest first).
* Get transactions by status
*/
async getTransactionsByStatus(requestParameters, initOverrides) {
const response = await this.getTransactionsByStatusRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve a paginated list of transactions for a specific user, ordered by creation date (newest first).
* Get transactions for a user
*/
async getUserTransactionsRaw(requestParameters, initOverrides) {
if (requestParameters['userId'] == null) {
throw new runtime.RequiredError('userId', 'Required parameter "userId" was null or undefined when calling getUserTransactions().');
}
const queryParameters = {};
if (requestParameters['limit'] != null) {
queryParameters['limit'] = requestParameters['limit'];
}
if (requestParameters['offset'] != null) {
queryParameters['offset'] = requestParameters['offset'];
}
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: `/transactions/user/{userId}`.replace(`{${"userId"}}`, encodeURIComponent(String(requestParameters['userId']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => GetUserTransactions200ResponseFromJSON(jsonValue));
}
/**
* Retrieve a paginated list of transactions for a specific user, ordered by creation date (newest first).
* Get transactions for a user
*/
async getUserTransactions(requestParameters, initOverrides) {
const response = await this.getUserTransactionsRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Retrieve a paginated list of transactions for a specific wallet, ordered by creation date (newest first).
* Get transactions for a wallet
*/
async getWalletTransactionsRaw(requestParameters, initOverrides) {
if (requestParameters['walletId'] == null) {
throw new runtime.RequiredError('walletId', 'Required parameter "walletId" was null or undefined when calling getWalletTransactions().');
}
const queryParameters = {};
if (requestParameters['limit'] != null) {
queryParameters['limit'] = requestParameters['limit'];
}
if (requestParameters['offset'] != null) {
queryParameters['offset'] = requestParameters['offset'];
}
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: `/transactions/wallet/{walletId}`.replace(`{${"walletId"}}`, encodeURIComponent(String(requestParameters['walletId']))),
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => GetUserTransactions200ResponseFromJSON(jsonValue));
}
/**
* Retrieve a paginated list of transactions for a specific wallet, ordered by creation date (newest first).
* Get transactions for a wallet
*/
async getWalletTransactions(requestParameters, initOverrides) {
const response = await this.getWalletTransactionsRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Create a new transaction that will be validated and processed. This triggers the transaction workflow which may update wallet balances if approved.
* Initiate a new transaction
*/
async initiateTransactionRaw(requestParameters, initOverrides) {
if (requestParameters['createTransactionDto'] == null) {
throw new runtime.RequiredError('createTransactionDto', 'Required parameter "createTransactionDto" was null or undefined when calling initiateTransaction().');
}
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: `/transactions`,
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: CreateTransactionDtoToJSON(requestParameters['createTransactionDto']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => InitiateTransaction201ResponseFromJSON(jsonValue));
}
/**
* Create a new transaction that will be validated and processed. This triggers the transaction workflow which may update wallet balances if approved.
* Initiate a new transaction
*/
async initiateTransaction(requestParameters, initOverrides) {
const response = await this.initiateTransactionRaw(requestParameters, initOverrides);
return await response.value();
}
}
/**
* @export
*/
export const GetTransactionsByStatusStatusEnum = {
Pending: 'pending',
Completed: 'completed',
Failed: 'failed'
};