degiro-api
Version:
Unofficial DeGiro API for Javascript. Buy and sell in the stock market. See your portfolio and much more
42 lines (39 loc) • 1.5 kB
text/typescript
import { DEGIRO_API_PATHS } from '../enums';
import { AccountConfigType, AccountDataType, GetTransactionsOptionsType, TransactionType } from '../types'
import { debug, fetch } from '../utils';
const { GET_TRANSACTIONS_PATH } = DEGIRO_API_PATHS;
export function getTransactionsRequest(accountData: AccountDataType, accountConfig: AccountConfigType, config: GetTransactionsOptionsType): Promise<TransactionType[]> {
return new Promise((resolve, reject) => {
// Create params to get orders by types
let params = ''
params += `fromDate=${encodeURIComponent(config.fromDate)}&`
params += `toDate=${encodeURIComponent(config.toDate)}&`
params += `groupTransactionsByOrder`
params += `intAccount=${accountData.data.intAccount}&`
params += `sessionId=${accountConfig.data.sessionId}`
const requestOptions: {
method?: string,
body?: string,
headers: {
[key: string]: string,
},
credentials: 'include',
referer: string,
} = {
headers: {
Cookie: `JSESSIONID=${accountConfig.data.sessionId};`,
},
credentials: 'include',
referer: 'https://trader.degiro.nl/trader/',
}
// Do the request to get a account config data
const uri = `${accountConfig.data.reportingUrl}${GET_TRANSACTIONS_PATH}?${params}`
debug(`Making request to ${uri}`)
fetch(uri, requestOptions)
.then(res => res.json())
.then((res) => {
resolve(res.data);
})
.catch(reject)
})
}