@@ -15,6 +15,8 @@ library woosignal;
1515// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
1616// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1717
18+ import 'package:flutter/cupertino.dart' ;
19+ import 'package:woosignal/models/response/refund.dart' ;
1820import 'package:woosignal/networking/api_provider.dart' ;
1921import 'package:woosignal/helpers/shared_pref.dart' ;
2022import 'package:woosignal/models/response/products.dart' ;
@@ -154,16 +156,15 @@ class WooSignal {
154156 }
155157
156158 /// https://woosignal.com/docs/api/1.0/products#retrive-a-product-api-call
157- Future <Product > retrieveProduct (
158- {int id}) async {
159+ Future <Product > retrieveProduct ({int id}) async {
159160 Map <String , dynamic > payload = {};
160161
161162 _printLog ("Parameters: " + payload.toString ());
162163 payload = _standardPayload ("get" , payload, "products/${id .toString ()}" );
163164
164165 Product product;
165166 await _apiProvider.post ("/request" , payload).then ((json) {
166- product = Product .fromJson (json);
167+ product = Product .fromJson (json);
167168 });
168169 _printLog (product.toString ());
169170 return product;
@@ -709,4 +710,114 @@ class WooSignal {
709710 _printLog (payloadRsp.toString ());
710711 return payloadRsp;
711712 }
713+
714+ // https://woocommerce.github.io/woocommerce-rest-api-docs/?php#refunds
715+ //Refunds
716+ // Create a refund
717+ // This API helps you to create a new refund for an order.
718+ Future <Refund > createRefund ({
719+ @required String amount,
720+ @required int orderId,
721+ }) async {
722+ Map <String , dynamic > payload = {};
723+ if (amount != null ) payload['amount' ] = amount;
724+
725+ _printLog (payload.toString ());
726+ payload = _standardPayload (
727+ "post" , payload, "orders/${orderId .toString ()}/refunds" );
728+ Refund refund;
729+ await _apiProvider.post ("/request" , payload).then ((json) {
730+ refund = Refund .fromJson (json);
731+ });
732+ _printLog (refund.toString ());
733+ return refund;
734+ }
735+
736+ // Retrieve a refund
737+ // This API lets you retrieve and view a specific refund from an order.
738+ Future <Refund > retrieveRefund ({
739+ @required int orderId,
740+ @required int refundId,
741+ String dp,
742+ }) async {
743+ Map <String , dynamic > payload = {};
744+ if (dp != null ) payload["dp" ] = dp;
745+ _printLog ("Parameters: " + payload.toString ());
746+ payload = _standardPayload ("get" , payload,
747+ "orders/${orderId .toString ()}/refunds/${refundId .toString ()}" );
748+
749+ Refund refund;
750+ await _apiProvider.post ("/request" , payload).then ((json) {
751+ refund = Refund .fromJson (json);
752+ });
753+ _printLog (refund.toString ());
754+ return refund;
755+ }
756+
757+ // List all refunds
758+ // This API helps you to view all the refunds from an order.
759+ Future <List <Refund >> getRefunds ({
760+ String context,
761+ int page,
762+ int perPage,
763+ String search,
764+ String after,
765+ String before,
766+ List <int > exclude,
767+ List <int > include,
768+ int offset,
769+ String order,
770+ String orderby,
771+ List <int > parent,
772+ List <int > parentExclude,
773+ int dp,
774+ @required int orderId,
775+ }) async {
776+ Map <String , dynamic > payload = {};
777+ if (page != null ) payload["page" ] = page;
778+ if (perPage != null ) payload["per_page" ] = perPage;
779+ if (search != null ) payload["search" ] = search;
780+ if (after != null ) payload["after" ] = after;
781+ if (before != null ) payload["before" ] = before;
782+ if (exclude != null ) payload["exclude" ] = exclude;
783+ if (include != null ) payload["include" ] = include;
784+ if (offset != null ) payload["include" ] = offset;
785+ if (order != null ) payload["order" ] = order;
786+ if (orderby != null ) payload["orderby" ] = orderby;
787+ if (parent != null ) payload["code" ] = parent;
788+ if (parentExclude != null ) payload["code" ] = parentExclude;
789+ if (dp != null ) payload["code" ] = dp;
790+
791+ _printLog ("Parameters: " + payload.toString ());
792+ payload = _standardPayload (
793+ "get" , payload, "orders/${orderId .toString ()}/refunds" );
794+
795+ List <Refund > refunds = [];
796+ await _apiProvider.post ("/request" , payload).then ((json) {
797+ refunds = (json as List ).map ((i) => Refund .fromJson (i)).toList ();
798+ });
799+ _printLog (refunds.toString ());
800+ return refunds;
801+ }
802+
803+ // Delete a refund
804+ // This API helps you delete an order refund.
805+ Future <Refund > deleteRefund ({
806+ @required int orderId,
807+ @required int refundId,
808+ @required Map <String , dynamic > data,
809+ }) async {
810+ Map <String , dynamic > payload = data;
811+
812+ _printLog (payload.toString ());
813+ payload = _standardPayload ("delete" , payload,
814+ "orders/${orderId .toString ()}/refunds/${refundId .toString ()}" );
815+
816+ Refund refund;
817+ await _apiProvider.post ("/request" , payload).then ((json) {
818+ refund = Refund .fromJson (json);
819+ });
820+ _printLog (refund.toString ());
821+ return refund;
822+ }
712823}
0 commit comments