Skip to content
Snippets Groups Projects

feat: Update to J17 and Quarkus 3.2 + Integrate AccountService

1 unresolved thread
7 files
+ 159
191
Compare changes
  • Side-by-side
  • Inline
Files
7
/*********************************************************************
* Copyright (c) 2020 Eclipse Foundation.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* Author: Martin Lowe <martin.lowe@eclipse-foundation.org>
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
package org.eclipsefoundation.mailing.api;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import com.google.auto.value.AutoValue;
import io.quarkus.oidc.client.filter.OidcClientFilter;
import io.quarkus.security.Authenticated;
/**
* Binding interface for the Eclipse Foundation user account API. Runtime implementations are automatically generated by
* Quarkus at compile time. As the API deals with sensitive information, authentication is required to access this
* endpoint.
*
* @author Martin Lowe
*
*/
@OidcClientFilter
@Authenticated
@Path("/account")
@RegisterRestClient(configKey = "accounts")
public interface AccountsAPI {
/**
* Retrieves all user objects that match the given query parameters.
*
* @param id user ID of the Eclipse account to retrieve
* @return all matching eclipse accounts
*/
@GET
@Path("/profile/{uid}")
@Produces("application/json")
EclipseUser getUsers(@PathParam("uid") String id);
@AutoValue
@JsonDeserialize(builder = AutoValue_AccountsAPI_EclipseUser.Builder.class)
public abstract static class EclipseUser {
public abstract int getUid();
public abstract String getName();
public abstract String getMail();
public abstract ECA getECA();
public abstract boolean getIsCommitter();
public static Builder builder() {
return new AutoValue_AccountsAPI_EclipseUser.Builder();
}
@AutoValue.Builder
@JsonPOJOBuilder(withPrefix = "set")
public abstract static class Builder {
public abstract Builder setUid(int id);
public abstract Builder setName(String name);
public abstract Builder setMail(String mail);
public abstract Builder setECA(ECA eca);
public abstract Builder setIsCommitter(boolean isCommitter);
public abstract EclipseUser build();
}
}
@AutoValue
@JsonDeserialize(builder = AutoValue_AccountsAPI_ECA.Builder.class)
public abstract static class ECA {
public abstract boolean getSigned();
public abstract boolean getCanContributeSpecProject();
public static Builder builder() {
return new AutoValue_AccountsAPI_ECA.Builder();
}
@AutoValue.Builder
@JsonPOJOBuilder(withPrefix = "set")
public abstract static class Builder {
public abstract Builder setSigned(boolean signed);
public abstract Builder setCanContributeSpecProject(boolean canContributeSpecProject);
public abstract ECA build();
}
}
}
Loading