Skip to content

Commit 2cb63d4

Browse files
authored
update for new summaries endpoint (#113)
* added the stocks summary endpoint to the client libary: * feat: added summaries to each asset type and asset client
1 parent e622d3a commit 2cb63d4

File tree

8 files changed

+129
-0
lines changed

8 files changed

+129
-0
lines changed

src/rest/crypto/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import {
3030
snapshotTicker,
3131
snapshotTickerFullBookL2,
3232
} from "./snapshots";
33+
import { ISummaries, ISummariesQuery } from "../stocks/summaries";
34+
import { summaries } from "./summaries";
3335

3436
export {
3537
ICryptoDailyOpenCloseQuery,
@@ -57,6 +59,7 @@ export interface ICryptoClient {
5759
date: string,
5860
query?: IAggsGroupedDailyQuery
5961
) => Promise<IAggsGroupedDaily>;
62+
summaries: (query?: ISummariesQuery) => Promise<ISummaries>;
6063
dailyOpenClose: (
6164
from: string,
6265
to: string,
@@ -90,6 +93,7 @@ export const cryptoClient = (
9093
): ICryptoClient => ({
9194
aggregates: auth(apiKey, aggregates, apiBase),
9295
aggregatesGroupedDaily: auth(apiKey, aggregatesGroupedDaily, apiBase),
96+
summaries: auth(apiKey, summaries, apiBase),
9397
dailyOpenClose: auth(apiKey, dailyOpenClose, apiBase),
9498
lastTrade: auth(apiKey, lastTrade, apiBase),
9599
trades: auth(apiKey, trades, apiBase),

src/rest/crypto/summaries.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// CF:
2+
3+
import { get } from "../transport/request";
4+
import { ISummaries, ISummariesQuery } from "../stocks/summaries";
5+
6+
export const summaries = async (
7+
apikey: string,
8+
apiBase: string,
9+
query?: ISummariesQuery
10+
): Promise<ISummaries> =>
11+
get(
12+
`/v1/summaries`,
13+
apikey,
14+
apiBase,
15+
query
16+
);

src/rest/forex/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import {
2424
snapshotGainersLosers,
2525
snapshotTicker,
2626
} from "./snapshots";
27+
import { ISummaries, ISummariesQuery } from "../stocks/summaries";
28+
import { summaries } from "./summaries";
2729

2830
export { IConversionQuery, IConversion } from "./conversion";
2931
export { IForexQuotes } from "./quotes";
@@ -51,6 +53,7 @@ export interface IForexClient {
5153
date: string,
5254
query?: IAggsGroupedDailyQuery
5355
) => Promise<IAggsGroupedDaily>;
56+
summaries: (query?: ISummariesQuery) => Promise<ISummaries>;
5457
conversion: (
5558
from: string,
5659
to: string,
@@ -80,6 +83,7 @@ export const forexClient = (
8083
): IForexClient => ({
8184
aggregates: auth(apiKey, aggregates, apiBase),
8285
aggregatesGroupedDaily: auth(apiKey, aggregatesGroupedDaily, apiBase),
86+
summaries: auth(apiKey, summaries, apiBase),
8387
conversion: auth(apiKey, conversion, apiBase),
8488
quotes: auth(apiKey, quotes, apiBase),
8589
lastQuote: auth(apiKey, lastQuote, apiBase),

src/rest/forex/summaries.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// CF:
2+
3+
import { get } from "../transport/request";
4+
import { ISummaries, ISummariesQuery } from "../stocks/summaries";
5+
6+
export const summaries = async (
7+
apikey: string,
8+
apiBase: string,
9+
query?: ISummariesQuery
10+
): Promise<ISummaries> =>
11+
get(
12+
`/v1/summaries`,
13+
apikey,
14+
apiBase,
15+
query
16+
);

src/rest/options/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import { IOptionTrades, trades } from "./trades";
1717
import { IOptionsLastTrade, lastTrade } from "./lastTrade";
1818
import { IOptionQuotes, quotes } from "./quotes";
1919
import { IOptionsSnapshotContract, snapshotOptionContract } from "./snapshots";
20+
import { ISummaries, ISummariesQuery } from "../stocks/summaries";
21+
import { summaries } from "./summaries";
2022

2123
export {
2224
IOptionsDailyOpenCloseQuery,
@@ -36,6 +38,7 @@ export interface IOptionsClient {
3638
to: string,
3739
query?: IAggsQuery
3840
) => Promise<IAggs>;
41+
summaries: (query?: ISummariesQuery) => Promise<ISummaries>;
3942
dailyOpenClose: (
4043
symbol: string,
4144
date: string,
@@ -65,6 +68,7 @@ export const optionsClient = (
6568
apiBase = "https://api.polygon.io"
6669
): IOptionsClient => ({
6770
aggregates: auth(apiKey, aggregates, apiBase),
71+
summaries: auth(apiKey, summaries, apiBase),
6872
dailyOpenClose: auth(apiKey, dailyOpenClose, apiBase),
6973
previousClose: auth(apiKey, previousClose, apiBase),
7074
trades: auth(apiKey, trades, apiBase),

src/rest/options/summaries.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// CF:
2+
3+
import { get } from "../transport/request";
4+
import { ISummaries, ISummariesQuery } from "../stocks/summaries";
5+
6+
export const summaries = async (
7+
apikey: string,
8+
apiBase: string,
9+
query?: ISummariesQuery
10+
): Promise<ISummaries> =>
11+
get(
12+
`/v1/summaries`,
13+
apikey,
14+
apiBase,
15+
query
16+
);

src/rest/stocks/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import {
2828
} from "./snapshots";
2929
import { IQuotes, quotes } from "./quotes";
3030
import { ITradesQuotesQuery, ITrades, trades } from "./trades";
31+
import { ISummaries, ISummariesQuery, summaries } from "./summaries";
3132

3233
export { IAggsQuery, IAggs } from "./aggregates";
3334
export {
@@ -59,6 +60,7 @@ export interface IStocksClient {
5960
date: string,
6061
query?: IAggsGroupedDailyQuery
6162
) => Promise<IAggsGroupedDaily>;
63+
summaries: (query?: ISummariesQuery) => Promise<ISummaries>;
6264
dailyOpenClose: (
6365
symbol: string,
6466
date: string,
@@ -87,6 +89,7 @@ export const stocksClient = (
8789
): IStocksClient => ({
8890
aggregates: auth(apiKey, aggregates, apiBase),
8991
aggregatesGroupedDaily: auth(apiKey, aggregatesGroupedDaily, apiBase),
92+
summaries: auth(apiKey, summaries, apiBase),
9093
dailyOpenClose: auth(apiKey, dailyOpenClose, apiBase),
9194
lastQuote: auth(apiKey, lastQuote, apiBase),
9295
lastTrade: auth(apiKey, lastTrade, apiBase),

src/rest/stocks/summaries.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// CF:
2+
3+
import { get, IPolygonQuery } from "../transport/request";
4+
5+
export interface IBranding {
6+
icon_url: string;
7+
logo_url: string;
8+
}
9+
10+
export interface IOptions {
11+
contract_type: 'put' | 'call' | 'other';
12+
exercise_style: 'american' | 'european' | 'bermudan';
13+
expiration_date: string;
14+
shares_per_contract: number;
15+
strike_price: number;
16+
underlying_ticker: string;
17+
}
18+
19+
export interface ISession {
20+
change: number;
21+
change_percent: number;
22+
close: number;
23+
early_trading_change: number;
24+
early_trading_change_percent: number;
25+
high: number;
26+
late_trading_change: number;
27+
late_trading_change_percent: number;
28+
low: number;
29+
open: number;
30+
pervious_close: number;
31+
volume: number;
32+
33+
}
34+
35+
export interface ISummariesResults {
36+
branding: IBranding;
37+
market_status: string;
38+
name: string;
39+
option: IOptions;
40+
price: number;
41+
session: ISession;
42+
ticker: string;
43+
type: 'stock' | 'option' | 'forex' | 'crypto';
44+
}
45+
46+
export interface ISummariesQuery extends IPolygonQuery {
47+
'ticker.any_of'?: string;
48+
}
49+
50+
export interface ISummaries {
51+
request_id?: string;
52+
status?: string;
53+
results?: ISummariesResults[];
54+
}
55+
56+
export const summaries = async (
57+
apikey: string,
58+
apiBase: string,
59+
query?: ISummariesQuery
60+
): Promise<ISummaries> =>
61+
get(
62+
`/v1/summaries`,
63+
apikey,
64+
apiBase,
65+
query
66+
);

0 commit comments

Comments
 (0)