diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..7eeabf5 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/src/main/java/cactusServer/resources/CharactersRest.java b/src/main/java/cactusServer/resources/CharactersRest.java new file mode 100644 index 0000000..cdc3a28 --- /dev/null +++ b/src/main/java/cactusServer/resources/CharactersRest.java @@ -0,0 +1,63 @@ +package cactusServer.resources; + +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; + +import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; +import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; + +import cactusServer.entities.Character; +import cactusServer.entities.IDAddressedEntity; +import cactusServer.entities.Instance; +import cactusServer.entities.URIAddressedEntity; +import cactusServer.models.Instances; + +@Path("/instances/{instanceId}/characters") +public class CharactersRest { + + @Path("/{characterId}") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Character getCharacter(@PathParam("instanceId") String instanceId, + @PathParam("characterId") String characterId) { + Instance instance = Instances.getInstance().getInstance(instanceId); + if (instance != null) { + return instance.getCharacter(characterId); + } + return null; + } + + @POST + @Produces(MediaType.APPLICATION_JSON) + public URIAddressedEntity createCharacter(@PathParam("instanceId") String instanceId, + @FormParam("accountURI") String accountURI, @FormParam("name") String name, + @FormParam("position") Position3D position, @FormParam("angle") Quaternion3D angle, + @FormParam("modelID") String modelID) { + Instance instance = Instances.getInstance().getInstance(instanceId); + IDAddressedEntity ae = instance.createCharacter(instanceId, accountURI, name, position, angle, modelID); + return new URIAddressedEntity((InstancesRest.INSTANCES_URI + "/" + instanceId + "/characters/" + ae.getId()), ae.getBody()); + } + + @Path("/{characterId}") + @PUT + @Produces(MediaType.APPLICATION_JSON) + public Character updateCharacter(@FormParam("characterId") String characterId, + @FormParam("position") Position3D position, @FormParam("angle") Quaternion3D angle, @FormParam("modelID") String modelID) { + Character character = updateCharacter(characterId, position, angle, modelID); + if (character != null) { + throw new WebApplicationException(200); + } else { + throw new WebApplicationException(400); + } + } + + + +} diff --git a/src/main/java/cactusServer/resources/InstancesRest.java b/src/main/java/cactusServer/resources/InstancesRest.java index 41dd78b..43027fc 100644 --- a/src/main/java/cactusServer/resources/InstancesRest.java +++ b/src/main/java/cactusServer/resources/InstancesRest.java @@ -66,29 +66,6 @@ return null; } - @Path("/{instanceId}/characters/{characterId}") - @GET - @Produces(MediaType.APPLICATION_JSON) - public Character getCharacter(@PathParam("instanceId") String instanceId, - @PathParam("characterId") String characterId) { - Instance instance = Instances.getInstance().getInstance(instanceId); - if (instance != null) { - return instance.getCharacter(characterId); - } - return null; - } - - @Path("/players/{playerId}") - @GET - @Produces(MediaType.APPLICATION_JSON) - public Player getPlayer(@PathParam("instanceId") String instanceId, @PathParam("playerId") String playerId) { - Instances instances = Instances.getInstance(); - if (instances != null) { - return instances.getPlayer(playerId); - } - return null; - } - @POST @Produces(MediaType.APPLICATION_JSON) public URIAddressedEntity createInstance(@FormParam("name") String name, @FormParam("state") Instance.State state, @@ -107,30 +84,6 @@ return new URIAddressedEntity((INSTANCES_URI + "/" + instanceId + "/areas/" + ae.getId()), ae.getBody()); } - @Path("/{instanceId}/characters") - @POST - @Produces(MediaType.APPLICATION_JSON) - public URIAddressedEntity createCharacter(@PathParam("instanceId") String instanceId, - @FormParam("accountURI") String accountURI, @FormParam("name") String name, - @FormParam("position") Position3D position, @FormParam("angle") Quaternion3D angle, - @FormParam("modelID") String modelID) { - Instance instance = Instances.getInstance().getInstance(instanceId); - IDAddressedEntity ae = instance.createCharacter(instanceId, accountURI, name, position, angle, modelID); - return new URIAddressedEntity((INSTANCES_URI + "/" + instanceId + "/characters/" + ae.getId()), ae.getBody()); - } - - @Path("/players") - @POST - @Produces(MediaType.APPLICATION_JSON) - public URIAddressedEntity createPlayer(@PathParam("instanceId") String instanceURI, - @FormParam("characterURI") String characterURI, @FormParam("cameraState") CameraState cameraState, - @FormParam("animationClassToStart") EmoteState.EmoteType animationClassToStart) { - Instances instances = Instances.getInstance(); - IDAddressedEntity ae = instances.createPlayer(instanceURI, characterURI, cameraState, animationClassToStart); - return new URIAddressedEntity((INSTANCES_URI + "/" + instanceURI + "/players/" + ae.getId()), ae.getBody()); - } - - // @PUT // @Produces(MediaType.APPLICATION_JSON) // public Instance updateInstance(@FormParam("state") Instance.State state) { @@ -143,31 +96,6 @@ // public Instance updateInstance(@FormParam("state") State state) { // return Instances.getInstance(name, state, stageID) // } - - - @Path("/players/{playerId}") - @PUT - @Produces(MediaType.APPLICATION_JSON) - public Player updatePlayer(@PathParam("instanceId") String instanceId, @FormParam("playerId") String playerId, - @FormParam("characterURI") String characterURI, @FormParam("position") Position3D position, - @FormParam("angle") Quaternion3D angle, @FormParam("cameraState") CameraState cameraState, - @FormParam("animationClassToStart") EmoteState.EmoteType animationClassToStart) { - return Instances.getInstance().updatePlayer(playerId, characterURI, position, angle, cameraState, - animationClassToStart); - } - - @Path("/characters/{characterId}") - @PUT - @Produces(MediaType.APPLICATION_JSON) - public Character updateCharacter(@FormParam("characterId") String characterId, - @FormParam("position") Position3D position, @FormParam("angle") Quaternion3D angle, @FormParam("modelID") String modelID) { - Character character = updateCharacter(characterId, position, angle, modelID); - if (character != null) { - throw new WebApplicationException(200); - } else { - throw new WebApplicationException(400); - } - } // @DELETE // @Path("/destroyInstance") diff --git a/src/main/java/cactusServer/resources/ObjectsRest.java b/src/main/java/cactusServer/resources/ObjectsRest.java index f218195..f75e073 100644 --- a/src/main/java/cactusServer/resources/ObjectsRest.java +++ b/src/main/java/cactusServer/resources/ObjectsRest.java @@ -3,6 +3,7 @@ import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; +import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; @@ -47,5 +48,21 @@ return new URIAddressedEntity((InstancesRest.INSTANCES_URI + "/" + instanceId + "/objects/" + ae.getId()), ae.getBody()); } + ///////////////////////////////////////////// + //@Path("/{instanceId}/objects/{objectId}") +// @Path("/{objectId}") +// @PUT +// @Produces(MediaType.APPLICATION_JSON) +// public Object updateObject(@FormParam("position") Position3D position, +// @FormParam("velocity") Velocity3D velocity, +// @FormParam("angularVelocity") AngularVelocity3D angularVelocity, +// @FormParam("angle") Quaternion3D angle) { +// Instance instance = Instances.getInstance().getInstance(instanceId); +// if (instance != null) { +// return instance.getObject(objectId); +// } +// return null; +//} +// } } diff --git a/src/main/java/cactusServer/resources/PlayersRest.java b/src/main/java/cactusServer/resources/PlayersRest.java new file mode 100644 index 0000000..a8a0236 --- /dev/null +++ b/src/main/java/cactusServer/resources/PlayersRest.java @@ -0,0 +1,57 @@ +package cactusServer.resources; + +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; +import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; + +import cactusServer.entities.CameraState; +import cactusServer.entities.EmoteState; +import cactusServer.entities.IDAddressedEntity; +import cactusServer.entities.Player; +import cactusServer.entities.URIAddressedEntity; +import cactusServer.models.Instances; + +@Path("/instances/players") +public class PlayersRest { + @Path("/players") + @POST + @Produces(MediaType.APPLICATION_JSON) + public URIAddressedEntity createPlayer(@PathParam("instanceId") String instanceURI, + @FormParam("characterURI") String characterURI, @FormParam("cameraState") CameraState cameraState, + @FormParam("animationClassToStart") EmoteState.EmoteType animationClassToStart) { + Instances instances = Instances.getInstance(); + IDAddressedEntity ae = instances.createPlayer(instanceURI, characterURI, cameraState, animationClassToStart); + return new URIAddressedEntity((InstancesRest.INSTANCES_URI + "/" + instanceURI + "/players/" + ae.getId()), ae.getBody()); + } + + @Path("/{playerId}") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Player getPlayer(@PathParam("instanceId") String instanceId, @PathParam("playerId") String playerId) { + Instances instances = Instances.getInstance(); + if (instances != null) { + return instances.getPlayer(playerId); + } + return null; + } + + @Path("/players/{playerId}") + @PUT + @Produces(MediaType.APPLICATION_JSON) + public Player updatePlayer(@PathParam("instanceId") String instanceId, @FormParam("playerId") String playerId, + @FormParam("characterURI") String characterURI, @FormParam("position") Position3D position, + @FormParam("angle") Quaternion3D angle, @FormParam("cameraState") CameraState cameraState, + @FormParam("animationClassToStart") EmoteState.EmoteType animationClassToStart) { + return Instances.getInstance().updatePlayer(playerId, characterURI, position, angle, cameraState, + animationClassToStart); + } + +}