@@ -15,6 +15,7 @@ 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' ;
1819import 'package:woosignal/networking/api_provider.dart' ;
1920import 'package:woosignal/helpers/shared_pref.dart' ;
2021import 'package:woosignal/models/response/products.dart' ;
@@ -31,6 +32,7 @@ import 'package:woosignal/models/response/tax_classes.dart';
3132import 'package:woosignal/models/response/shipping_zone.dart' ;
3233import 'package:woosignal/models/response/shipping_method.dart' ;
3334import 'package:woosignal/models/payload/order_wc.dart' ;
35+ import 'package:woosignal/models/response/setting_option.dart' ;
3436
3537class WooSignal {
3638 ApiProvider _apiProvider;
@@ -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,65 @@ class WooSignal {
709710 _printLog (payloadRsp.toString ());
710711 return payloadRsp;
711712 }
713+
714+ // Doc link: https://woosignal.com/docs/api/1.0/setting-options
715+ // Retrieve a setting option
716+ // This API lets you retrieve and view a specific setting option.
717+
718+ Future <SettingOption > retrieveSettingOptions (
719+ {@required String groupid, @required String id}) async {
720+ Map <String , dynamic > payload = {};
721+
722+ _printLog ("Parameters: " + payload.toString ());
723+ payload = _standardPayload (
724+ "get" , payload, "settings/${groupid .toString ()}/${id .toString ()}" );
725+
726+ SettingOption settingOption;
727+ await _apiProvider.post ("/request" , payload).then ((json) {
728+ settingOption = SettingOption .fromJson (json);
729+ });
730+ _printLog (settingOption.toString ());
731+ return settingOption;
732+ }
733+
734+ // Retrieve a setting option
735+ // This API lets you retrieve and view a specific setting option.
736+ Future <List <SettingOption >> getSettingOptions ({String groupId}) async {
737+ Map <String , dynamic > payload = {};
738+
739+ _printLog ("Parameters: " + payload.toString ());
740+ payload =
741+ _standardPayload ("get" , payload, "settings/${groupId .toString ()}" );
742+
743+ List <SettingOption > settingOptions = [];
744+ await _apiProvider.post ("/request" , payload).then ((json) {
745+ settingOptions =
746+ (json as List ).map ((i) => SettingOption .fromJson (i)).toList ();
747+ });
748+ _printLog (settingOptions.toString ());
749+ return settingOptions;
750+ }
751+
752+ // Update a setting option
753+ // This API lets you make changes to a setting option.
754+ Future <SettingOption > updateSettinOptions (String groupid, String id,
755+ {Map <String , dynamic > data}) async {
756+ Map <String , dynamic > payload = data;
757+
758+ _printLog (payload.toString ());
759+ payload = _standardPayload (
760+ "put" , payload, "settings/${groupid .toString ()}/${id .toString }" );
761+
762+ SettingOption settingOption;
763+ await _apiProvider.post ("/request" , payload).then ((json) {
764+ settingOption = SettingOption .fromJson (json);
765+ });
766+ _printLog (settingOption.toString ());
767+ return settingOption;
768+ }
769+ // Batch update setting options
770+ // This API helps you to batch update multiple setting options.
771+
772+ // Note: By default it's limited to up to 100 objects to be created, updated or deleted.
773+
712774}
0 commit comments