-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
40 lines (33 loc) · 839 Bytes
/
main.js
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
#!/usr/bin/env node
'use strict'
// Import libraries
import StockInfo from 'stock-info'
class StockInfoClient {
static async getStockInformation (symbol) {
return new Promise((resolve, reject) => {
StockInfo.getSingleStockInfo(symbol).then(resolve).catch(reject)
})
}
}
const ApiPaths = {
Debug: {
ping: 'ping'
},
Data: {
Dividends: 'get_data_dividends',
StockInfo: 'get_stock_info'
}
}
// Define JSON-RPC Server
const server = jayson.Server({
//
// Debug
//
[ApiPaths.Debug.ping]: function ping (args, cb) {
cb(null, 'pong')
},
[ApiPaths.Data.StockInfo]: function getStockInfo (args, cb) {
const error = { code: 1, message: 'Unable to fetch stock information.' }
StockInfoClient.getStockInformation(args.symbol).then(res => cb(null, res)).catch(() => cb(error))
}
})