Fix payment status update parameter typing for ArifPay verification.
Use explicit SQL casts and named sqlc args to avoid PostgreSQL 42P08 ambiguity during nonce/session status updates, and align repository bindings with regenerated sqlc types. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
d225b45166
commit
853bd730bb
|
|
@ -46,22 +46,22 @@ WHERE id = $2;
|
||||||
-- name: UpdatePaymentStatusBySessionID :exec
|
-- name: UpdatePaymentStatusBySessionID :exec
|
||||||
UPDATE payments
|
UPDATE payments
|
||||||
SET
|
SET
|
||||||
status = $1,
|
status = sqlc.arg(status)::varchar,
|
||||||
transaction_id = COALESCE($2, transaction_id),
|
transaction_id = COALESCE(sqlc.arg(transaction_id)::text, transaction_id),
|
||||||
payment_method = COALESCE($3, payment_method),
|
payment_method = COALESCE(sqlc.arg(payment_method)::text, payment_method),
|
||||||
paid_at = CASE WHEN $1 = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
paid_at = CASE WHEN sqlc.arg(status)::varchar = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
||||||
updated_at = CURRENT_TIMESTAMP
|
updated_at = CURRENT_TIMESTAMP
|
||||||
WHERE session_id = $4;
|
WHERE session_id = sqlc.arg(session_id)::text;
|
||||||
|
|
||||||
-- name: UpdatePaymentStatusByNonce :exec
|
-- name: UpdatePaymentStatusByNonce :exec
|
||||||
UPDATE payments
|
UPDATE payments
|
||||||
SET
|
SET
|
||||||
status = $1,
|
status = sqlc.arg(status)::varchar,
|
||||||
transaction_id = COALESCE($2, transaction_id),
|
transaction_id = COALESCE(sqlc.arg(transaction_id)::text, transaction_id),
|
||||||
payment_method = COALESCE($3, payment_method),
|
payment_method = COALESCE(sqlc.arg(payment_method)::text, payment_method),
|
||||||
paid_at = CASE WHEN $1 = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
paid_at = CASE WHEN sqlc.arg(status)::varchar = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
||||||
updated_at = CURRENT_TIMESTAMP
|
updated_at = CURRENT_TIMESTAMP
|
||||||
WHERE nonce = $4;
|
WHERE nonce = sqlc.arg(nonce)::text;
|
||||||
|
|
||||||
-- name: UpdatePaymentSessionID :exec
|
-- name: UpdatePaymentSessionID :exec
|
||||||
UPDATE payments
|
UPDATE payments
|
||||||
|
|
|
||||||
|
|
@ -432,19 +432,19 @@ func (q *Queries) UpdatePaymentStatus(ctx context.Context, arg UpdatePaymentStat
|
||||||
const UpdatePaymentStatusByNonce = `-- name: UpdatePaymentStatusByNonce :exec
|
const UpdatePaymentStatusByNonce = `-- name: UpdatePaymentStatusByNonce :exec
|
||||||
UPDATE payments
|
UPDATE payments
|
||||||
SET
|
SET
|
||||||
status = $1,
|
status = $1::varchar,
|
||||||
transaction_id = COALESCE($2, transaction_id),
|
transaction_id = COALESCE($2::text, transaction_id),
|
||||||
payment_method = COALESCE($3, payment_method),
|
payment_method = COALESCE($3::text, payment_method),
|
||||||
paid_at = CASE WHEN $1 = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
paid_at = CASE WHEN $1::varchar = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
||||||
updated_at = CURRENT_TIMESTAMP
|
updated_at = CURRENT_TIMESTAMP
|
||||||
WHERE nonce = $4
|
WHERE nonce = $4::text
|
||||||
`
|
`
|
||||||
|
|
||||||
type UpdatePaymentStatusByNonceParams struct {
|
type UpdatePaymentStatusByNonceParams struct {
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
TransactionID pgtype.Text `json:"transaction_id"`
|
TransactionID string `json:"transaction_id"`
|
||||||
PaymentMethod pgtype.Text `json:"payment_method"`
|
PaymentMethod string `json:"payment_method"`
|
||||||
Nonce string `json:"nonce"`
|
Nonce string `json:"nonce"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Queries) UpdatePaymentStatusByNonce(ctx context.Context, arg UpdatePaymentStatusByNonceParams) error {
|
func (q *Queries) UpdatePaymentStatusByNonce(ctx context.Context, arg UpdatePaymentStatusByNonceParams) error {
|
||||||
|
|
@ -460,19 +460,19 @@ func (q *Queries) UpdatePaymentStatusByNonce(ctx context.Context, arg UpdatePaym
|
||||||
const UpdatePaymentStatusBySessionID = `-- name: UpdatePaymentStatusBySessionID :exec
|
const UpdatePaymentStatusBySessionID = `-- name: UpdatePaymentStatusBySessionID :exec
|
||||||
UPDATE payments
|
UPDATE payments
|
||||||
SET
|
SET
|
||||||
status = $1,
|
status = $1::varchar,
|
||||||
transaction_id = COALESCE($2, transaction_id),
|
transaction_id = COALESCE($2::text, transaction_id),
|
||||||
payment_method = COALESCE($3, payment_method),
|
payment_method = COALESCE($3::text, payment_method),
|
||||||
paid_at = CASE WHEN $1 = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
paid_at = CASE WHEN $1::varchar = 'SUCCESS' THEN CURRENT_TIMESTAMP ELSE paid_at END,
|
||||||
updated_at = CURRENT_TIMESTAMP
|
updated_at = CURRENT_TIMESTAMP
|
||||||
WHERE session_id = $4
|
WHERE session_id = $4::text
|
||||||
`
|
`
|
||||||
|
|
||||||
type UpdatePaymentStatusBySessionIDParams struct {
|
type UpdatePaymentStatusBySessionIDParams struct {
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
TransactionID pgtype.Text `json:"transaction_id"`
|
TransactionID string `json:"transaction_id"`
|
||||||
PaymentMethod pgtype.Text `json:"payment_method"`
|
PaymentMethod string `json:"payment_method"`
|
||||||
SessionID pgtype.Text `json:"session_id"`
|
SessionID string `json:"session_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Queries) UpdatePaymentStatusBySessionID(ctx context.Context, arg UpdatePaymentStatusBySessionIDParams) error {
|
func (q *Queries) UpdatePaymentStatusBySessionID(ctx context.Context, arg UpdatePaymentStatusBySessionIDParams) error {
|
||||||
|
|
|
||||||
|
|
@ -119,17 +119,17 @@ func (s *Store) UpdatePaymentStatus(ctx context.Context, id int64, status string
|
||||||
func (s *Store) UpdatePaymentStatusBySessionID(ctx context.Context, sessionID, status, transactionID, paymentMethod string) error {
|
func (s *Store) UpdatePaymentStatusBySessionID(ctx context.Context, sessionID, status, transactionID, paymentMethod string) error {
|
||||||
return s.queries.UpdatePaymentStatusBySessionID(ctx, dbgen.UpdatePaymentStatusBySessionIDParams{
|
return s.queries.UpdatePaymentStatusBySessionID(ctx, dbgen.UpdatePaymentStatusBySessionIDParams{
|
||||||
Status: status,
|
Status: status,
|
||||||
TransactionID: toPgText(&transactionID),
|
TransactionID: transactionID,
|
||||||
PaymentMethod: toPgText(&paymentMethod),
|
PaymentMethod: paymentMethod,
|
||||||
SessionID: toPgText(&sessionID),
|
SessionID: sessionID,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) UpdatePaymentStatusByNonce(ctx context.Context, nonce, status, transactionID, paymentMethod string) error {
|
func (s *Store) UpdatePaymentStatusByNonce(ctx context.Context, nonce, status, transactionID, paymentMethod string) error {
|
||||||
return s.queries.UpdatePaymentStatusByNonce(ctx, dbgen.UpdatePaymentStatusByNonceParams{
|
return s.queries.UpdatePaymentStatusByNonce(ctx, dbgen.UpdatePaymentStatusByNonceParams{
|
||||||
Status: status,
|
Status: status,
|
||||||
TransactionID: toPgText(&transactionID),
|
TransactionID: transactionID,
|
||||||
PaymentMethod: toPgText(&paymentMethod),
|
PaymentMethod: paymentMethod,
|
||||||
Nonce: nonce,
|
Nonce: nonce,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user