@@ -176,6 +176,26 @@ func (s *Server) GetPaymentRequest(ctx context.Context, request GetPaymentReques
176176 return GetPaymentRequest200JSONResponse (toCreatePaymentRequestResponse (ctx , paymentRequest )), nil
177177}
178178
179+ // GetPaymentRequestByNonce is the controller to get payment request by nonce
180+ func (s * Server ) GetPaymentRequestByNonce (ctx context.Context , request GetPaymentRequestByNonceRequestObject ) (GetPaymentRequestByNonceResponseObject , error ) {
181+ issuerDID , err := w3c .ParseDID (request .Identifier )
182+ if err != nil {
183+ log .Error (ctx , "parsing issuer did" , "err" , err , "did" , request .Identifier )
184+ return GetPaymentRequestByNonce400JSONResponse {N400JSONResponse {Message : "invalid issuer did" }}, nil
185+ }
186+ const base10 = 10
187+ nonce , ok := new (big.Int ).SetString (request .Nonce , base10 )
188+ if ! ok {
189+ log .Error (ctx , "parsing nonce on get payment request by nonce" , "nonce" , request .Nonce )
190+ return GetPaymentRequestByNonce400JSONResponse {N400JSONResponse {Message : fmt .Sprintf ("invalid nonce: <%s>" , request .Nonce )}}, nil
191+ }
192+ paymentRequest , err := s .paymentService .GetPaymentRequestByNonce (ctx , issuerDID , nonce )
193+ if err != nil {
194+ return GetPaymentRequestByNonce500JSONResponse {N500JSONResponse {Message : fmt .Sprintf ("can't get payment-request: %s" , err )}}, nil
195+ }
196+ return GetPaymentRequestByNonce200JSONResponse (toCreatePaymentRequestResponse (ctx , paymentRequest )), nil
197+ }
198+
179199// DeletePaymentRequest is the controller to delete payment request
180200func (s * Server ) DeletePaymentRequest (ctx context.Context , request DeletePaymentRequestRequestObject ) (DeletePaymentRequestResponseObject , error ) {
181201 issuerDID , err := w3c .ParseDID (request .Identifier )
0 commit comments