Commit 6264e980 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

simple error handling

parent 254189ca
package com.telephoners.krakyournet.ctf.exceptions;
import com.telephoners.krakyournet.ctf.beans.User;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
public class ElementAlreadyExistsException extends WebApplicationException
{
public ElementAlreadyExistsException(final Class<User> elementName)
{
super(Response.status(Response.Status.BAD_REQUEST)
.entity(String.format("Element %s already exists", elementName.getSimpleName()))
.type("text/plain")
.build());
}
}
package com.telephoners.krakyournet.ctf.exceptions;
import com.telephoners.krakyournet.ctf.beans.Team;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
public class ElementDoesNotExistException extends WebApplicationException
{
public ElementDoesNotExistException(final Class<Team> elementName)
{
super(Response.status(Response.Status.NOT_FOUND)
.entity(String.format("Element %s does not exist", elementName.getSimpleName()))
.type("text/plain")
.build());
}
}
package com.telephoners.krakyournet.ctf.repositories;
import com.google.inject.Inject;
import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.core.DataConnector;
public class UserRepository extends Repository<User>
{
@Inject
public UserRepository(final Class<User> type, final DataConnector<User> connector)
{
super(type, connector);
}
//todo: this should be handled by driver itself
public boolean exists(final String userName)
{
return getAll()
.stream()
.anyMatch(user -> user.getName().equals(userName));
}
}
...@@ -2,7 +2,10 @@ package com.telephoners.krakyournet.ctf.resources; ...@@ -2,7 +2,10 @@ package com.telephoners.krakyournet.ctf.resources;
import com.telephoners.krakyournet.ctf.beans.Team; import com.telephoners.krakyournet.ctf.beans.Team;
import com.telephoners.krakyournet.ctf.beans.User; import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.exceptions.ElementAlreadyExistsException;
import com.telephoners.krakyournet.ctf.exceptions.ElementDoesNotExistException;
import com.telephoners.krakyournet.ctf.repositories.Repository; import com.telephoners.krakyournet.ctf.repositories.Repository;
import com.telephoners.krakyournet.ctf.repositories.UserRepository;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
...@@ -18,10 +21,10 @@ import javax.ws.rs.core.MediaType; ...@@ -18,10 +21,10 @@ import javax.ws.rs.core.MediaType;
public class RegistrationResource public class RegistrationResource
{ {
private final Repository<Team> teamsRepository; private final Repository<Team> teamsRepository;
private final Repository<User> userRepository; private final UserRepository userRepository;
@Inject @Inject
public RegistrationResource(final Repository<User> userRepository, public RegistrationResource(final UserRepository userRepository,
final Repository<Team> teamsRepository) final Repository<Team> teamsRepository)
{ {
//todo: checkNotNUll //todo: checkNotNUll
...@@ -47,11 +50,8 @@ public class RegistrationResource ...@@ -47,11 +50,8 @@ public class RegistrationResource
public String register(@QueryParam("userName") final String userName, public String register(@QueryParam("userName") final String userName,
@QueryParam("teamId") final String teamId) @QueryParam("teamId") final String teamId)
{ {
//todo: check if exists validateTeam(teamId);
if (!teamsRepository.contains(teamId)) validateUserName(userName);
{
throw new RuntimeException("Team does not exist");
}
User user = new User(); User user = new User();
user.setEmail("gpietrusza@gmail.com"); user.setEmail("gpietrusza@gmail.com");
...@@ -63,4 +63,14 @@ public class RegistrationResource ...@@ -63,4 +63,14 @@ public class RegistrationResource
return user.getId(); return user.getId();
} }
private void validateTeam(final String teamId)
{
if(teamsRepository.contains(teamId)) throw new ElementDoesNotExistException(Team.class);
}
private void validateUserName(final String userName)
{
if(userRepository.exists(userName)) throw new ElementAlreadyExistsException(User.class);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment