fix(core): update
This commit is contained in:
@ -1 +1,2 @@
|
||||
export * from './paypal.classes.paypal';
|
||||
export * from './paypal.classes.transaction';
|
||||
|
@ -16,7 +16,7 @@ export class PayPal {
|
||||
this.options = optionsArg;
|
||||
}
|
||||
|
||||
public async request() {
|
||||
public async request(methodArg: 'GET' | 'POST', routeArg: string, payloadArg: any) {
|
||||
if (!this.apiToken || this.apiTokenExpirationTime < Date.now()) {
|
||||
const authHeader = `Basic ${plugins.smartstring.base64.encode(
|
||||
`${this.options.clientId}:${this.options.clientSecret}`
|
||||
@ -38,7 +38,7 @@ export class PayPal {
|
||||
}
|
||||
|
||||
// we have a token
|
||||
const response = await plugins.smartrequest.request(`${this.apiBaseUrl}/v1/reporting/transactions?start_date=2020-05-01T00:00:00Z&end_date=2020-05-30T00:00:00Z`, {
|
||||
const response = await plugins.smartrequest.request(`${this.apiBaseUrl}${routeArg}`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
@ -46,6 +46,6 @@ export class PayPal {
|
||||
Authorization: `Bearer ${this.apiToken}`,
|
||||
},
|
||||
});
|
||||
console.log(response.body);
|
||||
return response.body;
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,64 @@
|
||||
import * as plugins from './paypal.plugins'
|
||||
import * as plugins from './paypal.plugins';
|
||||
import { PayPal } from './paypal.classes.paypal';
|
||||
|
||||
export interface IPayPalOriginTransactionApiObject {
|
||||
paypal_account_id: string;
|
||||
transaction_id: string;
|
||||
transaction_event_code: string;
|
||||
transaction_initiation_date: string;
|
||||
transaction_updated_date: string;
|
||||
transaction_amount: { currency_code: string; value: string };
|
||||
transaction_status: string;
|
||||
transaction_subject: string;
|
||||
ending_balance: { currency_code: string; value: string };
|
||||
available_balance: { currency_code: string; value: string };
|
||||
invoice_id: string;
|
||||
protection_eligibility: string;
|
||||
}
|
||||
|
||||
export interface IPayPalTransactionOptions {
|
||||
id: string;
|
||||
originApiObject: IPayPalOriginTransactionApiObject
|
||||
amount: number;
|
||||
currency: 'USD' | 'EUR';
|
||||
timestampIso: string;
|
||||
}
|
||||
|
||||
export class PayPalTransaction {
|
||||
public static async getTransactionFor30days(
|
||||
paypalInstanceArg: PayPal,
|
||||
startPointMillis: number = Date.now() - plugins.smarttime.units.days(30)
|
||||
) {
|
||||
const startDate = startPointMillis;
|
||||
const endDate = startDate + plugins.smarttime.units.days(30);
|
||||
const startDateIso = plugins.smarttime.ExtendedDate.fromMillis(startDate).toISOString();
|
||||
const endDateIso = plugins.smarttime.ExtendedDate.fromMillis(endDate).toISOString();
|
||||
console.log(endDateIso);
|
||||
console.log(startDateIso);
|
||||
const response = await paypalInstanceArg.request(
|
||||
'GET',
|
||||
`/v1/reporting/transactions?start_date=${startDateIso}&end_date=${endDateIso}`,
|
||||
{}
|
||||
);
|
||||
|
||||
const returnTransactions: PayPalTransaction[] = []
|
||||
for (const transactionDetail of response.transaction_details) {
|
||||
const apiObject: IPayPalOriginTransactionApiObject = transactionDetail.transaction_info;
|
||||
const paypalTransaction = new PayPalTransaction({
|
||||
originApiObject: apiObject,
|
||||
id: apiObject.transaction_id,
|
||||
amount: parseFloat(apiObject.transaction_amount.value),
|
||||
currency: apiObject.transaction_amount.currency_code as 'EUR' | 'USD',
|
||||
timestampIso: apiObject.transaction_initiation_date
|
||||
});
|
||||
returnTransactions.push(paypalTransaction);
|
||||
}
|
||||
return returnTransactions;
|
||||
}
|
||||
|
||||
public data: IPayPalTransactionOptions;
|
||||
|
||||
constructor(dataArg: IPayPalTransactionOptions) {
|
||||
this.data = dataArg;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
// pupshrocks scope
|
||||
import * as smartrequest from '@pushrocks/smartrequest';
|
||||
import * as smartstring from '@pushrocks/smartstring';
|
||||
import * as smarttime from '@pushrocks/smarttime';
|
||||
|
||||
export { smartrequest, smartstring };
|
||||
export { smartrequest, smartstring, smarttime };
|
||||
|
Reference in New Issue
Block a user