package uk.bl.odin.orcid.rest; import java.util.HashMap; import java.util.Map; import javax.inject.Inject; import org.restlet.resource.Get; import uk.bl.odin.orcid.client.OrcidOAuthClient; import uk.bl.odin.orcid.client.constants.OrcidAuthScope; import uk.bl.odin.orcid.guice.SelfInjectingServerResource; public class OrcidAuthURLResource extends SelfInjectingServerResource { @Inject OrcidOAuthClient orcidOAuthClient; /** * Generates an authz request url to direct the user to ?redirect.true * bounces user with a http redirect. * * @return json {"url":"..."} */ @Get("json") public Map<String, String> getAuthzCodeRedirectURL() { String ref = this.getQueryValue("originalRef"); String url = orcidOAuthClient.getAuthzCodeRequest(ref, OrcidAuthScope.CREATE_WORKS); if (this.getQueryValue("redirect") != null) { this.redirectPermanent(url); return null; } Map<String, String> m = new HashMap<String, String>(); m.put("url", url); return m; } }