feat(t219): show pending-payment reconciliation
This commit is contained in:
@@ -728,6 +728,35 @@ const orderSubmissionSelect = `SELECT
|
||||
manual_reason_code, fenced_at, reconciled_at, manual_review_at
|
||||
FROM order_submissions`
|
||||
|
||||
func listOrderSubmissions(
|
||||
ctx context.Context,
|
||||
queryer queryer,
|
||||
taskID string,
|
||||
) ([]domain.OrderSubmission, error) {
|
||||
rows, err := queryer.QueryContext(
|
||||
ctx,
|
||||
orderSubmissionSelect+
|
||||
` WHERE task_id = ? ORDER BY fenced_at ASC, id ASC`,
|
||||
taskID,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, repositoryFailure(err)
|
||||
}
|
||||
defer rows.Close()
|
||||
submissions := make([]domain.OrderSubmission, 0)
|
||||
for rows.Next() {
|
||||
submission, err := scanOrderSubmission(rows)
|
||||
if err != nil {
|
||||
return nil, repositoryFailure(err)
|
||||
}
|
||||
submissions = append(submissions, submission)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, repositoryFailure(err)
|
||||
}
|
||||
return submissions, nil
|
||||
}
|
||||
|
||||
func scanOrderSubmission(
|
||||
scanner rowScanner,
|
||||
) (domain.OrderSubmission, error) {
|
||||
|
||||
@@ -186,6 +186,7 @@ func TestStoreAssetAndTaskLifecycleIsTransactionalAndIdempotent(
|
||||
}
|
||||
if detail.Asset.ID != asset.ID ||
|
||||
len(detail.Events) != 1 ||
|
||||
len(detail.OrderSubmissions) != 0 ||
|
||||
detail.Events[0].Type != "TASK_CREATED" {
|
||||
t.Fatalf("detail = %+v", detail)
|
||||
}
|
||||
|
||||
@@ -324,6 +324,10 @@ func (s *Store) GetTaskDetail(
|
||||
if err != nil {
|
||||
return domain.TaskDetail{}, err
|
||||
}
|
||||
orderSubmissions, err := listOrderSubmissions(ctx, tx, taskID)
|
||||
if err != nil {
|
||||
return domain.TaskDetail{}, err
|
||||
}
|
||||
detail := domain.TaskDetail{
|
||||
Task: task,
|
||||
Asset: asset,
|
||||
@@ -331,6 +335,7 @@ func (s *Store) GetTaskDetail(
|
||||
Events: events,
|
||||
Report: report,
|
||||
OrderAuthorizations: orderAuthorizations,
|
||||
OrderSubmissions: orderSubmissions,
|
||||
}
|
||||
if err := tx.Commit(); err != nil {
|
||||
return domain.TaskDetail{}, repositoryFailure(err)
|
||||
|
||||
Reference in New Issue
Block a user