Resolve "Implement action fetching for Alpaca" #31
@ -18,16 +18,11 @@ class AlpacaActivity {
|
||||
|
||||
export class AlpacaActionProvider {
|
||||
readonly alpaca: Alpaca;
|
||||
|
||||
|
||||
readonly fetchActions = (options: ActionFetchOptions): Promise<ActionFetchResponse> => {
|
||||
return (this.alpaca.getAccountActivities({
|
||||
activityTypes: "FILL",
|
||||
until: undefined as any,
|
||||
after: undefined as any,
|
||||
direction: "desc",
|
||||
date: undefined as any,
|
||||
pageSize: undefined as any,
|
||||
pageToken: undefined as any,
|
||||
}) as Promise<AlpacaActivity[]>).then((activities) => {
|
||||
return new ActionFetchResponse(
|
||||
activities
|
||||
@ -45,9 +40,9 @@ export class AlpacaActionProvider {
|
||||
}).catch((err) => {
|
||||
return err;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
constructor(alpaca: Alpaca) {
|
||||
this.alpaca = alpaca;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,4 +5,4 @@ export * from './interface/actions';
|
||||
|
||||
export * from './alpaca/exchange';
|
||||
export * from './alpaca/portfolio';
|
||||
export * from './alpaca/quote';
|
||||
export * from './alpaca/quote';
|
||||
|
@ -100,7 +100,6 @@ export class ActionFetchOptions {
|
||||
* Represents the response of a fetch action request.
|
||||
*/
|
||||
export class ActionFetchResponse {
|
||||
|
||||
/**
|
||||
* An array of `Action` objects.
|
||||
*/
|
||||
|
@ -18,28 +18,24 @@ const logger = createLogger({
|
||||
});
|
||||
|
||||
describe('Alpaca Tests', () => {
|
||||
test('portfolio fetch', () => {
|
||||
test('portfolio fetch', async () => {
|
||||
expect(process.env.ALPACA_API_KEY).toBeDefined();
|
||||
expect(process.env.ALPACA_SECRET_KEY).toBeDefined();
|
||||
const exchange = new AlpacaExchange(process.env.ALPACA_API_KEY!, process.env.ALPACA_SECRET_KEY!, true);
|
||||
expect(exchange.portfolioProvider.fetchPortfolio()).resolves.toBeDefined();
|
||||
});
|
||||
await expect(exchange.portfolioProvider.fetchPortfolio()).resolves.toBeDefined();
|
||||
}, 10000);
|
||||
|
||||
test('quote fetch', () => {
|
||||
test('quote fetch', async () => {
|
||||
expect(process.env.ALPACA_API_KEY).toBeDefined();
|
||||
expect(process.env.ALPACA_SECRET_KEY).toBeDefined();
|
||||
const exchange = new AlpacaExchange(process.env.ALPACA_API_KEY!, process.env.ALPACA_SECRET_KEY!, true);
|
||||
expect(exchange.quoteProvider.fetchQuote("AAPL")).resolves.toBeDefined();
|
||||
});
|
||||
await expect(exchange.quoteProvider.fetchQuote("AAPL")).resolves.toBeDefined();
|
||||
}, 10000);
|
||||
|
||||
test('action fetch', async () => {
|
||||
expect(process.env.ALPACA_API_KEY).toBeDefined();
|
||||
expect(process.env.ALPACA_SECRET_KEY).toBeDefined();
|
||||
const exchange = new AlpacaExchange(process.env.ALPACA_API_KEY!, process.env.ALPACA_SECRET_KEY!, true);
|
||||
|
||||
const actions = await exchange.actionProvider.fetchActions(new ActionFetchOptions);
|
||||
logger.info(JSON.stringify(actions));
|
||||
|
||||
//expect(exchange.actionProvider.fetchActions(new ActionFetchOptions)).resolves.toBeDefined();
|
||||
});
|
||||
await expect(exchange.actionProvider.fetchActions(new ActionFetchOptions)).resolves.toBeDefined();
|
||||
}, 10000);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user