-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOptionsHtmlResource.java
More file actions
58 lines (47 loc) · 2.05 KB
/
Copy pathOptionsHtmlResource.java
File metadata and controls
58 lines (47 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.marketdata.sdk;
import com.marketdata.sdk.options.OptionsChainRequest;
import com.marketdata.sdk.options.OptionsExpirationsRequest;
import com.marketdata.sdk.options.OptionsQuoteRequest;
import java.util.concurrent.CompletableFuture;
/**
* HTML facet of {@code options}. Mirrors {@link OptionsCsvResource} but returns {@link
* HtmlResponse} and requests {@code format=html}. <strong>Not exposed to consumers</strong> — the
* backend serves no HTML for data endpoints today, so the {@code asHtml()} entry point on {@link
* OptionsResource} is package-private. Kept built and ready so enabling HTML later is a one-line
* change (flip the entry point to {@code public}).
*/
public final class OptionsHtmlResource {
private final HttpTransport transport;
private final RequestConfig config;
OptionsHtmlResource(HttpTransport transport, RequestConfig config) {
this.transport = transport;
this.config = config;
}
public CompletableFuture<HtmlResponse> chainAsync(OptionsChainRequest request) {
return executeHtml(OptionsResource.chainSpec(request));
}
public HtmlResponse chain(OptionsChainRequest request) {
return transport.joinSync(chainAsync(request));
}
public CompletableFuture<HtmlResponse> quoteAsync(OptionsQuoteRequest request) {
return executeHtml(
OptionsResource.quoteSpec(
request.optionSymbol(),
request.date(),
request.from(),
request.to(),
request.countback()));
}
public HtmlResponse quote(OptionsQuoteRequest request) {
return transport.joinSync(quoteAsync(request));
}
public CompletableFuture<HtmlResponse> expirationsAsync(OptionsExpirationsRequest request) {
return executeHtml(OptionsResource.expirationsSpec(request));
}
public HtmlResponse expirations(OptionsExpirationsRequest request) {
return transport.joinSync(expirationsAsync(request));
}
private CompletableFuture<HtmlResponse> executeHtml(RequestSpec.Builder b) {
return TextResponses.execute(transport, config, b, Format.HTML, HtmlResponse::new);
}
}