Reputation:
I'm trying to make a list of online users and offline users.
But since I can't return 2 arrayLists from a function, how can I do this?
Controller
@RequestMapping(value = "/loggedUsers", method = RequestMethod.GET)
public @ResponseBody List<User> getLoggedUsers() {
Map<String,User> users = User.getUsers().stream().collect(Collectors.toMap(User::getUsername, Function.identity()));
List<User> onlineUsers = new ArrayList<>();
for(String username : activeUsers.getUsers()) {
User user = users.get(username);
if(user != null) {
onlineUsers.add(user);
}
}
return onlineUsers;
}
Now I need the rest (not online users) and put mark them as offline
AJAX
//get loggedUsers
$.ajax({
url: '/loggedUsers',
type: 'get',
success: function (loggedUsers) {
console.log(loggedUsers);
}
});
Upvotes: 0
Views: 71
Reputation: 4915
You can make an object where two property of 2 arrayLists
ResponseObject
{
List<User> onlineUsers;
List<User> offlineUsers;
}
Return this object as response.
in javascript response, you will get this 2 arrayLists
//get loggedUsers
$.ajax({
url: '/loggedUsers',
type: 'get',
success: function (Users) {
console.log(Users.onlineUsers);
console.log(Users.offlineUsers);
}
});
Upvotes: 1