propagated payment commentto bff
This commit is contained in:
@@ -202,6 +202,7 @@ func payoutParamsFromCard(req *mntxv1.CardPayoutRequest) map[string]interface{}
|
||||
params := map[string]interface{}{
|
||||
"project_id": req.GetProjectId(),
|
||||
"parent_payment_ref": strings.TrimSpace(req.GetParentPaymentRef()),
|
||||
"comment": strings.TrimSpace(req.GetComment()),
|
||||
"customer_id": strings.TrimSpace(req.GetCustomerId()),
|
||||
"customer_first_name": strings.TrimSpace(req.GetCustomerFirstName()),
|
||||
"customer_middle_name": strings.TrimSpace(req.GetCustomerMiddleName()),
|
||||
@@ -230,6 +231,7 @@ func payoutParamsFromToken(req *mntxv1.CardTokenPayoutRequest) map[string]interf
|
||||
params := map[string]interface{}{
|
||||
"project_id": req.GetProjectId(),
|
||||
"parent_payment_ref": strings.TrimSpace(req.GetParentPaymentRef()),
|
||||
"comment": strings.TrimSpace(req.GetComment()),
|
||||
"customer_id": strings.TrimSpace(req.GetCustomerId()),
|
||||
"customer_first_name": strings.TrimSpace(req.GetCustomerFirstName()),
|
||||
"customer_middle_name": strings.TrimSpace(req.GetCustomerMiddleName()),
|
||||
@@ -299,6 +301,9 @@ func sanitizeMetadata(source map[string]string) map[string]string {
|
||||
if k == "" {
|
||||
continue
|
||||
}
|
||||
if strings.EqualFold(k, "comment") {
|
||||
continue
|
||||
}
|
||||
out[k] = strings.TrimSpace(value)
|
||||
}
|
||||
if len(out) == 0 {
|
||||
@@ -320,6 +325,11 @@ func payoutFromOperation(op *connectorv1.Operation) *mntxv1.CardPayoutState {
|
||||
state.Currency = strings.TrimSpace(money.GetCurrency())
|
||||
state.AmountMinor = minorFromMoney(money)
|
||||
}
|
||||
if params := op.GetParams(); params != nil {
|
||||
if field, ok := params.GetFields()["comment"]; ok {
|
||||
state.Comment = strings.TrimSpace(field.GetStringValue())
|
||||
}
|
||||
}
|
||||
return state
|
||||
}
|
||||
|
||||
|
||||
@@ -142,3 +142,49 @@ func TestCreateCardTokenPayout_UsesOperationRefWhenReceiptOperationIDMissing(t *
|
||||
t.Fatalf("payout_id mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateCardPayout_SendsCommentAsSeparateParam(t *testing.T) {
|
||||
stub := &stubConnectorClient{
|
||||
submitResp: &connectorv1.SubmitOperationResponse{
|
||||
Receipt: &connectorv1.OperationReceipt{
|
||||
OperationId: "payment-4:hop_4_card_payout_send",
|
||||
Status: connectorv1.OperationStatus_OPERATION_WAITING,
|
||||
},
|
||||
},
|
||||
}
|
||||
client := &gatewayClient{client: stub, cfg: Config{}}
|
||||
|
||||
_, err := client.CreateCardPayout(context.Background(), &mntxv1.CardPayoutRequest{
|
||||
OperationRef: "payment-4:hop_4_card_payout_send",
|
||||
IdempotencyKey: "idem-4",
|
||||
AmountMinor: 1000,
|
||||
Currency: "RUB",
|
||||
Comment: "invoice-44",
|
||||
Metadata: map[string]string{
|
||||
"comment": "legacy-comment",
|
||||
"trace_id": "trace-44",
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("CreateCardPayout returned error: %v", err)
|
||||
}
|
||||
if stub.submitReq == nil || stub.submitReq.GetOperation() == nil {
|
||||
t.Fatal("expected submitted operation")
|
||||
}
|
||||
|
||||
fields := stub.submitReq.GetOperation().GetParams().GetFields()
|
||||
if got, want := fields["comment"].GetStringValue(), "invoice-44"; got != want {
|
||||
t.Fatalf("comment param mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
metadataField, ok := fields["metadata"]
|
||||
if !ok || metadataField == nil || metadataField.GetStructValue() == nil {
|
||||
t.Fatal("expected metadata param")
|
||||
}
|
||||
metadata := metadataField.GetStructValue().GetFields()
|
||||
if _, hasComment := metadata["comment"]; hasComment {
|
||||
t.Fatalf("metadata must not include comment key")
|
||||
}
|
||||
if got, want := metadata["trace_id"].GetStringValue(), "trace-44"; got != want {
|
||||
t.Fatalf("trace_id metadata mismatch: got=%q want=%q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user