ofx4js
Version:
A javascript OFX library, ported from OFX4J
71 lines (70 loc) • 2.85 kB
TypeScript
import { FinancialInstitutionAccount } from "../FinancialInstitutionAccount";
import { MessageSetType } from "../../domain/data/MessageSetType";
import { FinancialInstitutionImpl } from "./FinancialInstitutionImpl";
import { AccountStatement } from "../AccountStatement";
import { StatementRange } from "../../domain/data/common/StatementRange";
import { TransactionWrappedRequestMessage } from "../../domain/data/TransactionWrappedRequestMessage";
import { RequestMessage } from "../../domain/data/RequestMessage";
import { ResponseEnvelope } from "../../domain/data/ResponseEnvelope";
import { StatementResponse } from "../../domain/data/common/StatementResponse";
import { RequestMessageSet } from "../../domain/data/RequestMessageSet";
import { StatementRequest } from "../../domain/data/common/StatementRequest";
/**
* Base account implementation. Supports banking and credit card accounts.
*/
export declare abstract class BaseAccountImpl<D> implements FinancialInstitutionAccount {
private details;
private messageType;
private username;
private password;
private institution;
constructor(details: D, username: string, password: string, institution: FinancialInstitutionImpl);
/**
* Get the message set type of the specified details.
*
* @param details The details.
* @return The message set type.
*/
protected getMessageSetType(details: D): MessageSetType;
readStatement(start: Date, end: Date): Promise<AccountStatement>;
/**
* Unwrap the statement response from the specified response envelope.
*
* @param response The response envelope to unwrap.
* @return The response.
*/
protected abstract unwrapStatementResponse(response: ResponseEnvelope): StatementResponse;
/**
* Create a request message set from the specified transaction.
*
* @param transaction The transaction.
* @return The request message set.
*/
protected abstract createRequestMessageSet(transaction: TransactionWrappedRequestMessage<RequestMessage>): RequestMessageSet;
/**
* Create a transaction.
*
* @return The transaction.
*/
protected abstract createTransaction(): TransactionWrappedRequestMessage<RequestMessage>;
/**
* Create a statement request.
*
* @param details The details.
* @param range the range.
* @return The statement request.
*/
protected abstract createStatementRequest(details: D, range: StatementRange): StatementRequest;
/**
* The details of this account.
*
* @return The details of this account.
*/
getDetails(): D;
/**
* The message set type.
*
* @return The message set type.
*/
protected getMessageType(): MessageSetType;
}