6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit e6f155e2

AuthorEdmir Suljic<esu@dwarf.dk>
Date2025-05-07 13:26:11 +0200
Added API endpoints to a constants file

Changed files

comwell_key_app/lib/services/api.dart              | 38 ++++++++++------------
 .../lib/services/utils/api_endpoints.dart          | 26 +++++++++++++++
 2 files changed, 43 insertions(+), 21 deletions(-)

Diff

diff --git a/comwell_key_app/lib/services/api.dart b/comwell_key_app/lib/services/api.dart
index 3a2eb382..05c419bb 100644
--- a/comwell_key_app/lib/services/api.dart
+++ b/comwell_key_app/lib/services/api.dart
@@ -7,6 +7,7 @@ import 'package:comwell_key_app/profile_settings/model/user.dart';
import 'package:comwell_key_app/services/http_client.dart';
import 'package:comwell_key_app/services/models/bookings_dto.dart';
import 'package:comwell_key_app/services/models/user_dto.dart';
+import 'package:comwell_key_app/services/utils/api_endpoints.dart';
import 'package:comwell_key_app/utils/json.dart';
import 'package:dio/dio.dart';
@@ -25,17 +26,17 @@ class Api {
}
Future<Response<dynamic>> logout() async {
- return await dio.post('/logout');
+ return await dio.post(ApiEndpoints.logout);
}
Future<BookingsDTO> fetchAllBookingsForUser() async {
- final response = await dio.get<Json>('/booking/v1/GetCurrentBookings');
+ final response = await dio.get<Json>(ApiEndpoints.getCurrentBookings);
print("response in api: $response");
return BookingsDTO.fromJson(response.data!);
}
Future<StoredPaymentsResponse> getPaymentMethods() async {
- final response = await dio.get<Json>('/Payment/v1/stored-payment-methods');
+ final response = await dio.get<Json>(ApiEndpoints.storedPaymentMethods);
return StoredPaymentsResponse.fromJson(response.data!);
}
@@ -47,7 +48,7 @@ class Api {
};
final json = jsonEncode(body);
final response =
- await dio.post<dynamic>("/Payment/v1/CreateAdyenSession", data: json);
+ await dio.post<dynamic>(ApiEndpoints.createAdyenSession, data: json);
return response.data;
}
@@ -70,7 +71,7 @@ class Api {
data.addAll(paymentResult);
data.remove("storePaymentMethod");
final response =
- await dio.post<Json>("https://checkout-test.adyen.com/v71/payments",
+ await dio.post<Json>(ApiEndpoints.adyenPayments,
data: data,
options: Options(
headers: headers,
@@ -80,13 +81,13 @@ class Api {
Future<Response<dynamic>> fetchProfileSettings() async {
print("fetching profile settings");
- final response = await dio.get('/Members/v1/GetGuestProfile');
+ final response = await dio.get(ApiEndpoints.getGuestProfile);
print("response in api: $response");
return response;
}
Future<void> deleteProfile() {
- return dio.delete<void>('/Members/v1/DeleteGuest');
+ return dio.delete(ApiEndpoints.deleteGuest);
}
Future<Response<dynamic>> signupForComwellClub(User user) async {
@@ -94,11 +95,10 @@ class Api {
final body = {
"gender": user.gender,
"addressZip": zipCode
-
};
final json = jsonEncode(body);
print("json in api: $json");
- final response = await dio.post<dynamic>('/Members/v1/ClubSignup', data: json);
+ final response = await dio.post<dynamic>(ApiEndpoints.clubSignup, data: json);
return response;
}
@@ -108,11 +108,10 @@ class Api {
};
final json = jsonEncode(body);
- final response = await dio.post<dynamic>('/booking/v1/Preregistration', data: json);
+ final response = await dio.post<dynamic>(ApiEndpoints.preRegistration, data: json);
return response;
}
- // TODO: Remove guestId when backend is updated
Future<Response<dynamic>> getNotificationPermissions(int guestId) async {
final body = {
"permissions": [
@@ -121,7 +120,7 @@ class Api {
};
final response = await dio.put(
- '/Members/v1/guests/$guestId/communication-preference',
+ '${ApiEndpoints.communicationPreference}/$guestId/communication-preference',
data: body,
options: Options(
headers: {
@@ -133,7 +132,6 @@ class Api {
return response;
}
- // TODO: Remove guestId when backend is updated
Future<dynamic> updateNotificationPreferences(
int guestId, Iterable<NotificationPermission> notificationPermissions) {
final body = {
@@ -144,7 +142,7 @@ class Api {
};
final json = jsonEncode(body);
final response = dio.put<void>(
- '/Members/v1/guests/$guestId/communication-preference',
+ '${ApiEndpoints.communicationPreference}/$guestId/communication-preference',
data: json);
return response;
}
@@ -153,15 +151,14 @@ class Api {
final json = jsonEncode(updatedUser);
print("json in api: $json");
final response = dio.put<void>(
- '/Members/v1/UpdateGuestData',
+ ApiEndpoints.updateGuestData,
data: json,
);
return response;
}
- // Check in
Future<void> checkIn(String confirmationId) async {
- await dio.post<void>("/booking/v1/CheckIn",
+ await dio.post<void>(ApiEndpoints.checkIn,
data: {"confirmationId": confirmationId});
}
@@ -172,7 +169,6 @@ class Api {
// TODO implement
}
- // ADYEN ENDPOINTS - Should be refactored to backend
Future<Json> postPaymentsDetails(Json body) async {
final Json headers = {
"content-type": "application/json",
@@ -191,7 +187,7 @@ class Api {
data.addAll(body);
data.remove("storePaymentMethod");
final response = await dio.post<Json>(
- "https://checkout-test.adyen.com/v71/payments/details",
+ ApiEndpoints.adyenPaymentsDetails,
data: data,
options: Options(
headers: headers,
@@ -201,13 +197,13 @@ class Api {
Future<String> createEndpointRegistration() async {
final response =
- await dio.post<String>('/keys/v1/CreateEndpointRegistration');
+ await dio.post<String>(ApiEndpoints.createEndpointRegistration);
final json = jsonDecode(response.data!) as Map<String, dynamic>;
return json["InvitationCode"]! as String;
}
Future<void> provisionKey(String bookingId) async {
await dio
- .post<void>('/keys/v1/ProvisionKey', data: {'bookingId': bookingId});
+ .post<void>(ApiEndpoints.provisionKey, data: {'bookingId': bookingId});
}
}
diff --git a/comwell_key_app/lib/services/utils/api_endpoints.dart b/comwell_key_app/lib/services/utils/api_endpoints.dart
new file mode 100644
index 00000000..c32de0f2
--- /dev/null
+++ b/comwell_key_app/lib/services/utils/api_endpoints.dart
@@ -0,0 +1,26 @@
+class ApiEndpoints {
+ // Auth endpoints
+ static const String logout = '/logout';
+
+ // Booking endpoints
+ static const String getCurrentBookings = '/booking/v1/GetCurrentBookings';
+ static const String preRegistration = '/booking/v1/Preregistration';
+ static const String checkIn = '/booking/v1/CheckIn';
+
+ // Payment endpoints
+ static const String storedPaymentMethods = '/Payment/v1/stored-payment-methods';
+ static const String createAdyenSession = '/Payment/v1/CreateAdyenSession';
+ static const String adyenPayments = 'https://checkout-test.adyen.com/v71/payments';
+ static const String adyenPaymentsDetails = 'https://checkout-test.adyen.com/v71/payments/details';
+
+ // Member endpoints
+ static const String getGuestProfile = '/Members/v1/GetGuestProfile';
+ static const String deleteGuest = '/Members/v1/DeleteGuest';
+ static const String clubSignup = '/Members/v1/ClubSignup';
+ static const String updateGuestData = '/Members/v1/UpdateGuestData';
+ static const String communicationPreference = '/Members/v1/guests';
+
+ // Key endpoints
+ static const String createEndpointRegistration = '/keys/v1/CreateEndpointRegistration';
+ static const String provisionKey = '/keys/v1/ProvisionKey';
+}
\ No newline at end of file