import 'dart:convert'; import '../constants/api_constants.dart'; import '../models/invitation_models.dart'; import 'http_service.dart'; class InvitationsService { static Future> getAllInvitations() async { try { final response = await HttpService.get( ApiConstants.getAllInvitationsEndpoint, ); if (response.statusCode == 200) { final responseData = jsonDecode(response.body); final invitationsResponse = InvitationsResponse.fromJson(responseData); if (invitationsResponse.status) { return {'success': true, 'data': invitationsResponse.data}; } else { return { 'success': false, 'message': invitationsResponse.message ?? 'Failed to fetch invitations', }; } } else if (response.statusCode == 401) { return { 'success': false, 'message': 'Session expired. Please login again.', }; } else if (response.statusCode == 403) { return { 'success': false, 'message': 'Access denied. Invalid credentials.', }; } else { return { 'success': false, 'message': 'Server error (${response.statusCode})', }; } } catch (e) { print('Error fetching invitations: $e'); return { 'success': false, 'message': 'Network error. Please check your connection.', }; } } static Future> acceptInvitation(int invitationId) async { try { final response = await HttpService.post( ApiConstants.acceptInvitationEndpoint, {'id': invitationId}, ); if (response.statusCode == 200) { final responseData = jsonDecode(response.body); return { 'success': responseData['status'] ?? false, 'message': responseData['message'] ?? 'Request completed', }; } else if (response.statusCode == 401) { return { 'success': false, 'message': 'Session expired. Please login again.', }; } else if (response.statusCode == 403) { return { 'success': false, 'message': 'Access denied. Invalid credentials.', }; } else { return { 'success': false, 'message': 'Server error (${response.statusCode})', }; } } catch (e) { print('Error accepting invitation: $e'); return { 'success': false, 'message': 'Network error. Please check your connection.', }; } } }