package io.fathom.cloud.identity.api.os.resources.extensions; import io.fathom.cloud.CloudException; import io.fathom.cloud.server.auth.Auth; import io.fathom.cloud.server.model.Project; import io.fathom.cloud.services.Attachments; import javax.inject.Inject; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Strings; @Path("/openstack/identity/extensions/client") public class ClientAppsResource extends AttachmentsResourceBase { private static final Logger log = LoggerFactory.getLogger(ClientAppsResource.class); @Inject Attachments attachments; @POST @Produces(JSON) public ClientApp createClientApp(ClientApp req) throws CloudException { if (Strings.isNullOrEmpty(req.name)) { throw new IllegalArgumentException(); } if (Strings.isNullOrEmpty(req.secret)) { throw new IllegalArgumentException(); } Auth auth = getAuth(); Project project = auth.getProject(); if (project == null) { throw new IllegalArgumentException(); } Attachments.ClientApp app = attachments.createClientApp(auth, project, req.name, req.secret); ClientApp ret = new ClientApp(); ret.name = app.getAppName(); ret.id = app.getAppId(); return ret; } }