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