UNPKG

laplace-api

Version:

Client library for Laplace API for the US stock market and BIST (Istanbul stock market) fundamental financial data.

76 lines (70 loc) 2.08 kB
import { Client } from "./client"; import { Region } from "./collections"; export interface PaginatedResponse<T> { recordCount: number; items: T[]; } export interface CapitalIncrease { id: number; boardDecisionDate: string | null; registeredCapitalCeiling: string; currentCapital: string; targetCapital: string; types: string[]; spkApplicationResult: string | null; spkApplicationDate: string | null; spkApprovalDate: string | null; paymentDate: string | null; registrationDate: string | null; specifiedCurrency: string; symbol: string; relatedDisclosureIds: number[]; rightsRate: string; rightsPrice: string; rightsTotalAmount: string; rightsStartDate: string | null; rightsEndDate: string | null; rightsLastSellDate: string | null; bonusRate: string; bonusTotalAmount: string; bonusStartDate: string | null; bonusDividendRate: string; bonusDividendTotalAmount: string; externalCapitalIncreaseAmount: string; externalCapitalIncreaseRate: string; } export class CapitalIncreaseClient extends Client { async getAllCapitalIncreases( size: number, region: Region, page?: number, ): Promise<PaginatedResponse<CapitalIncrease>> { return this.sendRequest<PaginatedResponse<CapitalIncrease>>({ method: "GET", url: "/api/v1/capital-increase/all", params: { region, size, ...(page != null && { page }) }, }); } async getCapitalIncreasesForInstrument( symbol: string, size: number, region: Region, page?: number, ): Promise<PaginatedResponse<CapitalIncrease>> { return this.sendRequest<PaginatedResponse<CapitalIncrease>>({ method: 'GET', url: `/api/v1/capital-increase/${symbol}`, params: { region, size, ...(page != null && { page }) }, }); } async getActiveRightsForInstrument( symbol: string, date?: string, ): Promise<CapitalIncrease[]> { return this.sendRequest<CapitalIncrease[]>({ method: 'GET', url: `/api/v1/rights/active/${symbol}`, params: { ...(date != null && { date }) }, }); } }