Skip to content

Commit ebba311

Browse files
committed
Customers Api functions
1 parent c89f1fb commit ebba311

File tree

1 file changed

+121
-0
lines changed

1 file changed

+121
-0
lines changed

lib/woosignal.dart

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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';
1820
import 'package:woosignal/networking/api_provider.dart';
1921
import 'package:woosignal/helpers/shared_pref.dart';
2022
import '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

Comments
 (0)