@@ -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/customer_batch.dart' ;
1820import 'package:woosignal/networking/api_provider.dart' ;
1921import 'package:woosignal/helpers/shared_pref.dart' ;
2022import 'package:woosignal/models/response/products.dart' ;
@@ -708,4 +710,123 @@ class WooSignal {
708710 _printLog (payloadRsp.toString ());
709711 return payloadRsp;
710712 }
713+
714+ // Retrieve a customer
715+ // This API lets you retrieve and view a specific customer by ID.
716+ Future <Customers > retrieveCustomer ({int id}) async {
717+ Map <String , dynamic > payload = {};
718+ _printLog ("Parameters: " + payload.toString ());
719+ payload = _standardPayload ("get" , payload, "customers/${id .toString ()}" );
720+
721+ Customers customers;
722+ await _apiProvider.post ("/request" , payload).then ((json) {
723+ customers = Customers .fromJson (json);
724+ });
725+ _printLog (customers.toString ());
726+ return customers;
727+ }
728+
729+ // Retrieve customer downloads
730+ // This API lets you retrieve customer downloads permissions.
731+ Future <Customers > retrieveCustomerDownloads (
732+ {@required int customerid,
733+ String downloadId,
734+ String downloadUrl,
735+ int productId,
736+ String productName,
737+ String downloadName,
738+ int orderId,
739+ String orderKey,
740+ String downloadsRemaining,
741+ String accessExpires,
742+ String accessExpiresGmt,
743+ Map <String , String > file}) async {
744+ Map <String , dynamic > payload = {};
745+ _printLog ("Parameters: " + payload.toString ());
746+ payload = _standardPayload (
747+ "get" , payload, "customers/${customerid .toString ()}/downloads" );
748+
749+ Customers customers;
750+ await _apiProvider.post ("/request" , payload).then ((json) {
751+ customers = Customers .fromJson (json);
752+ });
753+ _printLog (customers.toString ());
754+ return customers;
755+ }
756+
757+ // Create a customer
758+ // This API helps you to create a new customer.
759+ Future <Customers > createCustomer ({
760+ String email,
761+ String firstName,
762+ String lastName,
763+ String userName,
764+ Map <String , dynamic > billing,
765+ Map <String , dynamic > shipping,
766+ }) async {
767+ Map <String , dynamic > payload = {};
768+ if (email != null ) payload['email' ] = email;
769+ if (firstName != null ) payload['first_name' ] = firstName;
770+ if (lastName != null ) payload['last_name' ] = lastName;
771+ if (userName != null ) payload['username' ] = userName;
772+ if (billing != null ) payload['billing' ] = billing;
773+ if (shipping != null ) payload['shipping' ] = shipping;
774+ _printLog (payload.toString ());
775+ payload = _standardPayload ("post" , payload, "customers/" );
776+ Customers customers;
777+ await _apiProvider.post ("/request" , payload).then ((json) {
778+ customers = Customers .fromJson (json);
779+ });
780+ _printLog (customers.toString ());
781+ return customers;
782+ }
783+
784+ // Update a customer
785+ // This API lets you make changes to a customer.
786+ Future <Customers > updateCustomer (int id, {Map <String , dynamic > data}) async {
787+ Map <String , dynamic > payload = data;
788+
789+ _printLog (payload.toString ());
790+ payload = _standardPayload ("put" , payload, "customers/" + id.toString ());
791+
792+ Customers customers;
793+ await _apiProvider.post ("/request" , payload).then ((json) {
794+ customers = Customers .fromJson (json);
795+ });
796+ _printLog (customers.toString ());
797+ return customers;
798+ }
799+
800+ // Delete a customer
801+ // This API helps you delete a customer.
802+ Future <Customers > deleteCustomer (int id, {Map <String , dynamic > data}) async {
803+ Map <String , dynamic > payload = data;
804+
805+ _printLog (payload.toString ());
806+ payload = _standardPayload ("delete" , payload, "customers/" + id.toString ());
807+
808+ Customers customers;
809+ await _apiProvider.post ("/request" , payload).then ((json) {
810+ customers = Customers .fromJson (json);
811+ });
812+ _printLog (customers.toString ());
813+ return customers;
814+ }
815+
816+ // This API helps you to batch create, update and delete multiple Customers.
817+ // This API helps you to batch create, update and delete multiple customers.
818+ // Note: By default it's limited to up to 100 objects to be created, updated or deleted.
819+ Future <CustomerBatch > batchCustomers ({Map <String , dynamic > data}) async {
820+ Map <String , dynamic > payload = data;
821+
822+ _printLog (payload.toString ());
823+ payload = _standardPayload ("post" , payload, "customers/batch" );
824+
825+ CustomerBatch customerBatch;
826+ await _apiProvider.post ("/request" , payload).then ((json) {
827+ customerBatch = CustomerBatch .fromJson (json);
828+ });
829+ _printLog (customerBatch.toString ());
830+ return customerBatch;
831+ }
711832}
0 commit comments