@@ -16,6 +16,7 @@ library woosignal;
1616// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1717
1818import 'package:flutter/cupertino.dart' ;
19+ import 'package:woosignal/models/response/refund.dart' ;
1920import 'package:woosignal/models/response/order_notes.dart' ;
2021import 'package:woosignal/models/response/coupon.dart' ;
2122import 'package:woosignal/models/response/coupon_batch.dart' ;
@@ -490,6 +491,112 @@ class WooSignal {
490491 return customers;
491492 }
492493
494+ // https://woocommerce.github.io/woocommerce-rest-api-docs/?php#refunds
495+ //Refunds
496+ // Create a refund
497+ // This API helps you to create a new refund for an order.
498+ Future <Refund > createRefund ({
499+ @required String amount,
500+ @required int orderId,
501+ }) async {
502+ Map <String , dynamic > payload = {};
503+ if (amount != null ) payload['amount' ] = amount;
504+
505+ _printLog (payload.toString ());
506+ payload = _standardPayload (
507+ "post" , payload, "orders/${orderId .toString ()}/refunds" );
508+ Refund refund;
509+ await _apiProvider.post ("/request" , payload).then ((json) {
510+ refund = Refund .fromJson (json);
511+ });
512+ _printLog (refund.toString ());
513+ return refund;
514+ }
515+
516+ // Retrieve a refund
517+ // This API lets you retrieve and view a specific refund from an order.
518+ Future <Refund > retrieveRefund ({
519+ @required int orderId,
520+ @required int refundId,
521+ String dp,
522+ }) async {
523+ Map <String , dynamic > payload = {};
524+ if (dp != null ) payload["dp" ] = dp;
525+ _printLog ("Parameters: " + payload.toString ());
526+ payload = _standardPayload ("get" , payload,
527+ "orders/${orderId .toString ()}/refunds/${refundId .toString ()}" );
528+
529+ Refund refund;
530+ await _apiProvider.post ("/request" , payload).then ((json) {
531+ refund = Refund .fromJson (json);
532+ });
533+ _printLog (refund.toString ());
534+ return refund;
535+ }
536+
537+ // List all refunds
538+ // This API helps you to view all the refunds from an order.
539+ Future <List <Refund >> getRefunds ({
540+ String context,
541+ int page,
542+ int perPage,
543+ String search,
544+ String after,
545+ String before,
546+ List <int > exclude,
547+ List <int > include,
548+ int offset,
549+ String order,
550+ String orderby,
551+ List <int > parent,
552+ List <int > parentExclude,
553+ int dp
554+ }) async {
555+ Map <String , dynamic > payload = {};
556+ if (page != null ) payload["page" ] = page;
557+ if (perPage != null ) payload["per_page" ] = perPage;
558+ if (search != null ) payload["search" ] = search;
559+ if (after != null ) payload["after" ] = after;
560+ if (before != null ) payload["before" ] = before;
561+ if (exclude != null ) payload["exclude" ] = exclude;
562+ if (include != null ) payload["include" ] = include;
563+ if (offset != null ) payload["include" ] = offset;
564+ if (order != null ) payload["order" ] = order;
565+ if (orderby != null ) payload["orderby" ] = orderby;
566+ if (parent != null ) payload["code" ] = parent;
567+ if (parentExclude != null ) payload["code" ] = parentExclude;
568+ if (dp != null ) payload["code" ] = dp;
569+
570+ _printLog ("Parameters: " + payload.toString ());
571+ payload = _standardPayload (
572+ "get" , payload, "orders/${orderId .toString ()}/refunds" );
573+
574+ List <Refund > refunds = [];
575+ await _apiProvider.post ("/request" , payload).then ((json) {
576+ refunds = (json as List ).map ((i) => Refund .fromJson (i)).toList ();
577+ });
578+ _printLog (refunds.toString ());
579+ return refunds;
580+ }
581+
582+ // Delete a refund
583+ // This API helps you delete an order refund.
584+ Future <Refund > deleteRefund ({
585+ @required int orderId,
586+ @required int refundId,
587+ }) async {
588+ Map <String , dynamic > payload = {};
589+ payload = _standardPayload ("delete" , payload,
590+ "orders/${orderId .toString ()}/refunds/${refundId .toString ()}" );
591+
592+ Refund refund;
593+ await _apiProvider.post ("/request" , payload).then ((json) {
594+ refund = Refund .fromJson (json);
595+ });
596+ _printLog (refund.toString ());
597+ return refund;
598+ }
599+
493600 /// https://woosignal.com/docs/api/1.0/orders
494601 Future <List <Order >> getOrders (
495602 {int page,
0 commit comments