Commit efe2a342 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

add whoami endpoint

parent 62c1db45
...@@ -46,12 +46,14 @@ public class CTFApplication extends Application<ApplicationConfiguration> ...@@ -46,12 +46,14 @@ public class CTFApplication extends Application<ApplicationConfiguration>
private void registerResources(Environment environment) private void registerResources(Environment environment)
{ {
//todo: use reflections to iterate over resources
JerseyEnvironment jersey = environment.jersey(); JerseyEnvironment jersey = environment.jersey();
jersey.register(injector.getInstance(TeamsResource.class)); jersey.register(injector.getInstance(TeamsResource.class));
jersey.register(injector.getInstance(TasksResource.class)); jersey.register(injector.getInstance(TasksResource.class));
jersey.register(injector.getInstance(ProxyResource.class)); jersey.register(injector.getInstance(ProxyResource.class));
jersey.register(injector.getInstance(SolutionsResource.class)); jersey.register(injector.getInstance(SolutionsResource.class));
jersey.register(injector.getInstance(TaskResource.class)); jersey.register(injector.getInstance(TaskResource.class));
jersey.register(injector.getInstance(UtilResource.class));
} }
private void registerAuthFeatures(Environment environment) private void registerAuthFeatures(Environment environment)
......
...@@ -11,9 +11,6 @@ import javax.ws.rs.Produces; ...@@ -11,9 +11,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import java.util.List; import java.util.List;
/**
* Created by gpietrus on 16.02.16.
*/
@Singleton @Singleton
@Path(value = "/teams") @Path(value = "/teams")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
......
package resources;
import com.google.common.collect.ImmutableMap;
import io.dropwizard.auth.Auth;
import objects.Team;
import objects.User;
import repositories.TeamsRepository;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.Optional;
@Singleton
@Path("/")
@Produces(MediaType.APPLICATION_JSON)
public class UtilResource
{
private TeamsRepository teamsRepository;
@Inject
public UtilResource(TeamsRepository teamsRepository)
{
this.teamsRepository = teamsRepository;
}
@GET
@Path("/whoami")
public ImmutableMap<Object, Object> getUserData(@Auth User user)
{
ImmutableMap.Builder<Object, Object> responseBuilder = ImmutableMap.builder();
String userName = user.getName();
responseBuilder.put("userName", userName);
Optional<Team> team = teamsRepository.getTeamByUserName(userName);
if (team.isPresent()) {
responseBuilder.put("teamName", team.get().getName());
}
return responseBuilder.build();
}
}
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