2021-04-23 19:43:23 +01:00
|
|
|
// Copyright (C) 2021 Storj Labs, Inc.
|
|
|
|
// See LICENSE for copying information.
|
|
|
|
|
|
|
|
import { PayoutsClient } from '@/api/payouts';
|
2021-05-21 16:28:49 +01:00
|
|
|
import { Expectations, PayoutsSummary } from '@/payouts/index';
|
2021-04-23 19:43:23 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* exposes all payouts related logic
|
|
|
|
*/
|
|
|
|
export class Payouts {
|
|
|
|
private readonly payouts: PayoutsClient;
|
|
|
|
|
|
|
|
public constructor(payouts: PayoutsClient) {
|
|
|
|
this.payouts = payouts;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* fetches of payouts summary information.
|
|
|
|
*
|
|
|
|
* @param satelliteId - satellite id.
|
|
|
|
* @param period - selected period.
|
|
|
|
*
|
|
|
|
* @throws {@link BadRequestError}
|
|
|
|
* This exception is thrown if the input is not a valid.
|
|
|
|
*
|
|
|
|
* @throws {@link UnauthorizedError}
|
|
|
|
* Thrown if the auth cookie is missing or invalid.
|
|
|
|
*
|
|
|
|
* @throws {@link InternalError}
|
|
|
|
* Thrown if something goes wrong on server side.
|
|
|
|
*/
|
|
|
|
public async summary(satelliteId: string | null, period: string | null): Promise<PayoutsSummary> {
|
2021-04-30 10:33:36 +01:00
|
|
|
return await this.payouts.summary(satelliteId, period);
|
2021-04-23 19:43:23 +01:00
|
|
|
}
|
2021-05-21 16:28:49 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* fetches of payouts expectation such as estimated current month payout and undistributed payout.
|
|
|
|
*
|
|
|
|
* @param nodeId - node id.
|
|
|
|
*
|
|
|
|
* @throws {@link BadRequestError}
|
|
|
|
* This exception is thrown if the input is not a valid.
|
|
|
|
*
|
|
|
|
* @throws {@link UnauthorizedError}
|
|
|
|
* Thrown if the auth cookie is missing or invalid.
|
|
|
|
*
|
|
|
|
* @throws {@link InternalError}
|
|
|
|
* Thrown if something goes wrong on server side.
|
|
|
|
*/
|
|
|
|
public async expectations(nodeId: string | null): Promise<Expectations> {
|
|
|
|
return await this.payouts.expectations(nodeId);
|
|
|
|
}
|
2021-04-23 19:43:23 +01:00
|
|
|
}
|