Skip to content

Commit

Permalink
storagenode/heldamount: payment receipt added to monthly paystub, hel…
Browse files Browse the repository at this point in the history
…damount.service separated for service and endpoint

Change-Id: Id759586c6362edbef34c230d4f0d2585c11c9b47
  • Loading branch information
Qweder93 committed Jul 6, 2020
1 parent 5786595 commit ac716e1
Show file tree
Hide file tree
Showing 10 changed files with 350 additions and 333 deletions.
8 changes: 4 additions & 4 deletions storagenode/console/consoleapi/heldamount.go
Expand Up @@ -52,7 +52,7 @@ func (heldAmount *HeldAmount) PayStubMonthly(w http.ResponseWriter, r *http.Requ

id := queryParams.Get("id")
if id == "" {
payStubs, err := heldAmount.service.AllPayStubsMonthlyCached(ctx, period)
payStubs, err := heldAmount.service.AllPayStubsMonthly(ctx, period)
if err != nil {
heldAmount.serveJSONError(w, http.StatusInternalServerError, ErrHeldAmountAPI.Wrap(err))
return
Expand All @@ -69,7 +69,7 @@ func (heldAmount *HeldAmount) PayStubMonthly(w http.ResponseWriter, r *http.Requ
return
}

payStub, err := heldAmount.service.SatellitePayStubMonthlyCached(ctx, satelliteID, period)
payStub, err := heldAmount.service.SatellitePayStubMonthly(ctx, satelliteID, period)
if err != nil {
if heldamount.ErrNoPayStubForPeriod.Has(err) {
heldAmount.serveJSONError(w, http.StatusNotFound, ErrHeldAmountAPI.Wrap(err))
Expand Down Expand Up @@ -112,7 +112,7 @@ func (heldAmount *HeldAmount) PayStubPeriod(w http.ResponseWriter, r *http.Reque

id := queryParams.Get("id")
if id == "" {
payStubs, err := heldAmount.service.AllPayStubsPeriodCached(ctx, start, end)
payStubs, err := heldAmount.service.AllPayStubsPeriod(ctx, start, end)
if err != nil {
if heldamount.ErrBadPeriod.Has(err) {
heldAmount.serveJSONError(w, http.StatusBadRequest, ErrHeldAmountAPI.Wrap(err))
Expand All @@ -134,7 +134,7 @@ func (heldAmount *HeldAmount) PayStubPeriod(w http.ResponseWriter, r *http.Reque
return
}

payStubs, err := heldAmount.service.SatellitePayStubPeriodCached(ctx, satelliteID, start, end)
payStubs, err := heldAmount.service.SatellitePayStubPeriod(ctx, satelliteID, start, end)
if err != nil {
if heldamount.ErrBadPeriod.Has(err) {
heldAmount.serveJSONError(w, http.StatusBadRequest, ErrHeldAmountAPI.Wrap(err))
Expand Down
28 changes: 14 additions & 14 deletions storagenode/console/consoleapi/storagenode_test.go
Expand Up @@ -150,13 +150,13 @@ func TestStorageNodeApi(t *testing.T) {
CurrentMonthEstimatedAmount: estimated1 + estimated2,
CurrentMonthHeld: int64(sum1 + sum2 - sum1AfterHeld - sum2AfterHeld),
PreviousMonthPayout: heldamount.PayoutMonthly{
EgressBandwidth: 0,
EgressPayout: 0,
EgressRepairAudit: 0,
RepairAuditPayout: 0,
DiskSpace: 0,
DiskSpaceAmount: 0,
HeldPercentRate: 0,
EgressBandwidth: 0,
EgressBandwidthPayout: 0,
EgressRepairAudit: 0,
EgressRepairAuditPayout: 0,
DiskSpace: 0,
DiskSpacePayout: 0,
HeldRate: 0,
},
})
require.NoError(t, err)
Expand All @@ -180,13 +180,13 @@ func TestStorageNodeApi(t *testing.T) {
CurrentMonthEstimatedAmount: estimated1,
CurrentMonthHeld: int64(sum1 - sum1AfterHeld),
PreviousMonthPayout: heldamount.PayoutMonthly{
EgressBandwidth: 0,
EgressPayout: 0,
EgressRepairAudit: 0,
RepairAuditPayout: 0,
DiskSpace: 0,
DiskSpaceAmount: 0,
HeldPercentRate: 75,
EgressBandwidth: 0,
EgressBandwidthPayout: 0,
EgressRepairAudit: 0,
EgressRepairAuditPayout: 0,
DiskSpace: 0,
DiskSpacePayout: 0,
HeldRate: 75,
},
})
require.NoError(t, err)
Expand Down
14 changes: 7 additions & 7 deletions storagenode/console/service.go
Expand Up @@ -407,11 +407,11 @@ func (s *Service) GetAllSatellitesEstimatedPayout(ctx context.Context) (payout h

payout.CurrentMonthEstimatedAmount += current
payout.CurrentMonthHeld += held
payout.PreviousMonthPayout.DiskSpaceAmount += previous.DiskSpaceAmount
payout.PreviousMonthPayout.DiskSpacePayout += previous.DiskSpacePayout
payout.PreviousMonthPayout.DiskSpace += previous.DiskSpace
payout.PreviousMonthPayout.EgressBandwidth += previous.EgressBandwidth
payout.PreviousMonthPayout.EgressPayout += previous.EgressPayout
payout.PreviousMonthPayout.RepairAuditPayout += previous.RepairAuditPayout
payout.PreviousMonthPayout.EgressBandwidthPayout += previous.EgressBandwidthPayout
payout.PreviousMonthPayout.EgressRepairAuditPayout += previous.EgressRepairAuditPayout
payout.PreviousMonthPayout.EgressRepairAudit += previous.EgressRepairAudit
}

Expand Down Expand Up @@ -487,7 +487,7 @@ func (s *Service) estimatedPayoutPreviousMonth(ctx context.Context, satelliteID
}

heldRate := s.getHeldRate(stats.JoinedAt)
payoutData.HeldPercentRate = heldRate
payoutData.HeldRate = heldRate

bandwidthDaily, err := s.bandwidthDB.GetDailySatelliteRollups(ctx, satelliteID, from, to)
if err != nil {
Expand All @@ -497,10 +497,10 @@ func (s *Service) estimatedPayoutPreviousMonth(ctx context.Context, satelliteID
for i := 0; i < len(bandwidthDaily); i++ {
payoutData.EgressBandwidth += bandwidthDaily[i].Egress.Usage
usagePayout := float64(bandwidthDaily[i].Egress.Usage*priceModel.EgressBandwidth*heldRate/100) / math.Pow10(12)
payoutData.EgressPayout += int64(usagePayout)
payoutData.EgressBandwidthPayout += int64(usagePayout)
payoutData.EgressRepairAudit += bandwidthDaily[i].Egress.Audit + bandwidthDaily[i].Egress.Repair
repairAuditPayout := float64((bandwidthDaily[i].Egress.Audit*priceModel.AuditBandwidth+bandwidthDaily[i].Egress.Repair*priceModel.RepairBandwidth)*heldRate/100) / math.Pow10(12)
payoutData.RepairAuditPayout += int64(repairAuditPayout)
payoutData.EgressRepairAuditPayout += int64(repairAuditPayout)
}

storageDaily, err := s.storageUsageDB.GetDaily(ctx, satelliteID, from, to)
Expand All @@ -510,7 +510,7 @@ func (s *Service) estimatedPayoutPreviousMonth(ctx context.Context, satelliteID

for j := 0; j < len(storageDaily); j++ {
payoutData.DiskSpace += storageDaily[j].AtRestTotal
payoutData.DiskSpaceAmount += int64(storageDaily[j].AtRestTotal / 730 / math.Pow10(12) * float64(priceModel.DiskSpace*heldRate/100))
payoutData.DiskSpacePayout += int64(storageDaily[j].AtRestTotal / 730 / math.Pow10(12) * float64(priceModel.DiskSpace*heldRate/100))
}

return payoutData, nil
Expand Down
58 changes: 9 additions & 49 deletions storagenode/heldamount/db_test.go
Expand Up @@ -11,7 +11,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

"storj.io/common/rpc"
"storj.io/common/storj"
"storj.io/common/testcontext"
"storj.io/storj/storagenode"
Expand Down Expand Up @@ -138,45 +137,6 @@ func TestHeldAmountDB(t *testing.T) {
assert.NoError(t, err)
})

t.Run("Test GetPayment", func(t *testing.T) {
paym, err := heldAmount.GetPayment(ctx, satelliteID, period)
assert.NoError(t, err)
assert.Equal(t, paym.Created, payment.Created)
assert.Equal(t, paym.SatelliteID, payment.SatelliteID)
assert.Equal(t, paym.Period, payment.Period)
assert.Equal(t, paym.ID, payment.ID)
assert.Equal(t, paym.Amount, payment.Amount)
assert.Equal(t, paym.Notes, payment.Notes)
assert.Equal(t, paym.Receipt, payment.Receipt)

paym, err = heldAmount.GetPayment(ctx, satelliteID, "")
assert.Error(t, err)
assert.Equal(t, true, heldamount.ErrNoPayStubForPeriod.Has(err))
assert.Nil(t, paym)

paym, err = heldAmount.GetPayment(ctx, storj.NodeID{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, period)
assert.Error(t, err)
assert.Equal(t, true, heldamount.ErrNoPayStubForPeriod.Has(err))
assert.Nil(t, paym)
})

t.Run("Test StorePayment", func(t *testing.T) {
payments, err := heldAmount.AllPayments(ctx, period)
assert.NoError(t, err)
assert.Equal(t, 1, len(payments))
assert.Equal(t, payments[0].Created, payment.Created)
assert.Equal(t, payments[0].SatelliteID, payment.SatelliteID)
assert.Equal(t, payments[0].Period, payment.Period)
assert.Equal(t, payments[0].ID, payment.ID)
assert.Equal(t, payments[0].Amount, payment.Amount)
assert.Equal(t, payments[0].Notes, payment.Notes)
assert.Equal(t, payments[0].Receipt, payment.Receipt)

payments, err = heldAmount.AllPayments(ctx, "")
assert.NoError(t, err)
assert.Equal(t, len(payments), 0)
})

t.Run("Test SatellitesHeldbackHistory", func(t *testing.T) {
heldback, err := heldAmount.SatellitesHeldbackHistory(ctx, satelliteID)
assert.NoError(t, err)
Expand Down Expand Up @@ -233,7 +193,7 @@ func TestSatellitePayStubPeriodCached(t *testing.T) {
storagenodedbtest.Run(t, func(ctx *testcontext.Context, t *testing.T, db storagenode.DB) {
heldAmountDB := db.HeldAmount()
reputationDB := db.Reputation()
service := heldamount.NewService(nil, heldAmountDB, reputationDB, rpc.Dialer{}, nil)
service := heldamount.NewService(nil, heldAmountDB, reputationDB, nil)

payStub := heldamount.PayStub{
SatelliteID: storj.NodeID{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
Expand Down Expand Up @@ -264,15 +224,15 @@ func TestSatellitePayStubPeriodCached(t *testing.T) {
require.NoError(t, err)
}

payStubs, err := service.SatellitePayStubPeriodCached(ctx, payStub.SatelliteID, "2020-01", "2020-03")
payStubs, err := service.SatellitePayStubPeriod(ctx, payStub.SatelliteID, "2020-01", "2020-03")
require.NoError(t, err)
require.Equal(t, 3, len(payStubs))

payStubs, err = service.SatellitePayStubPeriodCached(ctx, payStub.SatelliteID, "2019-01", "2021-03")
payStubs, err = service.SatellitePayStubPeriod(ctx, payStub.SatelliteID, "2019-01", "2021-03")
require.NoError(t, err)
require.Equal(t, 3, len(payStubs))

payStubs, err = service.SatellitePayStubPeriodCached(ctx, payStub.SatelliteID, "2019-01", "2020-01")
payStubs, err = service.SatellitePayStubPeriod(ctx, payStub.SatelliteID, "2019-01", "2020-01")
require.NoError(t, err)
require.Equal(t, 1, len(payStubs))
})
Expand All @@ -282,7 +242,7 @@ func TestAllPayStubPeriodCached(t *testing.T) {
storagenodedbtest.Run(t, func(ctx *testcontext.Context, t *testing.T, db storagenode.DB) {
heldAmountDB := db.HeldAmount()
reputationDB := db.Reputation()
service := heldamount.NewService(nil, heldAmountDB, reputationDB, rpc.Dialer{}, nil)
service := heldamount.NewService(nil, heldAmountDB, reputationDB, nil)

payStub := heldamount.PayStub{
SatelliteID: storj.NodeID{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
Expand Down Expand Up @@ -316,19 +276,19 @@ func TestAllPayStubPeriodCached(t *testing.T) {
}
}

payStubs, err := service.AllPayStubsPeriodCached(ctx, "2020-01", "2020-03")
payStubs, err := service.AllPayStubsPeriod(ctx, "2020-01", "2020-03")
require.NoError(t, err)
require.Equal(t, 9, len(payStubs))

payStubs, err = service.AllPayStubsPeriodCached(ctx, "2019-01", "2021-03")
payStubs, err = service.AllPayStubsPeriod(ctx, "2019-01", "2021-03")
require.NoError(t, err)
require.Equal(t, 9, len(payStubs))

payStubs, err = service.AllPayStubsPeriodCached(ctx, "2019-01", "2020-01")
payStubs, err = service.AllPayStubsPeriod(ctx, "2019-01", "2020-01")
require.NoError(t, err)
require.Equal(t, 3, len(payStubs))

payStubs, err = service.AllPayStubsPeriodCached(ctx, "2019-01", "2019-01")
payStubs, err = service.AllPayStubsPeriod(ctx, "2019-01", "2019-01")
require.NoError(t, err)
require.Equal(t, 0, len(payStubs))
})
Expand Down

0 comments on commit ac716e1

Please sign in to comment.