From 3b50c997fab7447c2ff47eace5fad6a025b78feb Mon Sep 17 00:00:00 2001 From: sBubshait Date: Thu, 7 Aug 2025 04:25:15 +0300 Subject: [PATCH] feat: invitations to show the real phone number after accepting the invitation --- .../wesal/wesal/dto/InvitationResponse.java | 9 +++++++++ .../wesal/wesal/service/InvitationService.java | 1 + frontend/lib/models/invitation_models.dart | 8 ++++++++ .../screens/pages/invitation_details_page.dart | 15 +++++++++------ 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/online/wesal/wesal/dto/InvitationResponse.java b/backend/src/main/java/online/wesal/wesal/dto/InvitationResponse.java index 2e5ec8a..3f19c44 100644 --- a/backend/src/main/java/online/wesal/wesal/dto/InvitationResponse.java +++ b/backend/src/main/java/online/wesal/wesal/dto/InvitationResponse.java @@ -183,6 +183,7 @@ public class InvitationResponse { private Long id; private String displayName; private String avatar; + private String phoneNumber; private LocalDateTime joinedAt; public AttendeeDto() {} @@ -211,6 +212,14 @@ public class InvitationResponse { this.avatar = avatar; } + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + public LocalDateTime getJoinedAt() { return joinedAt; } diff --git a/backend/src/main/java/online/wesal/wesal/service/InvitationService.java b/backend/src/main/java/online/wesal/wesal/service/InvitationService.java index ce749d7..4d7ba91 100644 --- a/backend/src/main/java/online/wesal/wesal/service/InvitationService.java +++ b/backend/src/main/java/online/wesal/wesal/service/InvitationService.java @@ -240,6 +240,7 @@ public class InvitationService { dto.setId(attendee.getUser().getId()); dto.setDisplayName(attendee.getUser().getDisplayName()); dto.setAvatar(attendee.getUser().getAvatar()); + dto.setPhoneNumber(attendee.getUser().getPhoneNumber()); dto.setJoinedAt(attendee.getJoinedAt()); return dto; }) diff --git a/frontend/lib/models/invitation_models.dart b/frontend/lib/models/invitation_models.dart index 997731f..631a572 100644 --- a/frontend/lib/models/invitation_models.dart +++ b/frontend/lib/models/invitation_models.dart @@ -34,11 +34,13 @@ class InvitationCreator { final int id; final String displayName; final String? avatar; + final String? phoneNumber; InvitationCreator({ required this.id, required this.displayName, this.avatar, + this.phoneNumber, }); factory InvitationCreator.fromJson(Map json) { @@ -46,6 +48,7 @@ class InvitationCreator { id: json['id'], displayName: json['displayName'], avatar: json['avatar'], + phoneNumber: json['phoneNumber'], ); } @@ -54,6 +57,7 @@ class InvitationCreator { 'id': id, 'displayName': displayName, 'avatar': avatar, + 'phoneNumber': phoneNumber, }; } } @@ -63,12 +67,14 @@ class InvitationAttendee { final String displayName; final String? avatar; final DateTime joinedAt; + final String? phoneNumber; InvitationAttendee({ required this.id, required this.displayName, this.avatar, required this.joinedAt, + this.phoneNumber, }); factory InvitationAttendee.fromJson(Map json) { @@ -77,6 +83,7 @@ class InvitationAttendee { displayName: json['displayName'], avatar: json['avatar'], joinedAt: DateTime.parse(json['joinedAt']), + phoneNumber: json['phoneNumber'], ); } @@ -86,6 +93,7 @@ class InvitationAttendee { 'displayName': displayName, 'avatar': avatar, 'joinedAt': joinedAt.toIso8601String(), + 'phoneNumber': phoneNumber, }; } } diff --git a/frontend/lib/screens/pages/invitation_details_page.dart b/frontend/lib/screens/pages/invitation_details_page.dart index 7897675..b4c8dc2 100644 --- a/frontend/lib/screens/pages/invitation_details_page.dart +++ b/frontend/lib/screens/pages/invitation_details_page.dart @@ -6,8 +6,7 @@ import '../../utils/invitation_utils.dart'; import '../../widgets/whatsapp_button.dart'; // WhatsApp configuration -const String _whatsappNumber = 'PHONE_NUMBER'; -const bool _showWhatsappButton = true; // Set to false for production +const bool _showWhatsappButton = true; class InvitationDetailsPage extends StatefulWidget { final int invitationId; @@ -545,10 +544,12 @@ class _InvitationDetailsPageState extends State { ), ), if ((widget.isOwner || _isCurrentlyParticipant) && - _showWhatsappButton) ...[ + _showWhatsappButton && + _invitationDetails!.creator.phoneNumber != null && + _invitationDetails!.creator.phoneNumber!.isNotEmpty) ...[ SizedBox(width: 8), WhatsAppButton( - phoneNumber: _whatsappNumber, + phoneNumber: _invitationDetails!.creator.phoneNumber!, size: 28, ), ], @@ -633,10 +634,12 @@ class _InvitationDetailsPageState extends State { ), if ((widget.isOwner || _isCurrentlyParticipant) && - _showWhatsappButton) ...[ + _showWhatsappButton && + attendee.phoneNumber != null && + attendee.phoneNumber!.isNotEmpty) ...[ SizedBox(width: 8), WhatsAppButton( - phoneNumber: _whatsappNumber, + phoneNumber: attendee.phoneNumber!, size: 24, ), ],