handler method
- @override
override
Must be implemented
Implementation
@override
FutureOr<Response> handler() async {
final eventData = jsonDecode(await request.readAsString());
if (eventData.isEmpty) return _badRequest('User data is required.');
final userId = eventData['id'];
if (userId == null) {
return _badRequest('User ID is missing in the request.');
}
try {
final user = await userRepository.getUser(userId);
await userRepository.banUser(
userId: userId,
blocked: user.blocked!,
);
await userRepository.banUserInFirebase(user.firebaseKey);
await userRepository.refreshUserToken(
userId: userId,
email: user.email,
firebaseKey: user.firebaseKey,
);
return Response.ok(
'UserBlockController User $userId has been banned and '
'token refreshed successfully!',
headers: {'Content-Type': 'application/json'},
);
} catch (e) {
final errorMessage = 'Error for user with ID: $userId. Error: $e';
print(errorMessage);
return Response.internalServerError(
body: jsonEncode({'Error in UserBlockController: ': errorMessage}),
headers: {'Content-Type': 'application/json'},
);
}
}