package io.fathom.cloud.identity.api.os.resources; import io.fathom.cloud.CloudException; import io.fathom.cloud.identity.api.os.model.v3.Group; import io.fathom.cloud.identity.api.os.model.v3.GroupList; import io.fathom.cloud.identity.model.AuthenticatedUser; import io.fathom.cloud.identity.services.IdentityService; import io.fathom.cloud.protobuf.IdentityModel.GroupData; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.collect.Lists; @Path("/openstack/identity/v3/groups") @Produces({ "application/json" }) public class GroupsResource extends IdentityResourceBase { private static final Logger log = LoggerFactory.getLogger(GroupsResource.class); @Inject IdentityService identityService; @GET @Produces({ JSON }) public GroupList listGroup() throws CloudException { AuthenticatedUser user = getAuthenticatedUser(); GroupList response = new GroupList(); response.groups = Lists.newArrayList(); for (GroupData data : identityService.listGroups(user)) { Group domain = toModel(data); response.groups.add(domain); } return response; } private Group toModel(GroupData data) { Group model = new Group(); model.id = "" + data.getId(); model.name = data.getName(); model.description = data.getDescription(); model.domain_id = "" + data.getDomainId(); // if (data.hasEnabled()) { // model.enabled = data.getEnabled(); // } else { // model.enabled = true; // } return model; } }