Skip to content

Commit 00b7225

Browse files
committed
Improve Subscriptions by adding sub. variables and filter
1 parent 1ef78a5 commit 00b7225

File tree

5 files changed

+756
-706
lines changed

5 files changed

+756
-706
lines changed

src/graphql/data-source/market-data/index.ts

+41-12
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,57 @@ import { generateRandomMarketDataResponse } from '../../mock-db'
33
import { filterArgsPerTickerPair } from '../../lib/util'
44

55
export const fetchMarketData = (
6-
args: QueryMarketDataArgs,
6+
args?: QueryMarketDataArgs,
77
): Promise<MarketDataResponse> =>
88
new Promise((resolve, reject) => {
9-
console.log('📚 getMarketData Args', args)
9+
if (args == null) {
10+
const response = generateRandomMarketDataResponse().marketDataResponse
11+
.tradingPairs as MarketDataResponse
12+
resolve(response)
13+
} else {
14+
console.log('📚 fetchMarketData Args', args)
15+
16+
const { baseTicker, quoteTicker } = args
17+
18+
const data = generateRandomMarketDataResponse().marketDataResponse
19+
.tradingPairs
1020

11-
const { baseTicker, quoteTicker } = args
21+
const response = filterArgsPerTickerPair(
22+
`${baseTicker}-${quoteTicker}`,
23+
data,
24+
)
1225

13-
const data = generateRandomMarketDataResponse().marketDataResponse
14-
.tradingPairs
26+
if (data == null || data.length === 0) {
27+
console.error('❌ Error: Ticket Pair not found', args)
28+
29+
reject({
30+
marketDataResponse: undefined,
31+
})
32+
} else {
33+
resolve(response as MarketDataResponse)
34+
}
35+
}
36+
})
37+
38+
export const fetchMarketDataSubscription = (
39+
displaySymbol: string,
40+
): Promise<MarketDataResponse> =>
41+
new Promise((resolve, reject) => {
42+
console.log('📚 fetchMarketDataSubscription Args', displaySymbol)
1543

16-
const response = filterArgsPerTickerPair(
17-
`${baseTicker}-${quoteTicker}`,
18-
data,
19-
)
44+
const response = generateRandomMarketDataResponse(displaySymbol)
45+
.marketDataResponse.tradingPairs[0]
2046

21-
if (data == null || data.length === 0) {
22-
console.error('❌ Error: Ticker Pair not found', args)
47+
if (response == null) {
48+
console.error(
49+
'❌ Subscription Error: Ticket Pair not found',
50+
displaySymbol,
51+
)
2352

2453
reject({
2554
marketDataResponse: undefined,
2655
})
2756
} else {
28-
resolve(response as MarketDataResponse)
57+
resolve({ marketDataResponse: response } as MarketDataResponse)
2958
}
3059
})

0 commit comments

Comments
 (0)