Apply comments for MDSAL Store
[aaa.git] / aaa-idmlight / src / main / java / org / opendaylight / aaa / idm / rest / RoleHandler.java
index 7b404d1eb15a4e55abb4289f4b67081c355036e0..f2478a8670944dcbd80beb489738f6bc239e48e2 100644 (file)
@@ -14,33 +14,32 @@ package org.opendaylight.aaa.idm.rest;
  *
  */
 
-import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.PUT;
-import javax.ws.rs.DELETE;
 import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.Consumes;
 import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
+import javax.ws.rs.Produces;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
+
+import org.opendaylight.aaa.api.IDMStoreException;
+import org.opendaylight.aaa.api.IIDMStore;
+import org.opendaylight.aaa.api.model.IDMError;
+import org.opendaylight.aaa.api.model.Role;
+import org.opendaylight.aaa.api.model.Roles;
+import org.opendaylight.aaa.idm.IdmLightApplication;
+import org.opendaylight.aaa.idm.IdmLightProxy;
+import org.opendaylight.aaa.idm.ServiceLocator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import java.util.List;
-import java.util.ArrayList;
-import org.opendaylight.aaa.idm.model.Roles;
-import org.opendaylight.aaa.idm.model.Role;
-import org.opendaylight.aaa.idm.model.IDMError;
-import org.opendaylight.aaa.idm.persistence.RoleStore;
-import org.opendaylight.aaa.idm.persistence.StoreException;
-import org.opendaylight.aaa.idm.IdmLightProxy;
 
 @Path("/v1/roles")
 public class RoleHandler {
    private static Logger logger = LoggerFactory.getLogger(RoleHandler.class);
-   private static RoleStore roleStore = new RoleStore();
 
    @GET
    @Produces("application/json")
@@ -48,10 +47,10 @@ public class RoleHandler {
       logger.info("get /roles");
       Roles roles=null;
       try {
-         roles = roleStore.getRoles();
+         roles = ServiceLocator.INSTANCE.getStore().getRoles();
       }
-      catch (StoreException se) {
-         return new IDMError(500,"internal error getting roles",se.message).response();
+      catch (IDMStoreException se) {
+         return new IDMError(500,"internal error getting roles",se.getMessage()).response();
       }
       return Response.ok(roles).build();
    }
@@ -62,19 +61,12 @@ public class RoleHandler {
    public Response getRole(@PathParam("id") String id)  {
       logger.info("get /roles/" + id);
       Role role=null;
-      long longId=0;
-      try {
-         longId=Long.parseLong(id);
-      }
-      catch (NumberFormatException nfe) {
-         return new IDMError(404,"invalid role id :" + id,"").response();
-      }
 
       try {
-         role = roleStore.getRole(longId);
+         role = ServiceLocator.INSTANCE.getStore().readRole(id);
       }
-      catch(StoreException se) {
-         return new IDMError(500,"internal error getting roles",se.message).response();
+      catch(IDMStoreException se) {
+         return new IDMError(500,"internal error getting roles",se.getMessage()).response();
       }
 
       if (role==null) {
@@ -94,22 +86,30 @@ public class RoleHandler {
          if (role.getName()==null) {
             return new IDMError(404,"name must be defined on role create","").response();
          }
-         else if (role.getName().length()>RoleStore.MAX_FIELD_LEN) {
-            return new IDMError(400,"role name max length is :" + RoleStore.MAX_FIELD_LEN,"").response();
+         else if (role.getName().length()> IdmLightApplication.MAX_FIELD_LEN) {
+            return new IDMError(400,"role name max length is :" + IdmLightApplication.MAX_FIELD_LEN,"").response();
+         }
+
+         // domain
+         if (role.getDomainid()==null) {
+            return new IDMError(404,"The role's domain must be defined on role when creating a role.","").response();
+         }
+         else if (role.getDomainid().length()>IdmLightApplication.MAX_FIELD_LEN) {
+            return new IDMError(400,"role domain max length is :" + IdmLightApplication.MAX_FIELD_LEN,"").response();
          }
 
          // description
          if (role.getDescription()==null) {
             role.setDescription("");
          }
-         else if (role.getDescription().length()>RoleStore.MAX_FIELD_LEN) {
-            return new IDMError(400,"role description max length is :" + RoleStore.MAX_FIELD_LEN,"").response();
+         else if (role.getDescription().length()>IdmLightApplication.MAX_FIELD_LEN) {
+            return new IDMError(400,"role description max length is :" + IdmLightApplication.MAX_FIELD_LEN,"").response();
          }
 
-         role = roleStore.createRole(role);
+         role = ServiceLocator.INSTANCE.getStore().writeRole(role);
       }
-      catch (StoreException se) {
-         return new IDMError(500,"internal error creating role",se.message).response();
+      catch (IDMStoreException se) {
+         return new IDMError(500,"internal error creating role",se.getMessage()).response();
       }
 
       return Response.status(201).entity(role).build();
@@ -120,63 +120,47 @@ public class RoleHandler {
    @Consumes("application/json")
    @Produces("application/json")
    public Response putRole(@Context UriInfo info,Role role,@PathParam("id") String id) {
-      long longId=0;
       logger.info("put /roles/" + id);
-       try {
-         longId= Long.parseLong(id);
-      }
-      catch (NumberFormatException nfe) {
-         return new IDMError(404,"invalid role id :" + id,"").response();
-      }
 
       try {
-         role.setRoleid((int)longId);
+         role.setRoleid(id);
 
          // name
          // TODO: names should be unique
-         if ((role.getName()!=null) && (role.getName().length()>RoleStore.MAX_FIELD_LEN)) {
-            return new IDMError(400,"role name max length is :" + RoleStore.MAX_FIELD_LEN,"").response();
+         if ((role.getName()!=null) && (role.getName().length()>IdmLightApplication.MAX_FIELD_LEN)) {
+            return new IDMError(400,"role name max length is :" + IdmLightApplication.MAX_FIELD_LEN,"").response();
          }
 
          // description
-         if ((role.getDescription()!=null) && (role.getDescription().length()>RoleStore.MAX_FIELD_LEN)) {
-            return new IDMError(400,"role description max length is :" + RoleStore.MAX_FIELD_LEN,"").response();
+         if ((role.getDescription()!=null) && (role.getDescription().length()>IdmLightApplication.MAX_FIELD_LEN)) {
+            return new IDMError(400,"role description max length is :" + IdmLightApplication.MAX_FIELD_LEN,"").response();
          }
 
-         role = roleStore.putRole(role);
+         role = ServiceLocator.INSTANCE.getStore().updateRole(role);
          if (role==null) {
             return new IDMError(404,"role id not found :" + id,"").response();
          }
          IdmLightProxy.clearClaimCache();
          return Response.status(200).entity(role).build();
       }
-      catch (StoreException se) {
-         return new IDMError(500,"internal error putting role",se.message).response();
+      catch (IDMStoreException se) {
+         return new IDMError(500,"internal error putting role",se.getMessage()).response();
       }
    }
 
    @DELETE
    @Path("/{id}")
    public Response deleteRole(@Context UriInfo info,@PathParam("id") String id) {
-      long longId=0;
       logger.info("Delete /roles/" + id);
-       try {
-         longId= Long.parseLong(id);
-      }
-      catch (NumberFormatException nfe) {
-         return new IDMError(404,"invalid role id :" + id,"").response();
-      }
 
       try {
-         Role role = new Role();
-         role.setRoleid((int)longId);
-         role = roleStore.deleteRole(role);
+         Role role = ServiceLocator.INSTANCE.getStore().deleteRole(id);
          if (role==null) {
             return new IDMError(404,"role id not found :" + id,"").response();
          }
       }
-      catch (StoreException se) {
-         return new IDMError(500,"internal error deleting role",se.message).response();
+      catch (IDMStoreException se) {
+         return new IDMError(500,"internal error deleting role",se.getMessage()).response();
       }
       IdmLightProxy.clearClaimCache();
       return Response.status(204).build();