feat: Update API endpoint usage in repositories to remove redundant path property
- Refactored multiple repository implementations across client and staff features to directly use endpoint objects without accessing the `path` property. - Introduced a new `FeatureGate` class for client-side feature gating based on user scopes, allowing for better access control to API endpoints. - Added `ApiEndpoint` class to represent API endpoints with their paths and required scopes for future feature gating.
This commit is contained in:
@@ -24,17 +24,17 @@ class ClientCreateOrderRepositoryImpl
|
||||
|
||||
@override
|
||||
Future<void> createOneTimeOrder(Map<String, dynamic> payload) async {
|
||||
await _api.post(ClientEndpoints.ordersOneTime.path, data: payload);
|
||||
await _api.post(ClientEndpoints.ordersOneTime, data: payload);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> createRecurringOrder(Map<String, dynamic> payload) async {
|
||||
await _api.post(ClientEndpoints.ordersRecurring.path, data: payload);
|
||||
await _api.post(ClientEndpoints.ordersRecurring, data: payload);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> createPermanentOrder(Map<String, dynamic> payload) async {
|
||||
await _api.post(ClientEndpoints.ordersPermanent.path, data: payload);
|
||||
await _api.post(ClientEndpoints.ordersPermanent, data: payload);
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -82,7 +82,7 @@ class ClientCreateOrderRepositoryImpl
|
||||
@override
|
||||
Future<OrderPreview> getOrderDetailsForReorder(String orderId) async {
|
||||
final ApiResponse response = await _api.get(
|
||||
ClientEndpoints.orderReorderPreview(orderId).path,
|
||||
ClientEndpoints.orderReorderPreview(orderId),
|
||||
);
|
||||
return OrderPreview.fromJson(response.data as Map<String, dynamic>);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ class ClientOrderQueryRepositoryImpl
|
||||
|
||||
@override
|
||||
Future<List<Vendor>> getVendors() async {
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.vendors.path);
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.vendors);
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items
|
||||
@@ -30,7 +30,7 @@ class ClientOrderQueryRepositoryImpl
|
||||
@override
|
||||
Future<List<OrderRole>> getRolesByVendor(String vendorId) async {
|
||||
final ApiResponse response =
|
||||
await _api.get(ClientEndpoints.vendorRoles(vendorId).path);
|
||||
await _api.get(ClientEndpoints.vendorRoles(vendorId));
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items.map((dynamic json) {
|
||||
@@ -46,7 +46,7 @@ class ClientOrderQueryRepositoryImpl
|
||||
|
||||
@override
|
||||
Future<List<OrderHub>> getHubs() async {
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.hubs.path);
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.hubs);
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items.map((dynamic json) {
|
||||
@@ -71,7 +71,7 @@ class ClientOrderQueryRepositoryImpl
|
||||
@override
|
||||
Future<List<OrderManager>> getManagersByHub(String hubId) async {
|
||||
final ApiResponse response =
|
||||
await _api.get(ClientEndpoints.hubManagers(hubId).path);
|
||||
await _api.get(ClientEndpoints.hubManagers(hubId));
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items.map((dynamic json) {
|
||||
|
||||
@@ -20,7 +20,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
required DateTime end,
|
||||
}) async {
|
||||
final ApiResponse response = await _api.get(
|
||||
ClientEndpoints.ordersView.path,
|
||||
ClientEndpoints.ordersView,
|
||||
params: <String, dynamic>{
|
||||
'startDate': start.toIso8601String(),
|
||||
'endDate': end.toIso8601String(),
|
||||
@@ -40,7 +40,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
required Map<String, dynamic> payload,
|
||||
}) async {
|
||||
final ApiResponse response = await _api.post(
|
||||
ClientEndpoints.orderEdit(orderId).path,
|
||||
ClientEndpoints.orderEdit(orderId),
|
||||
data: payload,
|
||||
);
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
@@ -53,7 +53,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
String? reason,
|
||||
}) async {
|
||||
await _api.post(
|
||||
ClientEndpoints.orderCancel(orderId).path,
|
||||
ClientEndpoints.orderCancel(orderId),
|
||||
data: <String, dynamic>{
|
||||
if (reason != null) 'reason': reason,
|
||||
},
|
||||
@@ -62,7 +62,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
|
||||
@override
|
||||
Future<List<Vendor>> getVendors() async {
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.vendors.path);
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.vendors);
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items
|
||||
@@ -73,7 +73,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
@override
|
||||
Future<List<Map<String, dynamic>>> getRolesByVendor(String vendorId) async {
|
||||
final ApiResponse response =
|
||||
await _api.get(ClientEndpoints.vendorRoles(vendorId).path);
|
||||
await _api.get(ClientEndpoints.vendorRoles(vendorId));
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items.cast<Map<String, dynamic>>();
|
||||
@@ -81,7 +81,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
|
||||
@override
|
||||
Future<List<Map<String, dynamic>>> getHubs() async {
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.hubs.path);
|
||||
final ApiResponse response = await _api.get(ClientEndpoints.hubs);
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items.cast<Map<String, dynamic>>();
|
||||
@@ -90,7 +90,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
@override
|
||||
Future<List<Map<String, dynamic>>> getManagersByHub(String hubId) async {
|
||||
final ApiResponse response =
|
||||
await _api.get(ClientEndpoints.hubManagers(hubId).path);
|
||||
await _api.get(ClientEndpoints.hubManagers(hubId));
|
||||
final Map<String, dynamic> data = response.data as Map<String, dynamic>;
|
||||
final List<dynamic> items = data['items'] as List<dynamic>;
|
||||
return items.cast<Map<String, dynamic>>();
|
||||
|
||||
Reference in New Issue
Block a user